From 5d3682ef17ba79e0c7aa0a109c9727aa55afe1f1 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Fri, 19 Mar 2021 22:15:48 +1000 Subject: [PATCH] ntsc-beta: Get lib .text segment matching excluding pointers --- Makefile | 11 +- checksums.ntsc-beta.md5 | 2 +- ld/gamefiles.ntsc-beta.inc | 193 ++ ...gamefiles.inc => gamefiles.ntsc-final.inc} | 0 ld/gamefiles.pal-final.inc | 194 ++ ld/libfiles.ntsc-beta.inc | 220 ++ ld/libfiles.ntsc-final.inc | 216 ++ ld/{libfiles.inc => libfiles.pal-final.inc} | 39 +- ld/pd.ld | 14 +- src/assets/mpconfigs.c | 7 + src/game/game_1a78b0.c | 31 + src/game/pak/pak.c | 100 + src/include/lib/controller.h | 7 + src/include/lib/init.h | 2 +- src/include/lib/lib_16110.h | 4 - src/include/lib/lib_17ce0.h | 12 + src/include/lib/lib_513b0.h | 1 - src/include/lib/lib_51570.h | 9 + src/include/types.h | 2 + src/lib/controller.c | 627 +++++- src/lib/dma.c | 125 ++ src/lib/entry.c | 5 +- src/lib/init.c | 17 +- src/lib/lib_04f60nb.c | 13 + src/lib/lib_06550.c | 159 ++ src/lib/lib_070d0.c | 334 ++- src/lib/lib_09a80.c | 776 +++++++ src/lib/lib_0c000.c | 861 +++++++- src/lib/lib_0e9d0.c | 1472 ++++++++++++- src/lib/lib_11420.c | 708 ++++++- src/lib/lib_126b0.c | 347 +++ src/lib/lib_13790.c | 767 ++++++- src/lib/lib_16110.c | 677 +----- src/lib/lib_17ce0.c | 608 ++++++ src/lib/lib_184d0.c | 51 + src/lib/lib_24e40.c | 1010 +++++++++ src/lib/lib_317f0.c | 1884 ++++++++++++++++- src/lib/lib_37b00.c | 175 ++ src/lib/lib_513b0.c | 219 -- src/lib/lib_51570.c | 233 ++ src/lib/lib_52360.c | 2 +- src/lib/main.c | 1393 +++++++++++- src/lib/memory.c | 131 +- src/lib/model.c | 12 + src/lib/sched.c | 3 - src/lib/ultra/libc/llcvt.c | 94 + src/lib/ultra/os/atomic.c | 30 + src/lib/ultra/os/getmemsize.c | 79 + src/lib/ultra/os/syncputchars.c | 71 + 49 files changed, 13086 insertions(+), 861 deletions(-) create mode 100644 ld/gamefiles.ntsc-beta.inc rename ld/{gamefiles.inc => gamefiles.ntsc-final.inc} (100%) create mode 100644 ld/gamefiles.pal-final.inc create mode 100644 ld/libfiles.ntsc-beta.inc create mode 100644 ld/libfiles.ntsc-final.inc rename ld/{libfiles.inc => libfiles.pal-final.inc} (91%) create mode 100644 src/include/lib/lib_17ce0.h create mode 100644 src/include/lib/lib_51570.h create mode 100644 src/lib/lib_04f60nb.c create mode 100644 src/lib/lib_17ce0.c create mode 100644 src/lib/lib_51570.c create mode 100644 src/lib/ultra/os/atomic.c create mode 100644 src/lib/ultra/os/getmemsize.c create mode 100644 src/lib/ultra/os/syncputchars.c diff --git a/Makefile b/Makefile index 2a4377e46..1a9ef0d94 100644 --- a/Makefile +++ b/Makefile @@ -20,6 +20,7 @@ JPN=0 ifeq ($(ROMID),ntsc-beta) NTSC=1 VERSION=0 + PIRACYCHECKS=0 endif ifeq ($(ROMID),ntsc-1.0) NTSC=1 @@ -115,6 +116,10 @@ $(B_DIR)/lib/ultra/os/timerintr.o: OPT_LVL := -O1 $(B_DIR)/lib/ultra/os/virtualtophysical.o: OPT_LVL := -O1 $(B_DIR)/lib/ultra/os/yieldthread.o: OPT_LVL := -O1 +ifeq ($(ROMID), ntsc-beta) +$(B_DIR)/lib/ultra/io/pfsisplug.o: OPT_LVL := -O1 +endif + CFLAGS = -DVERSION=$(VERSION) \ -DNTSC=$(NTSC) \ -DPAL=$(PAL) \ @@ -158,7 +163,6 @@ O_FILES := \ $(patsubst %, %.o, $(ASSET_FILES)) \ $(patsubst src/%.bin, $(B_DIR)/%.o, $(ANIM_FILES)) \ $(B_DIR)/assets/animations/list.o \ - $(B_DIR)/assets/accessingpakZ.o \ $(B_DIR)/assets/bootloader/bootloader.o \ $(B_DIR)/assets/copyrightZ.o \ $(B_DIR)/assets/files/list.o \ @@ -197,6 +201,11 @@ O_FILES := \ $(B_DIR)/assets/textures/config.o \ $(B_DIR)/romheader.o +# ntsc-beta doesn't have this segment +ifneq ($(ROMID), ntsc-beta) + O_FILES := $(O_FILES) $(B_DIR)/assets/accessingpakZ.o +endif + default: rom ################################################################################ diff --git a/checksums.ntsc-beta.md5 b/checksums.ntsc-beta.md5 index 2bb3db82b..310c93bf3 100644 --- a/checksums.ntsc-beta.md5 +++ b/checksums.ntsc-beta.md5 @@ -2014,7 +2014,7 @@ aa93f4df16fceada399a749f5ad2f273 build/ntsc-beta/pd.z64 a12b5437510403bb09b3cceb45dd2a10 build/ntsc-beta/segments/firingrange.bin daae19f7ce11d3f3e1f98d543ad856f5 build/ntsc-beta/segments/game.bin cab47b8c30b1be608c1c5c1db08342de build/ntsc-beta/segments/data.bin -d13f25c1c59fb96346ac23301ccd9d7d build/ntsc-beta/segments/inflate.bin +843285fdc0e80a77576eeb73940d2fd3 build/ntsc-beta/segments/inflate.bin 900199658b5cfb5a3c16844abc9da56e build/ntsc-beta/segments/lib.bin 8aaec8cc806ec62d2f70eaa08282e9c0 build/ntsc-beta/segments/mpconfigs.bin d52a0fc2e90e03b610879b50df4c0fd4 build/ntsc-beta/segments/mpstringsE.bin diff --git a/ld/gamefiles.ntsc-beta.inc b/ld/gamefiles.ntsc-beta.inc new file mode 100644 index 000000000..3b11e1832 --- /dev/null +++ b/ld/gamefiles.ntsc-beta.inc @@ -0,0 +1,193 @@ +#define GAMEFILES(section) \ + build/ROMID/game/game_000000.o (section); \ + build/ROMID/game/game_000090.o (section); \ + build/ROMID/game/game_000130.o (section); \ + build/ROMID/game/stubs/game_000840.o (section); \ + build/ROMID/game/stubs/game_000850.o (section); \ + build/ROMID/game/stubs/game_000860.o (section); \ + build/ROMID/game/stubs/game_000870.o (section); \ + build/ROMID/game/game_000880.o (section); \ + build/ROMID/game/stubs/game_0008e0.o (section); \ + build/ROMID/game/stubs/game_0008f0.o (section); \ + build/ROMID/game/stubs/game_000900.o (section); \ + build/ROMID/game/stubs/game_000910.o (section); \ + build/ROMID/game/dlights.o (section); \ + build/ROMID/game/game_005fd0.o (section); \ + build/ROMID/game/game_006900.o (section); \ + build/ROMID/game/game_006bd0.o (section); \ + build/ROMID/game/nbomb.o (section); \ + build/ROMID/game/stubs/game_00b180.o (section); \ + build/ROMID/game/game_00b190.o (section); \ + build/ROMID/game/stubs/game_00b200.o (section); \ + build/ROMID/game/game_00b210.o (section); \ + build/ROMID/game/game_00b320.o (section); \ + build/ROMID/game/game_00b420.o (section); \ + build/ROMID/game/game_00b480.o (section); \ + build/ROMID/game/game_00b820.o (section); \ + build/ROMID/game/game_00c240.o (section); \ + build/ROMID/game/game_00c490.o (section); \ + build/ROMID/game/game_0108d0.o (section); \ + build/ROMID/game/objectives/setup.o (section); \ + build/ROMID/game/casing/reset.o (section); \ + build/ROMID/game/game_010b20.o (section); \ + build/ROMID/game/game_011110.o (section); \ + build/ROMID/game/inventory/init.o (section); \ + build/ROMID/game/game_0125a0.o (section); \ + build/ROMID/game/game_012aa0.o (section); \ + build/ROMID/game/game_012d50.o (section); \ + build/ROMID/game/explosions/init.o (section); \ + build/ROMID/game/smoke/init.o (section); \ + build/ROMID/game/sparks/init.o (section); \ + build/ROMID/game/weather/init.o (section); \ + build/ROMID/game/stubs/game_013540.o (section); \ + build/ROMID/game/game_013550.o (section); \ + build/ROMID/game/shards/init.o (section); \ + build/ROMID/game/game_013b80.o (section); \ + build/ROMID/game/game_013cf0.o (section); \ + build/ROMID/game/game_013ee0.o (section); \ + build/ROMID/game/game_0147a0.o (section); \ + build/ROMID/game/game_0147d0.o (section); \ + build/ROMID/game/game_014e90.o (section); \ + build/ROMID/game/game_014f10.o (section); \ + build/ROMID/game/game_015010.o (section); \ + build/ROMID/game/game_0150a0.o (section); \ + build/ROMID/game/objectives/autocomplete.o (section); \ + build/ROMID/game/stubs/game_015260.o (section); \ + build/ROMID/game/stubs/game_015270.o (section); \ + build/ROMID/game/explosions/reset.o (section); \ + build/ROMID/game/smoke/reset.o (section); \ + build/ROMID/game/stubs/game_0153f0.o (section); \ + build/ROMID/game/stubs/game_015400.o (section); \ + build/ROMID/game/stubs/game_015410.o (section); \ + build/ROMID/game/shards/reset.o (section); \ + build/ROMID/game/game_015470.o (section); \ + build/ROMID/game/title.o (section); \ + build/ROMID/game/game_01afc0.o (section); \ + build/ROMID/game/game_01b0a0.o (section); \ + build/ROMID/game/activemenu/tick.o (section); \ + build/ROMID/game/game_01bea0.o (section); \ + build/ROMID/game/weather/tick.o (section); \ + build/ROMID/game/game_01d860.o (section); \ + build/ROMID/game/game_01d8c0.o (section); \ + build/ROMID/game/game_01d990.o (section); \ + build/ROMID/game/casing/tick.o (section); \ + build/ROMID/game/shards/tick.o (section); \ + build/ROMID/game/sparks/tick.o (section); \ + build/ROMID/game/chr/chr.o (section); \ + build/ROMID/game/game_02cde0.o (section); \ + build/ROMID/game/chr/chraction.o (section); \ + build/ROMID/game/chr/chrai.o (section); \ + build/ROMID/game/chr/chraicommands.o (section); \ + build/ROMID/game/prop.o (section); \ + build/ROMID/game/propobj.o (section); \ + build/ROMID/game/propobjbss.o (section); \ + build/ROMID/game/game_091e10.o (section); \ + build/ROMID/game/game_092610.o (section); \ + build/ROMID/game/objectives/objectives.o (section); \ + build/ROMID/game/game_096360.o (section); \ + build/ROMID/game/game_096700.o (section); \ + build/ROMID/game/atan2f.o (section); \ + build/ROMID/game/game_096890.o (section); \ + build/ROMID/game/game_0969d0.o (section); \ + build/ROMID/game/game_096b20.o (section); \ + build/ROMID/game/game_096ca0.o (section); \ + build/ROMID/game/floor.o (section); \ + build/ROMID/game/ceil.o (section); \ + build/ROMID/game/game_097a50.o (section); \ + build/ROMID/game/game_097aa0.o (section); \ + build/ROMID/game/inventory/items.o (section); \ + build/ROMID/game/game_097ba0.o (section); \ + build/ROMID/game/game_0abe70.o (section); \ + build/ROMID/game/mpstats.o (section); \ + build/ROMID/game/game_0b0fd0.o (section); \ + build/ROMID/game/game_0b2150.o (section); \ + build/ROMID/game/game_0b28d0.o (section); \ + build/ROMID/game/game_0b3350.o (section); \ + build/ROMID/game/game_0b4950.o (section); \ + build/ROMID/game/game_0b63b0.o (section); \ + build/ROMID/game/game_0b69d0.o (section); \ + build/ROMID/game/game_0c33f0.o (section); \ + build/ROMID/game/bondcutscene.o (section); \ + build/ROMID/game/bondwalk.o (section); \ + build/ROMID/game/bondmove.o (section); \ + build/ROMID/game/bondgrab.o (section); \ + build/ROMID/game/bondeyespy.o (section); \ + build/ROMID/game/bondbike.o (section); \ + build/ROMID/game/game_0d4690.o (section); \ + build/ROMID/game/healthbar.o (section); \ + build/ROMID/game/sight.o (section); \ + build/ROMID/game/hudmsg.o (section); \ + build/ROMID/game/game_0e0770.o (section); \ + build/ROMID/game/menu/items.o (section); \ + build/ROMID/game/game_0f09f0.o (section); \ + build/ROMID/game/activemenu/activemenu.o (section); \ + build/ROMID/game/stubs/game_102230.o (section); \ + build/ROMID/game/game_102240.o (section); \ + build/ROMID/game/cheats.o (section); \ + build/ROMID/game/game_107fb0.o (section); \ + build/ROMID/game/game_10c9c0.o (section); \ + build/ROMID/game/endscreen.o (section); \ + build/ROMID/game/gamefile.o (section); \ + build/ROMID/game/game_110680.o (section); \ + build/ROMID/game/inventory/inventory.o (section); \ + build/ROMID/game/bondhead.o (section); \ + build/ROMID/game/padhalllv.o (section); \ + build/ROMID/game/pad.o (section); \ + build/ROMID/game/pak/pak.o (section); \ + build/ROMID/game/debug.o (section); \ + build/ROMID/game/stubs/game_11eff0.o (section); \ + build/ROMID/game/data/ailists.o (section); \ + build/ROMID/game/data/data_020df0.o (section); \ + build/ROMID/game/game_11f000.o (section); \ + build/ROMID/game/game_127910.o (section); \ + build/ROMID/game/game_128f30.o (section); \ + build/ROMID/game/game_129210.o (section); \ + build/ROMID/game/explosions/explosions.o (section); \ + build/ROMID/game/smoke/smoke.o (section); \ + build/ROMID/game/sparks/sparks.o (section); \ + build/ROMID/game/weather/weather.o (section); \ + build/ROMID/game/sky.o (section); \ + build/ROMID/game/credits.o (section); \ + build/ROMID/game/game_13b670.o (section); \ + build/ROMID/game/game_13c510.o (section); \ + build/ROMID/game/wallhit.o (section); \ + build/ROMID/game/bondview.o (section); \ + build/ROMID/game/splat.o (section); \ + build/ROMID/game/camdraw.o (section); \ + build/ROMID/game/shards/shards.o (section); \ + build/ROMID/game/options.o (section); \ + build/ROMID/game/game_152fa0.o (section); \ + build/ROMID/game/game_1531a0.o (section); \ + build/ROMID/game/game_1577f0.o (section); \ + build/ROMID/game/room.o (section); \ + build/ROMID/game/roombss.o (section); \ + build/ROMID/game/game_165360.o (section); \ + build/ROMID/game/game_1655c0.o (section); \ + build/ROMID/game/game_165670.o (section); \ + build/ROMID/game/game_1657c0.o (section); \ + build/ROMID/game/game_1668e0.o (section); \ + build/ROMID/game/file.o (section); \ + build/ROMID/game/gfxmemory.o (section); \ + build/ROMID/game/core.o (section); \ + build/ROMID/game/timing.o (section); \ + build/ROMID/game/music.o (section); \ + build/ROMID/game/lang.o (section); \ + build/ROMID/game/texture.o (section); \ + build/ROMID/game/game_173a00.o (section); \ + build/ROMID/game/stubs/game_175f50.o (section); \ + build/ROMID/game/game_175f90.o (section); \ + build/ROMID/game/stubs/game_176000.o (section); \ + build/ROMID/game/game_176080.o (section); \ + build/ROMID/game/utils.o (section); \ + build/ROMID/game/mplayer/ingame.o (section); \ + build/ROMID/game/mplayer/setup.o (section); \ + build/ROMID/game/mplayer/scenarios.o (section); \ + build/ROMID/game/mplayer/mplayer.o (section); \ + build/ROMID/game/radar.o (section); \ + build/ROMID/game/game_190260.o (section); \ + build/ROMID/game/game_197600.o (section); \ + build/ROMID/game/game_1999b0.o (section); \ + build/ROMID/game/game_19aa80.o (section); \ + build/ROMID/game/training/training.o (section); \ + build/ROMID/game/training/menus.o (section); \ + build/ROMID/game/game_1a78b0.o (section); diff --git a/ld/gamefiles.inc b/ld/gamefiles.ntsc-final.inc similarity index 100% rename from ld/gamefiles.inc rename to ld/gamefiles.ntsc-final.inc diff --git a/ld/gamefiles.pal-final.inc b/ld/gamefiles.pal-final.inc new file mode 100644 index 000000000..a3198ee76 --- /dev/null +++ b/ld/gamefiles.pal-final.inc @@ -0,0 +1,194 @@ +#define GAMEFILES(section) \ + build/ROMID/game/game_000000.o (section); \ + build/ROMID/game/game_000090.o (section); \ + build/ROMID/game/game_000130.o (section); \ + build/ROMID/game/stubs/game_000840.o (section); \ + build/ROMID/game/stubs/game_000850.o (section); \ + build/ROMID/game/stubs/game_000860.o (section); \ + build/ROMID/game/stubs/game_000870.o (section); \ + build/ROMID/game/game_000880.o (section); \ + build/ROMID/game/stubs/game_0008e0.o (section); \ + build/ROMID/game/stubs/game_0008f0.o (section); \ + build/ROMID/game/stubs/game_000900.o (section); \ + build/ROMID/game/stubs/game_000910.o (section); \ + build/ROMID/game/dlights.o (section); \ + build/ROMID/game/game_005fd0.o (section); \ + build/ROMID/game/game_006900.o (section); \ + build/ROMID/game/game_006bd0.o (section); \ + build/ROMID/game/nbomb.o (section); \ + build/ROMID/game/stubs/game_00b180.o (section); \ + build/ROMID/game/game_00b190.o (section); \ + build/ROMID/game/stubs/game_00b200.o (section); \ + build/ROMID/game/game_00b210.o (section); \ + build/ROMID/game/game_00b320.o (section); \ + build/ROMID/game/game_00b420.o (section); \ + build/ROMID/game/game_00b480.o (section); \ + build/ROMID/game/game_00b820.o (section); \ + build/ROMID/game/game_00c240.o (section); \ + build/ROMID/game/game_00c490.o (section); \ + build/ROMID/game/game_0108d0.o (section); \ + build/ROMID/game/objectives/setup.o (section); \ + build/ROMID/game/casing/reset.o (section); \ + build/ROMID/game/game_010b20.o (section); \ + build/ROMID/game/game_011110.o (section); \ + build/ROMID/game/inventory/init.o (section); \ + build/ROMID/game/game_0125a0.o (section); \ + build/ROMID/game/game_012aa0.o (section); \ + build/ROMID/game/game_012d50.o (section); \ + build/ROMID/game/explosions/init.o (section); \ + build/ROMID/game/smoke/init.o (section); \ + build/ROMID/game/sparks/init.o (section); \ + build/ROMID/game/weather/init.o (section); \ + build/ROMID/game/stubs/game_013540.o (section); \ + build/ROMID/game/game_013550.o (section); \ + build/ROMID/game/shards/init.o (section); \ + build/ROMID/game/game_013b80.o (section); \ + build/ROMID/game/game_013cf0.o (section); \ + build/ROMID/game/game_013ee0.o (section); \ + build/ROMID/game/game_0147a0.o (section); \ + build/ROMID/game/game_0147d0.o (section); \ + build/ROMID/game/game_014e90.o (section); \ + build/ROMID/game/game_014f10.o (section); \ + build/ROMID/game/game_015010.o (section); \ + build/ROMID/game/game_0150a0.o (section); \ + build/ROMID/game/objectives/autocomplete.o (section); \ + build/ROMID/game/stubs/game_015260.o (section); \ + build/ROMID/game/stubs/game_015270.o (section); \ + build/ROMID/game/explosions/reset.o (section); \ + build/ROMID/game/smoke/reset.o (section); \ + build/ROMID/game/stubs/game_0153f0.o (section); \ + build/ROMID/game/stubs/game_015400.o (section); \ + build/ROMID/game/stubs/game_015410.o (section); \ + build/ROMID/game/shards/reset.o (section); \ + build/ROMID/game/game_015470.o (section); \ + build/ROMID/game/title.o (section); \ + build/ROMID/game/game_01afc0.o (section); \ + build/ROMID/game/game_01b0a0.o (section); \ + build/ROMID/game/activemenu/tick.o (section); \ + build/ROMID/game/game_01bea0.o (section); \ + build/ROMID/game/weather/tick.o (section); \ + build/ROMID/game/game_01d860.o (section); \ + build/ROMID/game/game_01d8c0.o (section); \ + build/ROMID/game/game_01d990.o (section); \ + build/ROMID/game/casing/tick.o (section); \ + build/ROMID/game/shards/tick.o (section); \ + build/ROMID/game/sparks/tick.o (section); \ + build/ROMID/game/chr/chr.o (section); \ + build/ROMID/game/game_02cde0.o (section); \ + build/ROMID/game/chr/chraction.o (section); \ + build/ROMID/game/chr/chrai.o (section); \ + build/ROMID/game/chr/chraicommands.o (section); \ + build/ROMID/game/prop.o (section); \ + build/ROMID/game/propobj.o (section); \ + build/ROMID/game/propobjbss.o (section); \ + build/ROMID/game/game_091e10.o (section); \ + build/ROMID/game/game_092610.o (section); \ + build/ROMID/game/objectives/objectives.o (section); \ + build/ROMID/game/game_096360.o (section); \ + build/ROMID/game/game_096700.o (section); \ + build/ROMID/game/atan2f.o (section); \ + build/ROMID/game/game_096890.o (section); \ + build/ROMID/game/game_0969d0.o (section); \ + build/ROMID/game/game_096b20.o (section); \ + build/ROMID/game/game_096ca0.o (section); \ + build/ROMID/game/floor.o (section); \ + build/ROMID/game/ceil.o (section); \ + build/ROMID/game/game_097a50.o (section); \ + build/ROMID/game/game_097aa0.o (section); \ + build/ROMID/game/inventory/items.o (section); \ + build/ROMID/game/game_097ba0.o (section); \ + build/ROMID/game/game_0abe70.o (section); \ + build/ROMID/game/mpstats.o (section); \ + build/ROMID/game/game_0b0fd0.o (section); \ + build/ROMID/game/game_0b2150.o (section); \ + build/ROMID/game/game_0b28d0.o (section); \ + build/ROMID/game/game_0b3350.o (section); \ + build/ROMID/game/game_0b4950.o (section); \ + build/ROMID/game/game_0b63b0.o (section); \ + build/ROMID/game/game_0b69d0.o (section); \ + build/ROMID/game/game_0c33f0.o (section); \ + build/ROMID/game/bondcutscene.o (section); \ + build/ROMID/game/bondwalk.o (section); \ + build/ROMID/game/bondmove.o (section); \ + build/ROMID/game/bondgrab.o (section); \ + build/ROMID/game/bondeyespy.o (section); \ + build/ROMID/game/bondbike.o (section); \ + build/ROMID/game/game_0d4690.o (section); \ + build/ROMID/game/healthbar.o (section); \ + build/ROMID/game/sight.o (section); \ + build/ROMID/game/hudmsg.o (section); \ + build/ROMID/game/game_0e0770.o (section); \ + build/ROMID/game/menu/items.o (section); \ + build/ROMID/game/game_0f09f0.o (section); \ + build/ROMID/game/activemenu/activemenu.o (section); \ + build/ROMID/game/stubs/game_102230.o (section); \ + build/ROMID/game/game_102240.o (section); \ + build/ROMID/game/cheats.o (section); \ + build/ROMID/game/game_107fb0.o (section); \ + build/ROMID/game/game_10c9c0.o (section); \ + build/ROMID/game/endscreen.o (section); \ + build/ROMID/game/gamefile.o (section); \ + build/ROMID/game/game_110680.o (section); \ + build/ROMID/game/inventory/inventory.o (section); \ + build/ROMID/game/bondhead.o (section); \ + build/ROMID/game/padhalllv.o (section); \ + build/ROMID/game/pad.o (section); \ + build/ROMID/game/pak/pak.o (section); \ + build/ROMID/game/debug.o (section); \ + build/ROMID/game/stubs/game_11eff0.o (section); \ + build/ROMID/game/data/ailists.o (section); \ + build/ROMID/game/data/data_020df0.o (section); \ + build/ROMID/game/game_11f000.o (section); \ + build/ROMID/game/game_127910.o (section); \ + build/ROMID/game/game_128f30.o (section); \ + build/ROMID/game/game_129210.o (section); \ + build/ROMID/game/explosions/explosions.o (section); \ + build/ROMID/game/smoke/smoke.o (section); \ + build/ROMID/game/sparks/sparks.o (section); \ + build/ROMID/game/weather/weather.o (section); \ + build/ROMID/game/sky.o (section); \ + build/ROMID/game/credits.o (section); \ + build/ROMID/game/game_13b670.o (section); \ + build/ROMID/game/game_13c510.o (section); \ + build/ROMID/game/wallhit.o (section); \ + build/ROMID/game/bondview.o (section); \ + build/ROMID/game/splat.o (section); \ + build/ROMID/game/camdraw.o (section); \ + build/ROMID/game/shards/shards.o (section); \ + build/ROMID/game/options.o (section); \ + build/ROMID/game/game_152fa0.o (section); \ + build/ROMID/game/game_1531a0.o (section); \ + build/ROMID/game/game_1577f0.o (section); \ + build/ROMID/game/room.o (section); \ + build/ROMID/game/roombss.o (section); \ + build/ROMID/game/game_165360.o (section); \ + build/ROMID/game/game_1655c0.o (section); \ + build/ROMID/game/game_165670.o (section); \ + build/ROMID/game/game_1657c0.o (section); \ + build/ROMID/game/game_1668e0.o (section); \ + build/ROMID/game/file.o (section); \ + build/ROMID/game/gfxmemory.o (section); \ + build/ROMID/game/core.o (section); \ + build/ROMID/game/timing.o (section); \ + build/ROMID/game/music.o (section); \ + build/ROMID/game/lang.o (section); \ + build/ROMID/game/texture.o (section); \ + build/ROMID/game/game_173a00.o (section); \ + build/ROMID/game/stubs/game_175f50.o (section); \ + build/ROMID/game/game_175f90.o (section); \ + build/ROMID/game/stubs/game_176000.o (section); \ + build/ROMID/game/game_176080.o (section); \ + build/ROMID/game/utils.o (section); \ + build/ROMID/game/mplayer/ingame.o (section); \ + build/ROMID/game/mplayer/setup.o (section); \ + build/ROMID/game/mplayer/scenarios.o (section); \ + build/ROMID/game/mplayer/mplayer.o (section); \ + build/ROMID/game/radar.o (section); \ + build/ROMID/game/game_190260.o (section); \ + build/ROMID/game/game_197600.o (section); \ + build/ROMID/game/game_1999b0.o (section); \ + build/ROMID/game/game_19aa80.o (section); \ + build/ROMID/game/training/training.o (section); \ + build/ROMID/game/training/menus.o (section); \ + build/ROMID/game/game_1a7560.o (section); \ + build/ROMID/game/game_1a78b0.o (section); diff --git a/ld/libfiles.ntsc-beta.inc b/ld/libfiles.ntsc-beta.inc new file mode 100644 index 000000000..0e6d23b2d --- /dev/null +++ b/ld/libfiles.ntsc-beta.inc @@ -0,0 +1,220 @@ +#define LIBFILES(section) \ + build/ROMID/lib/entry.o (section); \ + build/ROMID/lib/segments.o (section); \ + build/ROMID/lib/init.o (section); \ + build/ROMID/lib/sched.o (section); \ + build/ROMID/lib/reset.o (section); \ + build/ROMID/lib/ultra/os/maptlbrdb.o (section); \ + build/ROMID/lib/ultra/io/vimgr.o (section); \ + build/ROMID/lib/ultra/io/pimgr.o (section); \ + build/ROMID/lib/lib_034d0.o (section); \ + build/ROMID/lib/ultra/os/exceptasm.o (section); \ + build/ROMID/lib/ultra/os/syncputchars.o (section); \ + build/ROMID/lib/ultra/os/createthread.o (section); \ + build/ROMID/lib/ultra/gu/lookat.o (section); \ + build/ROMID/lib/ultra/gu/lookatref.o (section); \ + build/ROMID/lib/ultra/gu/normalize.o (section); \ + build/ROMID/lib/ultra/gu/perspective.o (section); \ + build/ROMID/lib/ultra/gu/rotate.o (section); \ + build/ROMID/lib/lib_04f60nb.o (section); \ + build/ROMID/lib/ultra/libc/xldtob.o (section); \ + build/ROMID/lib/ultra/libc/llcvt.o (section); \ + build/ROMID/lib/ultra/os/initialize.o (section); \ + build/ROMID/lib/ultra/io/sptask.o (section); \ + build/ROMID/lib/lib_06100.o (section); \ + build/ROMID/lib/lib_06330.o (section); \ + build/ROMID/lib/ultra/io/conteeplongwrite.o (section); \ + build/ROMID/lib/lib_06550.o (section); \ + build/ROMID/lib/lib_070d0.o (section); \ + build/ROMID/lib/lib_074f0.o (section); \ + build/ROMID/lib/audiomgr.o (section); \ + build/ROMID/lib/lib_09660.o (section); \ + build/ROMID/lib/lib_09a80.o (section); \ + build/ROMID/lib/lib_0bfb0.o (section); \ + build/ROMID/lib/lib_0c000.o (section); \ + build/ROMID/lib/dma.o (section); \ + build/ROMID/lib/main.o (section); \ + build/ROMID/lib/lib_0e9d0.o (section); \ + build/ROMID/lib/lib_11420.o (section); \ + build/ROMID/lib/memory.o (section); \ + build/ROMID/lib/lib_126b0.o (section); \ + build/ROMID/lib/rng.o (section); \ + build/ROMID/lib/args.o (section); \ + build/ROMID/lib/str.o (section); \ + build/ROMID/lib/ultra/libc/sprintf.o (section); \ + build/ROMID/lib/lib_13710.o (section); \ + build/ROMID/lib/lib_13750.o (section); \ + build/ROMID/lib/lib_13790.o (section); \ + build/ROMID/lib/lib_13820.o (section); \ + build/ROMID/lib/controller.o (section); \ + build/ROMID/lib/lib_15850.o (section); \ + build/ROMID/lib/gvars.o (section); \ + build/ROMID/lib/lib_159b0.o (section); \ + build/ROMID/lib/lib_16110.o (section); \ + build/ROMID/lib/lib_17ce0.o (section); \ + build/ROMID/lib/lib_184d0.o (section); \ + build/ROMID/lib/model.o (section); \ + build/ROMID/game/game_1a7560.o (section); \ + build/ROMID/lib/lib_233c0.o (section); \ + build/ROMID/lib/lib_24e40.o (section); \ + build/ROMID/lib/lib_2f490.o (section); \ + build/ROMID/lib/lib_2f8a0.o (section); \ + build/ROMID/lib/lib_2fa00.o (section); \ + build/ROMID/lib/lib_2faf0.o (section); \ + build/ROMID/lib/lib_2fba0.o (section); \ + build/ROMID/lib/lib_2fc60.o (section); \ + build/ROMID/lib/lib_30ce0.o (section); \ + build/ROMID/lib/lib_317f0.o (section); \ + build/ROMID/lib/lib_34030.o (section); \ + build/ROMID/lib/lib_34240.o (section); \ + build/ROMID/lib/lib_37650.o (section); \ + build/ROMID/lib/lib_37b00.o (section); \ + build/ROMID/lib/lib_38d10.o (section); \ + build/ROMID/lib/lib_38d30.o (section); \ + build/ROMID/lib/lib_39c80.o (section); \ + build/ROMID/lib/lib_39f70.o (section); \ + build/ROMID/lib/lib_39fc0.o (section); \ + build/ROMID/lib/lib_39fe0.o (section); \ + build/ROMID/lib/lib_3a100.o (section); \ + build/ROMID/lib/lib_3c430.o (section); \ + build/ROMID/lib/lib_3c4d0.o (section); \ + build/ROMID/lib/lib_3ccf0.o (section); \ + build/ROMID/lib/lib_3cdc0.o (section); \ + build/ROMID/lib/lib_3cef0.o (section); \ + build/ROMID/lib/lib_3d280.o (section); \ + build/ROMID/lib/lib_3e3e0.o (section); \ + build/ROMID/lib/lib_3e730.o (section); \ + build/ROMID/lib/lib_3e8c0.o (section); \ + build/ROMID/lib/lib_43dd0.o (section); \ + build/ROMID/lib/lib_446d0.o (section); \ + build/ROMID/lib/lib_44bc0.o (section); \ + build/ROMID/lib/lib_44f60.o (section); \ + build/ROMID/lib/lib_45ed0.o (section); \ + build/ROMID/lib/lib_461c0.o (section); \ + build/ROMID/lib/lib_46650.o (section); \ + build/ROMID/lib/lib_47550.o (section); \ + build/ROMID/lib/lib_47a90.o (section); \ + build/ROMID/lib/lib_47d20.o (section); \ + build/ROMID/lib/ultra/io/vitbl.o (section); \ + build/ROMID/lib/ultra/os/writebackdcacheall.o (section); \ + build/ROMID/lib/ultra/os/invalicache.o (section); \ + build/ROMID/lib/ultra/os/getfpccsr.o (section); \ + build/ROMID/lib/ultra/os/setfpccsr.o (section); \ + build/ROMID/lib/ultra/os/startthread.o (section); \ + build/ROMID/lib/ultra/os/createmesgqueue.o (section); \ + build/ROMID/lib/ultra/os/stopthread.o (section); \ + build/ROMID/lib/ultra/os/setthreadpri.o (section); \ + build/ROMID/lib/ultra/os/getcount.o (section); \ + build/ROMID/lib/ultra/os/seteventmesg.o (section); \ + build/ROMID/lib/ultra/io/visetevent.o (section); \ + build/ROMID/lib/ultra/os/setintmask.o (section); \ + build/ROMID/lib/ultra/os/recvmesg.o (section); \ + build/ROMID/lib/ultra/io/vigetcurrframebuf.o (section); \ + build/ROMID/lib/ultra/io/vigetnextframebuf.o (section); \ + build/ROMID/lib/ultra/io/dpsetstat.o (section); \ + build/ROMID/lib/ultra/os/getthreadpri.o (section); \ + build/ROMID/lib/ultra/os/sendmesg.o (section); \ + build/ROMID/lib/ultra/os/stoptimer.o (section); \ + build/ROMID/lib/ultra/os/settimer.o (section); \ + build/ROMID/lib/ultra/io/sptaskyielded.o (section); \ + build/ROMID/lib/ultra/io/dpctr.o (section); \ + build/ROMID/lib/ultra/io/dpgetstat.o (section); \ + build/ROMID/lib/ultra/io/viblack.o (section); \ + build/ROMID/lib/ultra/io/visetmode.o (section); \ + build/ROMID/lib/ultra/io/visetxscale.o (section); \ + build/ROMID/lib/ultra/io/visetyscale.o (section); \ + build/ROMID/lib/ultra/io/visetspecial.o (section); \ + build/ROMID/lib/ultra/io/viswapbuf.o (section); \ + build/ROMID/lib/ultra/io/sptaskyield.o (section); \ + build/ROMID/lib/ultra/os/gettime.o (section); \ + build/ROMID/lib/ultra/os/timerintr.o (section); \ + build/ROMID/lib/ultra/os/interrupt.o (section); \ + build/ROMID/lib/ultra/io/vi.o (section); \ + build/ROMID/lib/ultra/io/vigetcurrcontext.o (section); \ + build/ROMID/lib/ultra/io/viswapcontext.o (section); \ + build/ROMID/lib/ultra/io/piacs.o (section); \ + build/ROMID/lib/ultra/io/pirawdma.o (section); \ + build/ROMID/lib/ultra/io/epirawdma.o (section); \ + build/ROMID/lib/ultra/io/devmgr.o (section); \ + build/ROMID/lib/ultra/os/thread.o (section); \ + build/ROMID/lib/ultra/os/destroythread.o (section); \ + build/ROMID/lib/ultra/os/atomic.o (section); \ + build/ROMID/lib/ultra/os/getcause.o (section); \ + build/ROMID/lib/ultra/gu/mtxutil.o (section); \ + build/ROMID/lib/ultra/gu/sqrtf.o (section); \ + build/ROMID/lib/ultra/libc/string.o (section); \ + build/ROMID/lib/ultra/libc/ldiv.o (section); \ + build/ROMID/lib/ultra/os/setsr.o (section); \ + build/ROMID/lib/ultra/os/getsr.o (section); \ + build/ROMID/lib/ultra/io/sirawread.o (section); \ + build/ROMID/lib/ultra/io/sirawwrite.o (section); \ + build/ROMID/lib/ultra/os/writebackdcache.o (section); \ + build/ROMID/lib/ultra/libc/ll.o (section); \ + build/ROMID/lib/ultra/libc/bzero.o (section); \ + build/ROMID/lib/lib_4b170.o (section); \ + build/ROMID/lib/ultra/os/virtualtophysical.o (section); \ + build/ROMID/lib/ultra/io/spsetstat.o (section); \ + build/ROMID/lib/ultra/io/spsetpc.o (section); \ + build/ROMID/lib/ultra/io/sprawdma.o (section); \ + build/ROMID/lib/ultra/io/sp.o (section); \ + build/ROMID/lib/ultra/io/contramwrite.o (section); \ + build/ROMID/lib/ultra/io/contramread.o (section); \ + build/ROMID/lib/ultra/io/pfsgetstatus.o (section); \ + build/ROMID/lib/ultra/io/conteepwrite.o (section); \ + build/ROMID/lib/ultra/io/controller.o (section); \ + build/ROMID/lib/lib_4c090.o (section); \ + build/ROMID/lib/lib_4cc10.o (section); \ + build/ROMID/lib/ultra/io/pfsselectbank.o (section); \ + build/ROMID/lib/lib_4ce60.o (section); \ + build/ROMID/lib/lib_4d000.o (section); \ + build/ROMID/lib/lib_4d480.o (section); \ + build/ROMID/lib/ultra/io/siacs.o (section); \ + build/ROMID/lib/lib_4d6f0.o (section); \ + build/ROMID/lib/ultra/os/getmemsize.o (section); \ + build/ROMID/lib/ultra/os/maptlb.o (section); \ + build/ROMID/lib/ultra/io/aisetfreq.o (section); \ + build/ROMID/lib/ultra/io/aisetnextbuf.o (section); \ + build/ROMID/lib/ultra/io/aigetlen.o (section); \ + build/ROMID/lib/ultra/os/invaldcache.o (section); \ + build/ROMID/lib/ultra/io/pidma.o (section); \ + build/ROMID/lib/ultra/os/getcurrfaultthread.o (section); \ + build/ROMID/lib/ultra/io/piread.o (section); \ + build/ROMID/lib/ultra/libc/xprintf.o (section); \ + build/ROMID/lib/ultra/io/contquery.o (section); \ + build/ROMID/lib/ultra/io/pfsisplug.o (section); \ + build/ROMID/lib/ultra/io/contreaddata.o (section); \ + build/ROMID/lib/lib_4f5e0.o (section); \ + build/ROMID/lib/ultra/gu/ortho.o (section); \ + build/ROMID/lib/ultra/gu/frustum.o (section); \ + build/ROMID/lib/lib_4fff0.o (section); \ + build/ROMID/lib/ultra/gu/scale.o (section); \ + build/ROMID/lib/ultra/io/conteepprobe.o (section); \ + build/ROMID/lib/ultra/io/conteepread.o (section); \ + build/ROMID/lib/ultra/io/conteeplongread.o (section); \ + build/ROMID/lib/lib_50480.o (section); \ + build/ROMID/lib/lib_508d0.o (section); \ + build/ROMID/lib/lib_50a00.o (section); \ + build/ROMID/lib/lib_50be0.o (section); \ + build/ROMID/lib/lib_50d60.o (section); \ + build/ROMID/lib/lib_50f20.o (section); \ + build/ROMID/lib/lib_513b0.o (section); \ + build/ROMID/lib/ultra/os/setcompare.o (section); \ + build/ROMID/lib/ultra/io/vimodepallan1.o (section); \ + build/ROMID/lib/ultra/io/vimodempallan1.o (section); \ + build/ROMID/lib/ultra/io/vimodentsclan1.o (section); \ + build/ROMID/lib/ultra/io/spgetstat.o (section); \ + build/ROMID/lib/ultra/os/resetglobalintmask.o (section); \ + build/ROMID/lib/ultra/io/epirawwrite.o (section); \ + build/ROMID/lib/ultra/io/epirawread.o (section); \ + build/ROMID/lib/ultra/os/setglobalintmask.o (section); \ + build/ROMID/lib/ultra/os/yieldthread.o (section); \ + build/ROMID/lib/ultra/io/si.o (section); \ + build/ROMID/lib/ultra/os/probetlb.o (section); \ + build/ROMID/lib/ultra/io/crc.o (section); \ + build/ROMID/lib/ultra/io/sirawdma.o (section); \ + build/ROMID/lib/ultra/io/ai.o (section); \ + build/ROMID/lib/ultra/os/jammesg.o (section); \ + build/ROMID/lib/ultra/io/pigetcmdq.o (section); \ + build/ROMID/lib/ultra/io/pirawread.o (section); \ + build/ROMID/lib/ultra/libc/xlitob.o (section); \ + build/ROMID/lib/lib_52360.o (section); diff --git a/ld/libfiles.ntsc-final.inc b/ld/libfiles.ntsc-final.inc new file mode 100644 index 000000000..0aa356da6 --- /dev/null +++ b/ld/libfiles.ntsc-final.inc @@ -0,0 +1,216 @@ +#define LIBFILES(section) \ + build/ROMID/lib/entry.o (section); \ + build/ROMID/lib/segments.o (section); \ + build/ROMID/lib/init.o (section); \ + build/ROMID/lib/sched.o (section); \ + build/ROMID/lib/reset.o (section); \ + build/ROMID/lib/ultra/os/maptlbrdb.o (section); \ + build/ROMID/lib/ultra/io/vimgr.o (section); \ + build/ROMID/lib/ultra/io/pimgr.o (section); \ + build/ROMID/lib/lib_034d0.o (section); \ + build/ROMID/lib/ultra/os/exceptasm.o (section); \ + build/ROMID/lib/ultra/os/createthread.o (section); \ + build/ROMID/lib/ultra/gu/lookat.o (section); \ + build/ROMID/lib/ultra/gu/lookatref.o (section); \ + build/ROMID/lib/ultra/gu/normalize.o (section); \ + build/ROMID/lib/ultra/gu/perspective.o (section); \ + build/ROMID/lib/ultra/gu/rotate.o (section); \ + build/ROMID/lib/ultra/libc/xldtob.o (section); \ + build/ROMID/lib/ultra/io/pfsisplug.o (section); \ + build/ROMID/lib/ultra/libc/llcvt.o (section); \ + build/ROMID/lib/ultra/os/initialize.o (section); \ + build/ROMID/lib/ultra/io/sptask.o (section); \ + build/ROMID/lib/lib_06100.o (section); \ + build/ROMID/lib/lib_06330.o (section); \ + build/ROMID/lib/ultra/io/conteeplongwrite.o (section); \ + build/ROMID/lib/lib_06550.o (section); \ + build/ROMID/lib/lib_070d0.o (section); \ + build/ROMID/lib/lib_074f0.o (section); \ + build/ROMID/lib/audiomgr.o (section); \ + build/ROMID/lib/lib_09660.o (section); \ + build/ROMID/lib/lib_09a80.o (section); \ + build/ROMID/lib/lib_0bfb0.o (section); \ + build/ROMID/lib/lib_0c000.o (section); \ + build/ROMID/lib/dma.o (section); \ + build/ROMID/lib/main.o (section); \ + build/ROMID/lib/lib_0e9d0.o (section); \ + build/ROMID/lib/lib_11420.o (section); \ + build/ROMID/lib/memory.o (section); \ + build/ROMID/lib/lib_126b0.o (section); \ + build/ROMID/lib/rng.o (section); \ + build/ROMID/lib/args.o (section); \ + build/ROMID/lib/str.o (section); \ + build/ROMID/lib/ultra/libc/sprintf.o (section); \ + build/ROMID/lib/lib_13710.o (section); \ + build/ROMID/lib/lib_13750.o (section); \ + build/ROMID/lib/lib_13790.o (section); \ + build/ROMID/lib/lib_13820.o (section); \ + build/ROMID/lib/controller.o (section); \ + build/ROMID/lib/lib_15850.o (section); \ + build/ROMID/lib/gvars.o (section); \ + build/ROMID/lib/lib_159b0.o (section); \ + build/ROMID/lib/lib_16110.o (section); \ + build/ROMID/lib/lib_17ce0.o (section); \ + build/ROMID/lib/lib_184d0.o (section); \ + build/ROMID/lib/model.o (section); \ + build/ROMID/lib/lib_233c0.o (section); \ + build/ROMID/lib/lib_24e40.o (section); \ + build/ROMID/lib/lib_2f490.o (section); \ + build/ROMID/lib/lib_2f8a0.o (section); \ + build/ROMID/lib/lib_2fa00.o (section); \ + build/ROMID/lib/lib_2faf0.o (section); \ + build/ROMID/lib/lib_2fba0.o (section); \ + build/ROMID/lib/lib_2fc60.o (section); \ + build/ROMID/lib/lib_30ce0.o (section); \ + build/ROMID/lib/lib_317f0.o (section); \ + build/ROMID/lib/lib_34030.o (section); \ + build/ROMID/lib/lib_34240.o (section); \ + build/ROMID/lib/lib_37650.o (section); \ + build/ROMID/lib/lib_37b00.o (section); \ + build/ROMID/lib/lib_38d10.o (section); \ + build/ROMID/lib/lib_38d30.o (section); \ + build/ROMID/lib/lib_39c80.o (section); \ + build/ROMID/lib/lib_39f70.o (section); \ + build/ROMID/lib/lib_39fc0.o (section); \ + build/ROMID/lib/lib_39fe0.o (section); \ + build/ROMID/lib/lib_3a100.o (section); \ + build/ROMID/lib/lib_3c430.o (section); \ + build/ROMID/lib/lib_3c4d0.o (section); \ + build/ROMID/lib/lib_3ccf0.o (section); \ + build/ROMID/lib/lib_3cdc0.o (section); \ + build/ROMID/lib/lib_3cef0.o (section); \ + build/ROMID/lib/lib_3d280.o (section); \ + build/ROMID/lib/lib_3e3e0.o (section); \ + build/ROMID/lib/lib_3e730.o (section); \ + build/ROMID/lib/lib_3e8c0.o (section); \ + build/ROMID/lib/lib_43dd0.o (section); \ + build/ROMID/lib/lib_446d0.o (section); \ + build/ROMID/lib/lib_44bc0.o (section); \ + build/ROMID/lib/lib_44f60.o (section); \ + build/ROMID/lib/lib_45ed0.o (section); \ + build/ROMID/lib/lib_461c0.o (section); \ + build/ROMID/lib/lib_46650.o (section); \ + build/ROMID/lib/lib_47550.o (section); \ + build/ROMID/lib/lib_47a90.o (section); \ + build/ROMID/lib/lib_47d20.o (section); \ + build/ROMID/lib/ultra/io/vitbl.o (section); \ + build/ROMID/lib/ultra/os/writebackdcacheall.o (section); \ + build/ROMID/lib/ultra/os/invalicache.o (section); \ + build/ROMID/lib/ultra/os/getfpccsr.o (section); \ + build/ROMID/lib/ultra/os/setfpccsr.o (section); \ + build/ROMID/lib/ultra/os/startthread.o (section); \ + build/ROMID/lib/ultra/os/createmesgqueue.o (section); \ + build/ROMID/lib/ultra/os/stopthread.o (section); \ + build/ROMID/lib/ultra/os/setthreadpri.o (section); \ + build/ROMID/lib/ultra/os/getcount.o (section); \ + build/ROMID/lib/ultra/os/seteventmesg.o (section); \ + build/ROMID/lib/ultra/io/visetevent.o (section); \ + build/ROMID/lib/ultra/os/setintmask.o (section); \ + build/ROMID/lib/ultra/os/recvmesg.o (section); \ + build/ROMID/lib/ultra/io/vigetcurrframebuf.o (section); \ + build/ROMID/lib/ultra/io/vigetnextframebuf.o (section); \ + build/ROMID/lib/ultra/io/dpsetstat.o (section); \ + build/ROMID/lib/ultra/os/getthreadpri.o (section); \ + build/ROMID/lib/ultra/os/sendmesg.o (section); \ + build/ROMID/lib/ultra/os/stoptimer.o (section); \ + build/ROMID/lib/ultra/os/settimer.o (section); \ + build/ROMID/lib/ultra/io/sptaskyielded.o (section); \ + build/ROMID/lib/ultra/io/dpctr.o (section); \ + build/ROMID/lib/ultra/io/dpgetstat.o (section); \ + build/ROMID/lib/ultra/io/viblack.o (section); \ + build/ROMID/lib/ultra/io/visetmode.o (section); \ + build/ROMID/lib/ultra/io/visetxscale.o (section); \ + build/ROMID/lib/ultra/io/visetyscale.o (section); \ + build/ROMID/lib/ultra/io/visetspecial.o (section); \ + build/ROMID/lib/ultra/io/viswapbuf.o (section); \ + build/ROMID/lib/ultra/io/sptaskyield.o (section); \ + build/ROMID/lib/ultra/os/gettime.o (section); \ + build/ROMID/lib/ultra/os/timerintr.o (section); \ + build/ROMID/lib/ultra/os/interrupt.o (section); \ + build/ROMID/lib/ultra/io/vi.o (section); \ + build/ROMID/lib/ultra/io/vigetcurrcontext.o (section); \ + build/ROMID/lib/ultra/io/viswapcontext.o (section); \ + build/ROMID/lib/ultra/io/piacs.o (section); \ + build/ROMID/lib/ultra/io/pirawdma.o (section); \ + build/ROMID/lib/ultra/io/epirawdma.o (section); \ + build/ROMID/lib/ultra/io/devmgr.o (section); \ + build/ROMID/lib/ultra/os/thread.o (section); \ + build/ROMID/lib/ultra/os/destroythread.o (section); \ + build/ROMID/lib/ultra/gu/mtxutil.o (section); \ + build/ROMID/lib/ultra/gu/sqrtf.o (section); \ + build/ROMID/lib/ultra/libc/string.o (section); \ + build/ROMID/lib/ultra/libc/ldiv.o (section); \ + build/ROMID/lib/ultra/io/siacs.o (section); \ + build/ROMID/lib/ultra/io/sirawdma.o (section); \ + build/ROMID/lib/ultra/io/controller.o (section); \ + build/ROMID/lib/ultra/os/setsr.o (section); \ + build/ROMID/lib/ultra/os/getsr.o (section); \ + build/ROMID/lib/ultra/io/sirawread.o (section); \ + build/ROMID/lib/ultra/io/sirawwrite.o (section); \ + build/ROMID/lib/ultra/os/writebackdcache.o (section); \ + build/ROMID/lib/ultra/libc/ll.o (section); \ + build/ROMID/lib/ultra/libc/bzero.o (section); \ + build/ROMID/lib/ultra/os/getcause.o (section); \ + build/ROMID/lib/lib_4b170.o (section); \ + build/ROMID/lib/ultra/os/virtualtophysical.o (section); \ + build/ROMID/lib/ultra/io/spsetstat.o (section); \ + build/ROMID/lib/ultra/io/spsetpc.o (section); \ + build/ROMID/lib/ultra/io/sprawdma.o (section); \ + build/ROMID/lib/ultra/io/sp.o (section); \ + build/ROMID/lib/ultra/io/contramwrite.o (section); \ + build/ROMID/lib/ultra/io/contramread.o (section); \ + build/ROMID/lib/ultra/io/pfsgetstatus.o (section); \ + build/ROMID/lib/ultra/io/conteepwrite.o (section); \ + build/ROMID/lib/lib_4c090.o (section); \ + build/ROMID/lib/lib_4cc10.o (section); \ + build/ROMID/lib/ultra/io/pfsselectbank.o (section); \ + build/ROMID/lib/lib_4ce60.o (section); \ + build/ROMID/lib/lib_4d000.o (section); \ + build/ROMID/lib/lib_4d480.o (section); \ + build/ROMID/lib/lib_4d6f0.o (section); \ + build/ROMID/lib/ultra/os/maptlb.o (section); \ + build/ROMID/lib/ultra/io/aisetfreq.o (section); \ + build/ROMID/lib/ultra/io/aisetnextbuf.o (section); \ + build/ROMID/lib/ultra/io/aigetlen.o (section); \ + build/ROMID/lib/ultra/os/invaldcache.o (section); \ + build/ROMID/lib/ultra/io/pidma.o (section); \ + build/ROMID/lib/ultra/os/getcurrfaultthread.o (section); \ + build/ROMID/lib/ultra/io/piread.o (section); \ + build/ROMID/lib/ultra/libc/xprintf.o (section); \ + build/ROMID/lib/ultra/io/contquery.o (section); \ + build/ROMID/lib/ultra/io/contreaddata.o (section); \ + build/ROMID/lib/lib_4f5e0.o (section); \ + build/ROMID/lib/ultra/gu/ortho.o (section); \ + build/ROMID/lib/ultra/gu/frustum.o (section); \ + build/ROMID/lib/lib_4fff0.o (section); \ + build/ROMID/lib/ultra/gu/scale.o (section); \ + build/ROMID/lib/ultra/io/conteepprobe.o (section); \ + build/ROMID/lib/ultra/io/conteepread.o (section); \ + build/ROMID/lib/ultra/io/conteeplongread.o (section); \ + build/ROMID/lib/lib_50480.o (section); \ + build/ROMID/lib/lib_508d0.o (section); \ + build/ROMID/lib/lib_50a00.o (section); \ + build/ROMID/lib/lib_50be0.o (section); \ + build/ROMID/lib/lib_50d60.o (section); \ + build/ROMID/lib/lib_50f20.o (section); \ + build/ROMID/lib/lib_513b0.o (section); \ + build/ROMID/lib/lib_51570.o (section); \ + build/ROMID/lib/ultra/io/vimodepallan1.o (section); \ + build/ROMID/lib/ultra/io/vimodempallan1.o (section); \ + build/ROMID/lib/ultra/io/vimodentsclan1.o (section); \ + build/ROMID/lib/ultra/os/setcompare.o (section); \ + build/ROMID/lib/ultra/io/spgetstat.o (section); \ + build/ROMID/lib/ultra/os/resetglobalintmask.o (section); \ + build/ROMID/lib/ultra/io/epirawwrite.o (section); \ + build/ROMID/lib/ultra/io/epirawread.o (section); \ + build/ROMID/lib/ultra/os/setglobalintmask.o (section); \ + build/ROMID/lib/ultra/os/yieldthread.o (section); \ + build/ROMID/lib/ultra/io/si.o (section); \ + build/ROMID/lib/ultra/os/probetlb.o (section); \ + build/ROMID/lib/ultra/io/crc.o (section); \ + build/ROMID/lib/ultra/io/ai.o (section); \ + build/ROMID/lib/ultra/os/jammesg.o (section); \ + build/ROMID/lib/ultra/io/pigetcmdq.o (section); \ + build/ROMID/lib/ultra/io/pirawread.o (section); \ + build/ROMID/lib/ultra/libc/xlitob.o (section); \ + build/ROMID/lib/lib_52360.o (section); diff --git a/ld/libfiles.inc b/ld/libfiles.pal-final.inc similarity index 91% rename from ld/libfiles.inc rename to ld/libfiles.pal-final.inc index dc2abe6e9..9fd9addd3 100644 --- a/ld/libfiles.inc +++ b/ld/libfiles.pal-final.inc @@ -1,8 +1,4 @@ -/** - * The order of files differ slightly between ROM versions, so there's a bit of - * macro concatenation here to avoid having to print the list twice. - */ -#define LIBFILES1(section) \ +#define LIBFILES(section) \ build/ROMID/lib/entry.o (section); \ build/ROMID/lib/segments.o (section); \ build/ROMID/lib/init.o (section); \ @@ -54,6 +50,7 @@ build/ROMID/lib/gvars.o (section); \ build/ROMID/lib/lib_159b0.o (section); \ build/ROMID/lib/lib_16110.o (section); \ + build/ROMID/lib/lib_17ce0.o (section); \ build/ROMID/lib/lib_184d0.o (section); \ build/ROMID/lib/model.o (section); \ build/ROMID/lib/lib_233c0.o (section); \ @@ -150,9 +147,7 @@ build/ROMID/lib/ultra/os/getsr.o (section); \ build/ROMID/lib/ultra/io/sirawread.o (section); \ build/ROMID/lib/ultra/io/sirawwrite.o (section); \ - build/ROMID/lib/ultra/os/writebackdcache.o (section); - -#define LIBFILES2(section) \ + build/ROMID/lib/ultra/os/writebackdcache.o (section); \ build/ROMID/lib/ultra/libc/bzero.o (section); \ build/ROMID/lib/ultra/os/getcause.o (section); \ build/ROMID/lib/lib_4b170.o (section); \ @@ -173,9 +168,8 @@ build/ROMID/lib/lib_4d480.o (section); \ build/ROMID/lib/lib_4d6f0.o (section); \ build/ROMID/lib/ultra/os/maptlb.o (section); \ - build/ROMID/lib/ultra/io/aisetfreq.o (section); - -#define LIBFILES3(section) \ + build/ROMID/lib/ultra/io/aisetfreq.o (section); \ + build/ROMID/lib/ultra/libc/ll.o (section); \ build/ROMID/lib/ultra/io/aisetnextbuf.o (section); \ build/ROMID/lib/ultra/io/aigetlen.o (section); \ build/ROMID/lib/ultra/os/invaldcache.o (section); \ @@ -200,6 +194,7 @@ build/ROMID/lib/lib_50d60.o (section); \ build/ROMID/lib/lib_50f20.o (section); \ build/ROMID/lib/lib_513b0.o (section); \ + build/ROMID/lib/lib_51570.o (section); \ build/ROMID/lib/ultra/io/vimodepallan1.o (section); \ build/ROMID/lib/ultra/io/vimodempallan1.o (section); \ build/ROMID/lib/ultra/io/vimodentsclan1.o (section); \ @@ -212,14 +207,7 @@ build/ROMID/lib/ultra/os/yieldthread.o (section); \ build/ROMID/lib/ultra/io/si.o (section); \ build/ROMID/lib/ultra/os/probetlb.o (section); \ - build/ROMID/lib/ultra/io/crc.o (section); - -#if VERSION >= VERSION_PAL_FINAL -#define LIBFILES(section) \ - LIBFILES1(section) \ - LIBFILES2(section) \ - build/ROMID/lib/ultra/libc/ll.o (section); \ - LIBFILES3(section) \ + build/ROMID/lib/ultra/io/crc.o (section); \ build/ROMID/lib/ultra/os/initialize2.o (section); \ build/ROMID/lib/ultra/io/ai.o (section); \ build/ROMID/lib/ultra/os/jammesg.o (section); \ @@ -228,16 +216,3 @@ build/ROMID/lib/ultra/libc/xlitob.o (section); \ build/ROMID/lib/lib_52360.o (section); \ build/ROMID/lib/ultra/os/unmaptlball.o (section); -#else -#define LIBFILES(section) \ - LIBFILES1(section) \ - build/ROMID/lib/ultra/libc/ll.o (section); \ - LIBFILES2(section) \ - LIBFILES3(section) \ - build/ROMID/lib/ultra/io/ai.o (section); \ - build/ROMID/lib/ultra/os/jammesg.o (section); \ - build/ROMID/lib/ultra/io/pigetcmdq.o (section); \ - build/ROMID/lib/ultra/io/pirawread.o (section); \ - build/ROMID/lib/ultra/libc/xlitob.o (section); \ - build/ROMID/lib/lib_52360.o (section); -#endif diff --git a/ld/pd.ld b/ld/pd.ld index ffd6ddc30..739e3fd22 100644 --- a/ld/pd.ld +++ b/ld/pd.ld @@ -5,8 +5,16 @@ #define VERSION_PAL_FINAL 4 #define VERSION_JPN_FINAL 5 -#include "gamefiles.inc" -#include "libfiles.inc" +#if VERSION == VERSION_NTSC_BETA +#include "gamefiles.ntsc-beta.inc" +#include "libfiles.ntsc-beta.inc" +#elif VERSION == VERSION_PAL_FINAL +#include "gamefiles.pal-final.inc" +#include "libfiles.pal-final.inc" +#else +#include "gamefiles.ntsc-final.inc" +#include "libfiles.ntsc-final.inc" +#endif #define BEGIN_SEG(name) \ _##name##SegmentStart = ADDR(.name); \ @@ -225,7 +233,7 @@ SECTIONS __rompos = 0x02000000; __rampos = 0x70001000; - BEGIN_SEG(lib) + BEGIN_SEG(lib) SUBALIGN(16) { LIBFILES(.text) LIBFILES(.rodata) diff --git a/src/assets/mpconfigs.c b/src/assets/mpconfigs.c index 3348816c7..b85361a45 100644 --- a/src/assets/mpconfigs.c +++ b/src/assets/mpconfigs.c @@ -954,10 +954,17 @@ struct mpconfig g_MpConfigs[] = { { SIMTYPE_GENERAL, MPHEAD_PENNY, MPBODY_PILOTAF1, MPTEAM_1, { SIMDIFF_DISABLED, SIMDIFF_HARD, SIMDIFF_HARD, SIMDIFF_PERFECT } }, { SIMTYPE_GENERAL, MPHEAD_VD, MPBODY_STEWARDESS, MPTEAM_0, { SIMDIFF_DISABLED, SIMDIFF_DISABLED, SIMDIFF_DISABLED, SIMDIFF_DISABLED } }, { SIMTYPE_GENERAL, MPHEAD_DAVEC, MPBODY_STEWARD, MPTEAM_0, { SIMDIFF_DISABLED, SIMDIFF_DISABLED, SIMDIFF_DISABLED, SIMDIFF_DISABLED } }, +#if VERSION >= VERSION_NTSC_1_0 { SIMTYPE_GENERAL, MPHEAD_KEITH, MPBODY_STEWARD, MPTEAM_0, { SIMDIFF_DISABLED, SIMDIFF_DISABLED, SIMDIFF_DISABLED, SIMDIFF_DISABLED } }, { SIMTYPE_GENERAL, MPHEAD_VD, MPBODY_STEWARDESS, MPTEAM_0, { SIMDIFF_DISABLED, SIMDIFF_DISABLED, SIMDIFF_DISABLED, SIMDIFF_NORMAL } }, { SIMTYPE_GENERAL, MPHEAD_STEVEM, MPBODY_STEWARD, MPTEAM_0, { SIMDIFF_DISABLED, SIMDIFF_NORMAL, SIMDIFF_NORMAL, SIMDIFF_NORMAL } }, { SIMTYPE_GENERAL, MPHEAD_VD, MPBODY_STEWARDESS, MPTEAM_0, { SIMDIFF_NORMAL, SIMDIFF_NORMAL, SIMDIFF_NORMAL, SIMDIFF_NORMAL } }, +#else + { SIMTYPE_GENERAL, MPHEAD_KEITH, MPBODY_STEWARD, MPTEAM_0, { SIMDIFF_DISABLED, SIMDIFF_DISABLED, SIMDIFF_DISABLED, SIMDIFF_EASY } }, + { SIMTYPE_GENERAL, MPHEAD_VD, MPBODY_STEWARDESS, MPTEAM_0, { SIMDIFF_DISABLED, SIMDIFF_DISABLED, SIMDIFF_EASY, SIMDIFF_EASY } }, + { SIMTYPE_GENERAL, MPHEAD_STEVEM, MPBODY_STEWARD, MPTEAM_0, { SIMDIFF_DISABLED, SIMDIFF_NORMAL, SIMDIFF_EASY, SIMDIFF_EASY } }, + { SIMTYPE_GENERAL, MPHEAD_VD, MPBODY_STEWARDESS, MPTEAM_0, { SIMDIFF_NORMAL, SIMDIFF_NORMAL, SIMDIFF_EASY, SIMDIFF_EASY } }, +#endif }, }, // MPCONFIG_CHALLENGE21 diff --git a/src/game/game_1a78b0.c b/src/game/game_1a78b0.c index 8107bbea0..e01522b6d 100644 --- a/src/game/game_1a78b0.c +++ b/src/game/game_1a78b0.c @@ -5,6 +5,37 @@ #include "data.h" #include "types.h" +#if VERSION == VERSION_NTSC_BETA +// These functions don't exist in ntsc-beta, but are here temporarily +void func00013900(void) +{ +} + +void func00013938(void) +{ +} + +void func00013974(u32 value) +{ +} + +void contShiftPfsStates(void) +{ +} + +void contCheckPfs(void) +{ +} + +void contRecordPfsState(void) +{ +} + +void func000152d0(s8 playernum, s32 *arg1, s32 *arg2) +{ +} +#endif + void func0f1a78b0(void) { // empty diff --git a/src/game/pak/pak.c b/src/game/pak/pak.c index 7b4afa1c8..09018962e 100644 --- a/src/game/pak/pak.c +++ b/src/game/pak/pak.c @@ -161,7 +161,11 @@ u32 func0f11668c(s8 device) return 0xbaa; } +#if VERSION >= VERSION_NTSC_1_0 value = var800a2380[device].unk2c8; +#else + value = 0; +#endif rand = (random() % 496) + 16; // range 16-511 count = osGetCount(); @@ -368,10 +372,18 @@ s32 func0f116e84(s8 device, u16 company_code, u32 game_code, char *game_name, ch s32 result; if (func0f116b5c(device)) { +#if VERSION >= VERSION_NTSC_1_0 func000150e8(); +#else + func000150e8(123, "pak.c"); +#endif result = func0f117e00(device == SAVEDEVICE_GAMEPAK ? NULL : &var800a3180[device], company_code, game_code, game_name, ext_name); +#if VERSION >= VERSION_NTSC_1_0 func00015144(); +#else + func00015144(123, "pak.c"); +#endif if (func0f11c39c(result, device, 1, VERSION >= VERSION_NTSC_FINAL ? 825 : 822)) { var800a2380[device].unk2b8_02 = 1; @@ -768,9 +780,17 @@ void pakDumpEeprom(void) { u8 buffer[2048]; +#if VERSION >= VERSION_NTSC_1_0 func000150e8(); +#else + func000150e8(123, "pak.c"); +#endif osEepromLongRead(&var80099e78, 0, buffer, 2048); +#if VERSION >= VERSION_NTSC_1_0 func00015144(); +#else + func00015144(123, "pak.c"); +#endif pakDumpBuffer(buffer, 2048, "EEPROM DUMP"); } @@ -1009,9 +1029,17 @@ s32 func0f117c0c(s32 arg0, s32 *arg1, s32 *arg2) if (arg0) { s32 result; +#if VERSION >= VERSION_NTSC_1_0 func000150e8(); +#else + func000150e8(123, "pak.c"); +#endif result = func000508d0(arg0, arg1, arg2); +#if VERSION >= VERSION_NTSC_1_0 func00015144(); +#else + func00015144(123, "pak.c"); +#endif return result; } @@ -1031,9 +1059,17 @@ s32 func0f117c80(struct var800a3180 *arg0, s32 *arg1) if (arg0) { s32 result; +#if VERSION >= VERSION_NTSC_1_0 func000150e8(); +#else + func000150e8(123, "pak.c"); +#endif result = func0004ce60(arg0, arg1); +#if VERSION >= VERSION_NTSC_1_0 func00015144(); +#else + func00015144(123, "pak.c"); +#endif return result; } @@ -1052,9 +1088,17 @@ s32 func0f117ce4(s32 arg0, s32 arg1, OSPfsState *note) if (arg0) { s32 result; +#if VERSION >= VERSION_NTSC_1_0 func000150e8(); +#else + func000150e8(123, "pak.c"); +#endif result = func00050a00(arg0, arg1, note); +#if VERSION >= VERSION_NTSC_1_0 func00015144(); +#else + func00015144(123, "pak.c"); +#endif return result; } @@ -1145,9 +1189,17 @@ s32 func0f117ec0(struct var800a3180 *arg0, u16 company_code, u32 game_code, u8 * if (arg0) { s32 result; +#if VERSION >= VERSION_NTSC_1_0 func000150e8(); +#else + func000150e8(123, "pak.c"); +#endif result = func00006550(arg0, company_code, game_code, game_name, ext_name, numbytes); +#if VERSION >= VERSION_NTSC_1_0 func00015144(); +#else + func00015144(123, "pak.c"); +#endif return result; } @@ -4881,9 +4933,17 @@ s32 func0f11a504(s8 arg0, s32 arg1, s32 arg2, u8 operation, u32 address, u32 len s32 result; len = func0f1165f8(arg0, len); +#if VERSION >= VERSION_NTSC_1_0 func000150e8(); +#else + func000150e8(123, "pak.c"); +#endif result = func0f117b4c(arg1, arg2, operation, address, len, buffer); +#if VERSION >= VERSION_NTSC_1_0 func00015144(); +#else + func00015144(123, "pak.c"); +#endif return result; } @@ -7631,10 +7691,18 @@ void pakExecuteDebugOperations(void) if (g_PakDebugPakInit) { s32 device = g_PakDebugPakInit - 1; +#if VERSION >= VERSION_NTSC_1_0 func000150e8(); +#else + func000150e8(123, "pak.c"); +#endif func0f117b04(&var80099e78, (device == SAVEDEVICE_GAMEPAK ? NULL : &var800a3180[device]), device, 0); +#if VERSION >= VERSION_NTSC_1_0 func00015144(); +#else + func00015144(123, "pak.c"); +#endif g_PakDebugPakInit = false; } @@ -9964,9 +10032,17 @@ void pakProbeEeprom(void) { s32 type; +#if VERSION >= VERSION_NTSC_1_0 func000150e8(); +#else + func000150e8(123, "pak.c"); +#endif type = osEepromProbe(&var80099e78); +#if VERSION >= VERSION_NTSC_1_0 func00015144(); +#else + func00015144(123, "pak.c"); +#endif if (type == EEPROM_TYPE_16K) { g_PakHasEeprom = true; @@ -9985,9 +10061,17 @@ s32 pakReadEeprom(u8 address, u8 *buffer, u32 len) { s32 result; +#if VERSION >= VERSION_NTSC_1_0 func000150e8(); +#else + func000150e8(123, "pak.c"); +#endif result = osEepromLongRead(&var80099e78, address, buffer, len); +#if VERSION >= VERSION_NTSC_1_0 func00015144(); +#else + func00015144(123, "pak.c"); +#endif return result == 0 ? 0 : 0x81; } @@ -9996,9 +10080,17 @@ s32 pakWriteEeprom(u8 address, u8 *buffer, u32 len) { s32 result; +#if VERSION >= VERSION_NTSC_1_0 func000150e8(); +#else + func000150e8(123, "pak.c"); +#endif result = osEepromLongWrite(&var80099e78, address, buffer, len); +#if VERSION >= VERSION_NTSC_1_0 func00015144(); +#else + func00015144(123, "pak.c"); +#endif return result == 0 ? 0 : 0x82; } @@ -10181,7 +10273,11 @@ s32 func0f11e844(s8 device) return 0; } +#if VERSION >= VERSION_NTSC_1_0 func000150e8(); +#else + func000150e8(123, "pak.c"); +#endif value = func00050d60(device == SAVEDEVICE_GAMEPAK ? NULL : &var800a3180[device], sp38, &sp37); @@ -10230,7 +10326,11 @@ s32 func0f11e844(s8 device) } } +#if VERSION >= VERSION_NTSC_1_0 func00015144(); +#else + func00015144(123, "pak.c"); +#endif if (sp24) { return sp2c; diff --git a/src/include/lib/controller.h b/src/include/lib/controller.h index 55c7e984f..ea2281d45 100644 --- a/src/include/lib/controller.h +++ b/src/include/lib/controller.h @@ -38,8 +38,15 @@ s8 contGetStickY(s8 contpadnum); u16 contGetButtons(s8 contpadnum, u16 mask); u16 contGetButtonsPressedThisFrame(s8 contpadnum, u16 mask); s32 func000150c4(void); + +#if VERSION >= VERSION_NTSC_1_0 void func000150e8(void); void func00015144(void); +#else +void func000150e8(s32 line, char *file); +void func00015144(s32 line, char *file); +#endif + void func0001519c(void); void func000152d0(s8 playernum, s32 *arg1, s32 *arg2); void func000153c4(s8 arg0, s32 arg1); diff --git a/src/include/lib/init.h b/src/include/lib/init.h index bf71b3975..56ba29b2d 100644 --- a/src/include/lib/init.h +++ b/src/include/lib/init.h @@ -3,7 +3,7 @@ #include void init(void); -s32 osGetMemSize(void); +s32 initGetMemSize(void); void *allocateStack(s32 threadid, s32 size); void mainproc(void *arg); diff --git a/src/include/lib/lib_16110.h b/src/include/lib/lib_16110.h index 09578ddf8..6d8358041 100644 --- a/src/include/lib/lib_16110.h +++ b/src/include/lib/lib_16110.h @@ -38,9 +38,5 @@ u32 func00017614(void); u32 func00017a78(void); u32 func00017c2c(void); u32 func00017cbc(void); -u32 func00017ce0(void); -u32 func00017dc4(void); -bool func00017e30(s32 portalnum, struct coord *arg1, struct coord *arg2); -u32 func00018148(void); #endif diff --git a/src/include/lib/lib_17ce0.h b/src/include/lib/lib_17ce0.h new file mode 100644 index 000000000..56b09139e --- /dev/null +++ b/src/include/lib/lib_17ce0.h @@ -0,0 +1,12 @@ +#ifndef _IN_LIB_LIB_17CE0_H +#define _IN_LIB_LIB_17CE0_H +#include +#include "data.h" +#include "types.h" + +u32 func00017ce0(void); +u32 func00017dc4(void); +bool func00017e30(s32 portalnum, struct coord *arg1, struct coord *arg2); +u32 func00018148(void); + +#endif diff --git a/src/include/lib/lib_513b0.h b/src/include/lib/lib_513b0.h index 344744d18..ae8d72389 100644 --- a/src/include/lib/lib_513b0.h +++ b/src/include/lib/lib_513b0.h @@ -5,6 +5,5 @@ #include "types.h" s32 func000513b0(struct var800a3180 *arg0, bool arg1, u16 arg2, char *arg3, u16 arg4); -u32 func00051778(void); #endif diff --git a/src/include/lib/lib_51570.h b/src/include/lib/lib_51570.h new file mode 100644 index 000000000..b4376c5e3 --- /dev/null +++ b/src/include/lib/lib_51570.h @@ -0,0 +1,9 @@ +#ifndef _IN_LIB_LIB_51570_H +#define _IN_LIB_LIB_51570_H +#include +#include "data.h" +#include "types.h" + +u32 func00051778(void); + +#endif diff --git a/src/include/types.h b/src/include/types.h index e5566569d..8cb1db8d3 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -5121,7 +5121,9 @@ struct var800a2380 { /*0x2be*/ u8 unk2be; /*0x2c0*/ void *unk2c0; // pointer to something with len 0x708 /*0x2c4*/ u8 *unk2c4; // len 4096 +#if VERSION >= VERSION_NTSC_1_0 /*0x2c8*/ u32 unk2c8; +#endif }; struct gecreditsdata { diff --git a/src/lib/controller.c b/src/lib/controller.c index c612b90bb..c5d97b48d 100644 --- a/src/lib/controller.c +++ b/src/lib/controller.c @@ -95,6 +95,7 @@ u32 var8005eee8 = 0; u32 var8005eeec = 0; u32 var8005eef0 = 1; +#if VERSION >= VERSION_NTSC_1_0 void func00013900(void) { if (var8005eef0) { @@ -115,22 +116,51 @@ void func00013974(u32 value) { var8005eeec = value; } +#endif +#if VERSION >= VERSION_NTSC_1_0 u32 func00013980(void) { return var8005eeec; } +#endif +#if VERSION >= VERSION_NTSC_1_0 void func0001398c(s32 value) { var8005eee4 = var8005eee0 = value * 11000; } +#else +GLOBAL_ASM( +glabel func0001398c +/* 14a70: 3c018006 */ lui $at,0x8006 +/* 14a74: 03e00008 */ jr $ra +/* 14a78: ac2412bc */ sw $a0,0x12bc($at) +); +#endif void func000139c8(void) { +#if VERSION >= VERSION_NTSC_1_0 func0001398c(10); +#else + func0001398c(30); +#endif } +#if VERSION == VERSION_NTSC_BETA +// Same function as the one a couple above, just relocated +u32 func00013980(void) +{ +#if VERSION >= VERSION_NTSC_1_0 + return var8005eeec; +#else + return *(u8 *)&var8005eeec; +#endif +} +#endif + +#if VERSION >= VERSION_NTSC_1_0 /** * Remove an item from the beginning of the g_ContPfsStates array, * shift the rest of the array back and return the removed item. @@ -154,7 +184,9 @@ s32 contShiftPfsStates(void) return pfsstate; } +#endif +#if VERSION >= VERSION_NTSC_1_0 void contRecordPfsState(u8 pfsstate) { if (g_ContNextPfsStateIndex + 1 >= 100) { @@ -166,7 +198,9 @@ void contRecordPfsState(u8 pfsstate) g_ContNextPfsStateIndex++; } } +#endif +#if VERSION >= VERSION_NTSC_1_0 /** * Scan controllers for controller paks, but only under certain conditions. * Seems to be timer based, or can be forced by passing 2 as arg0. @@ -227,7 +261,9 @@ void contCheckPfs(s32 arg0) } #endif } +#endif +#if VERSION >= VERSION_NTSC_1_0 /** * "Temporarily" because the next time contCheckPfs runs, the true state will be * recorded. @@ -241,6 +277,23 @@ void contSetPfsTemporarilyPlugged(s8 index) contRecordPfsState(bitpattern); } +#else +GLOBAL_ASM( +glabel contSetPfsTemporarilyPlugged +/* 14aa8: 3c028006 */ lui $v0,0x8006 +/* 14aac: 244212c4 */ addiu $v0,$v0,0x12c4 +/* 14ab0: 00047600 */ sll $t6,$a0,0x18 +/* 14ab4: 90580000 */ lbu $t8,0x0($v0) +/* 14ab8: 000e7e03 */ sra $t7,$t6,0x18 +/* 14abc: 24190001 */ addiu $t9,$zero,0x1 +/* 14ac0: 01f94004 */ sllv $t0,$t9,$t7 +/* 14ac4: 01004827 */ nor $t1,$t0,$zero +/* 14ac8: 03095024 */ and $t2,$t8,$t1 +/* 14acc: afa40000 */ sw $a0,0x0($sp) +/* 14ad0: 03e00008 */ jr $ra +/* 14ad4: a04a0000 */ sb $t2,0x0($v0) +); +#endif void contSystemInit(void) { @@ -383,6 +436,26 @@ u32 contGetConnectedControllers(void) return g_ConnectedControllers; } +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func00014e9cnb +/* 14e9c: 3c018006 */ lui $at,0x8006 +/* 14ea0: ac2412b4 */ sw $a0,0x12b4($at) +/* 14ea4: 3c01800a */ lui $at,0x800a +/* 14ea8: 03e00008 */ jr $ra +/* 14eac: ac25e5c4 */ sw $a1,-0x1a3c($at) +); +#endif + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func00014eb0nb +/* 14eb0: 3c018006 */ lui $at,0x8006 +/* 14eb4: 03e00008 */ jr $ra +/* 14eb8: ac2412b8 */ sw $a0,0x12b8($at) +); +#endif + void contConsumeSamples(struct contdata *contdata) { s8 i; @@ -427,6 +500,48 @@ void contConsumeSamples(struct contdata *contdata) } } +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func0001509cnb +/* 1509c: 3c0e8006 */ lui $t6,0x8006 +/* 150a0: 8dce12d4 */ lw $t6,0x12d4($t6) +/* 150a4: 27bdffe8 */ addiu $sp,$sp,-24 +/* 150a8: afbf0014 */ sw $ra,0x14($sp) +/* 150ac: 15c00019 */ bnez $t6,.NB00015114 +/* 150b0: 3c028006 */ lui $v0,0x8006 +/* 150b4: 240f0001 */ addiu $t7,$zero,0x1 +/* 150b8: 3c018006 */ lui $at,0x8006 +/* 150bc: 244212c0 */ addiu $v0,$v0,0x12c0 +/* 150c0: ac2f12d4 */ sw $t7,0x12d4($at) +/* 150c4: 3c188006 */ lui $t8,0x8006 +/* 150c8: 8f1812bc */ lw $t8,0x12bc($t8) +/* 150cc: 8c590000 */ lw $t9,0x0($v0) +/* 150d0: 0319082a */ slt $at,$t8,$t9 +/* 150d4: 1020000d */ beqz $at,.NB0001510c +/* 150d8: 00000000 */ sll $zero,$zero,0x0 +/* 150dc: 0c005332 */ jal 0x14cc8 +/* 150e0: ac400000 */ sw $zero,0x0($v0) +/* 150e4: 3c04800a */ lui $a0,0x800a +/* 150e8: 3c058006 */ lui $a1,0x8006 +/* 150ec: 24a512c4 */ addiu $a1,$a1,0x12c4 +/* 150f0: 0c014228 */ jal 0x508a0 +/* 150f4: 2484e5d8 */ addiu $a0,$a0,-6696 +/* 150f8: 3c028006 */ lui $v0,0x8006 +/* 150fc: 244212c4 */ addiu $v0,$v0,0x12c4 +/* 15100: 90480000 */ lbu $t0,0x0($v0) +/* 15104: 35090010 */ ori $t1,$t0,0x10 +/* 15108: a0490000 */ sb $t1,0x0($v0) +.NB0001510c: +/* 1510c: 3c018006 */ lui $at,0x8006 +/* 15110: ac2012d4 */ sw $zero,0x12d4($at) +.NB00015114: +/* 15114: 8fbf0014 */ lw $ra,0x14($sp) +/* 15118: 27bd0018 */ addiu $sp,$sp,0x18 +/* 1511c: 03e00008 */ jr $ra +/* 15120: 00000000 */ sll $zero,$zero,0x0 +); +#endif + /** * The use of the static variable suggests that the function is able to be * called recursively, but its behaviour should not be run when recursing. @@ -459,9 +574,11 @@ void contDebugJoy(void) { func0000db30("debugjoy", &var8005ef08); +#if VERSION >= VERSION_NTSC_1_0 if (g_Vars.paksconnected) { contCheckPfs(1); } +#endif if (var8005eec4) { g_ContData[1].nextlast = var8005eec4(g_ContData[1].samples, g_ContData[1].curlast); @@ -475,24 +592,33 @@ void contDebugJoy(void) } if (func000150c4() && var8005eec0 && contGetNumSamples() <= 0) { - func000150e8(); - #if VERSION >= VERSION_NTSC_FINAL + func000150e8(); func00014238(); func00015144(); contConsumeSamples(&g_ContData[0]); +#elif VERSION >= VERSION_NTSC_1_0 + func000150e8(); + func00015144(); + contConsumeSamples(&g_ContData[0]); + func00014238(); #else - func00015144(); - contConsumeSamples(&g_ContData[0]); + func000150e8(500, "joy.c"); func00014238(); + func0001509cnb(); + func00015144(507, "joy.c"); + contConsumeSamples(&g_ContData[0]); #endif } } +#if VERSION >= VERSION_NTSC_1_0 const char var700540b4[] = "JOY : g_EnableCyclicPolling=%d"; const char var700540d4[] = "JOY : g_JoyReCheckInterval=%d"; const char var700540f4[] = "JOY : g_JoyReCheckEventIn=%d"; const char var70054114[] = "JOY : g_JoyRecheckDone=%d"; +#endif + const char var70054130[] = "osContStartReadData -> Failed - CONT_NO_RESPONSE_ERROR\n"; const char var70054168[] = "osContStartReadData -> Failed - CONT_OVERRUN_ERROR\n"; const char var7005419c[] = "joyTickRetrace:joy%derrno%d->%d\n"; @@ -519,6 +645,7 @@ void contReadData(void) g_ContData[0].nextsecondlast = (g_ContData[0].nextlast + 19) % 20; } +#if VERSION >= VERSION_NTSC_1_0 void contPoll(void) { OSMesg msg; @@ -607,6 +734,256 @@ void contPoll(void) } } } +#else +GLOBAL_ASM( +glabel contPoll +/* 1536c: 3c028006 */ lui $v0,0x8006 +/* 15370: 244212c0 */ addiu $v0,$v0,0x12c0 +/* 15374: 8c4e0000 */ lw $t6,0x0($v0) +/* 15378: 27bdffc8 */ addiu $sp,$sp,-56 +/* 1537c: afbf0014 */ sw $ra,0x14($sp) +/* 15380: 3c04800a */ lui $a0,0x800a +/* 15384: 25cf0001 */ addiu $t7,$t6,0x1 +/* 15388: ac4f0000 */ sw $t7,0x0($v0) +/* 1538c: 2484e620 */ addiu $a0,$a0,-6624 +/* 15390: 27a50034 */ addiu $a1,$sp,0x34 +/* 15394: 0c0126b0 */ jal 0x49ac0 +/* 15398: 00003025 */ or $a2,$zero,$zero +/* 1539c: 14400045 */ bnez $v0,.NB000154b4 +/* 153a0: 3c188006 */ lui $t8,0x8006 +/* 153a4: 8f181254 */ lw $t8,0x1254($t8) +/* 153a8: 3c04800a */ lui $a0,0x800a +/* 153ac: 2484e5d8 */ addiu $a0,$a0,-6696 +/* 153b0: 13000035 */ beqz $t8,.NB00015488 +/* 153b4: 27a50034 */ addiu $a1,$sp,0x34 +/* 153b8: 0c0126b0 */ jal 0x49ac0 +/* 153bc: 24060001 */ addiu $a2,$zero,0x1 +/* 153c0: 3c018006 */ lui $at,0x8006 +/* 153c4: 0c0054bc */ jal 0x152f0 +/* 153c8: ac201254 */ sw $zero,0x1254($at) +/* 153cc: 3c19800a */ lui $t9,0x800a +/* 153d0: 8f39e3a8 */ lw $t9,-0x1c58($t9) +/* 153d4: 3c09800a */ lui $t1,0x800a +/* 153d8: 2529e1c0 */ addiu $t1,$t1,-7744 +/* 153dc: 00194080 */ sll $t0,$t9,0x2 +/* 153e0: 01194023 */ subu $t0,$t0,$t9 +/* 153e4: 000840c0 */ sll $t0,$t0,0x3 +/* 153e8: 3c04800a */ lui $a0,0x800a +/* 153ec: 2484e1c0 */ addiu $a0,$a0,-7744 +/* 153f0: 01093821 */ addu $a3,$t0,$t1 +/* 153f4: 00002825 */ or $a1,$zero,$zero +/* 153f8: 24060006 */ addiu $a2,$zero,0x6 +.NB000153fc: +/* 153fc: 00a60019 */ multu $a1,$a2 +/* 15400: 00001012 */ mflo $v0 +/* 15404: 00e25021 */ addu $t2,$a3,$v0 +/* 15408: 91430004 */ lbu $v1,0x4($t2) +/* 1540c: 1460000a */ bnez $v1,.NB00015438 +/* 15410: 00000000 */ sll $zero,$zero,0x0 +/* 15414: 8c8b01ec */ lw $t3,0x1ec($a0) +/* 15418: 000b6080 */ sll $t4,$t3,0x2 +/* 1541c: 018b6023 */ subu $t4,$t4,$t3 +/* 15420: 000c60c0 */ sll $t4,$t4,0x3 +/* 15424: 008c6821 */ addu $t5,$a0,$t4 +/* 15428: 01a27021 */ addu $t6,$t5,$v0 +/* 1542c: 91cf0004 */ lbu $t7,0x4($t6) +/* 15430: 15e0000c */ bnez $t7,.NB00015464 +/* 15434: 00000000 */ sll $zero,$zero,0x0 +.NB00015438: +/* 15438: 1060000e */ beqz $v1,.NB00015474 +/* 1543c: 24a50001 */ addiu $a1,$a1,0x1 +/* 15440: 8c9801ec */ lw $t8,0x1ec($a0) +/* 15444: 0018c880 */ sll $t9,$t8,0x2 +/* 15448: 0338c823 */ subu $t9,$t9,$t8 +/* 1544c: 0019c8c0 */ sll $t9,$t9,0x3 +/* 15450: 00994021 */ addu $t0,$a0,$t9 +/* 15454: 01024821 */ addu $t1,$t0,$v0 +/* 15458: 912a0004 */ lbu $t2,0x4($t1) +/* 1545c: 55400006 */ bnezl $t2,.NB00015478 +/* 15460: 00055e00 */ sll $t3,$a1,0x18 +.NB00015464: +/* 15464: 0c005332 */ jal 0x14cc8 +/* 15468: 00000000 */ sll $zero,$zero,0x0 +/* 1546c: 10000006 */ beqz $zero,.NB00015488 +/* 15470: 00000000 */ sll $zero,$zero,0x0 +.NB00015474: +/* 15474: 00055e00 */ sll $t3,$a1,0x18 +.NB00015478: +/* 15478: 000b2e03 */ sra $a1,$t3,0x18 +/* 1547c: 28a10004 */ slti $at,$a1,0x4 +/* 15480: 1420ffde */ bnez $at,.NB000153fc +/* 15484: 00000000 */ sll $zero,$zero,0x0 +.NB00015488: +/* 15488: 3c04800a */ lui $a0,0x800a +/* 1548c: 2484e640 */ addiu $a0,$a0,-6592 +/* 15490: 27a50034 */ addiu $a1,$sp,0x34 +/* 15494: 0c01272c */ jal 0x49cb0 +/* 15498: 00003025 */ or $a2,$zero,$zero +/* 1549c: 3c038006 */ lui $v1,0x8006 +/* 154a0: 24631258 */ addiu $v1,$v1,0x1258 +/* 154a4: 8c6d0000 */ lw $t5,0x0($v1) +/* 154a8: 25ae0001 */ addiu $t6,$t5,0x1 +/* 154ac: 1000008c */ beqz $zero,.NB000156e0 +/* 154b0: ac6e0000 */ sw $t6,0x0($v1) +.NB000154b4: +/* 154b4: 3c04800a */ lui $a0,0x800a +/* 154b8: 2484e660 */ addiu $a0,$a0,-6560 +/* 154bc: 27a50034 */ addiu $a1,$sp,0x34 +/* 154c0: 0c0126b0 */ jal 0x49ac0 +/* 154c4: 00003025 */ or $a2,$zero,$zero +/* 154c8: 14400013 */ bnez $v0,.NB00015518 +/* 154cc: 3c038006 */ lui $v1,0x8006 +/* 154d0: 24631258 */ addiu $v1,$v1,0x1258 +/* 154d4: 8c6f0000 */ lw $t7,0x0($v1) +/* 154d8: 3c04800a */ lui $a0,0x800a +/* 154dc: 25f8ffff */ addiu $t8,$t7,-1 +/* 154e0: 17000006 */ bnez $t8,.NB000154fc +/* 154e4: ac780000 */ sw $t8,0x0($v1) +/* 154e8: 0c0054b4 */ jal 0x152d0 +/* 154ec: 2484e5d8 */ addiu $a0,$a0,-6696 +/* 154f0: 24080001 */ addiu $t0,$zero,0x1 +/* 154f4: 3c018006 */ lui $at,0x8006 +/* 154f8: ac281254 */ sw $t0,0x1254($at) +.NB000154fc: +/* 154fc: 3c04800a */ lui $a0,0x800a +/* 15500: 2484e680 */ addiu $a0,$a0,-6528 +/* 15504: 27a50034 */ addiu $a1,$sp,0x34 +/* 15508: 0c01272c */ jal 0x49cb0 +/* 1550c: 00003025 */ or $a2,$zero,$zero +/* 15510: 10000074 */ beqz $zero,.NB000156e4 +/* 15514: 8fbf0014 */ lw $ra,0x14($sp) +.NB00015518: +/* 15518: 3c038006 */ lui $v1,0x8006 +/* 1551c: 24631258 */ addiu $v1,$v1,0x1258 +/* 15520: 8c690000 */ lw $t1,0x0($v1) +/* 15524: 3c0a8006 */ lui $t2,0x8006 +/* 15528: 5520006e */ bnezl $t1,.NB000156e4 +/* 1552c: 8fbf0014 */ lw $ra,0x14($sp) +/* 15530: 8d4a12a4 */ lw $t2,0x12a4($t2) +/* 15534: 3c04800a */ lui $a0,0x800a +/* 15538: 2484e5d8 */ addiu $a0,$a0,-6696 +/* 1553c: 11400068 */ beqz $t2,.NB000156e0 +/* 15540: 27a50034 */ addiu $a1,$sp,0x34 +/* 15544: 0c0126b0 */ jal 0x49ac0 +/* 15548: 00003025 */ or $a2,$zero,$zero +/* 1554c: 14400064 */ bnez $v0,.NB000156e0 +/* 15550: 3c018006 */ lui $at,0x8006 +/* 15554: 0c0054bc */ jal 0x152f0 +/* 15558: ac201254 */ sw $zero,0x1254($at) +/* 1555c: 3c0b800a */ lui $t3,0x800a +/* 15560: 8d6be3a8 */ lw $t3,-0x1c58($t3) +/* 15564: 3c0d800a */ lui $t5,0x800a +/* 15568: 25ade1c0 */ addiu $t5,$t5,-7744 +/* 1556c: 000b6080 */ sll $t4,$t3,0x2 +/* 15570: 018b6023 */ subu $t4,$t4,$t3 +/* 15574: 000c60c0 */ sll $t4,$t4,0x3 +/* 15578: 3c04800a */ lui $a0,0x800a +/* 1557c: 2484e1c0 */ addiu $a0,$a0,-7744 +/* 15580: 018d3821 */ addu $a3,$t4,$t5 +/* 15584: 00002825 */ or $a1,$zero,$zero +/* 15588: 24060006 */ addiu $a2,$zero,0x6 +.NB0001558c: +/* 1558c: 00a60019 */ multu $a1,$a2 +/* 15590: 00001012 */ mflo $v0 +/* 15594: 00e27021 */ addu $t6,$a3,$v0 +/* 15598: 91c30004 */ lbu $v1,0x4($t6) +/* 1559c: 1460000a */ bnez $v1,.NB000155c8 +/* 155a0: 00000000 */ sll $zero,$zero,0x0 +/* 155a4: 8c8f01ec */ lw $t7,0x1ec($a0) +/* 155a8: 000fc080 */ sll $t8,$t7,0x2 +/* 155ac: 030fc023 */ subu $t8,$t8,$t7 +/* 155b0: 0018c0c0 */ sll $t8,$t8,0x3 +/* 155b4: 0098c821 */ addu $t9,$a0,$t8 +/* 155b8: 03224021 */ addu $t0,$t9,$v0 +/* 155bc: 91090004 */ lbu $t1,0x4($t0) +/* 155c0: 1520000c */ bnez $t1,.NB000155f4 +/* 155c4: 00000000 */ sll $zero,$zero,0x0 +.NB000155c8: +/* 155c8: 1060000e */ beqz $v1,.NB00015604 +/* 155cc: 24a50001 */ addiu $a1,$a1,0x1 +/* 155d0: 8c8a01ec */ lw $t2,0x1ec($a0) +/* 155d4: 000a5880 */ sll $t3,$t2,0x2 +/* 155d8: 016a5823 */ subu $t3,$t3,$t2 +/* 155dc: 000b58c0 */ sll $t3,$t3,0x3 +/* 155e0: 008b6021 */ addu $t4,$a0,$t3 +/* 155e4: 01826821 */ addu $t5,$t4,$v0 +/* 155e8: 91ae0004 */ lbu $t6,0x4($t5) +/* 155ec: 55c00006 */ bnezl $t6,.NB00015608 +/* 155f0: 00057e00 */ sll $t7,$a1,0x18 +.NB000155f4: +/* 155f4: 0c005332 */ jal 0x14cc8 +/* 155f8: 00000000 */ sll $zero,$zero,0x0 +/* 155fc: 10000006 */ beqz $zero,.NB00015618 +/* 15600: 00000000 */ sll $zero,$zero,0x0 +.NB00015604: +/* 15604: 00057e00 */ sll $t7,$a1,0x18 +.NB00015608: +/* 15608: 000f2e03 */ sra $a1,$t7,0x18 +/* 1560c: 28a10004 */ slti $at,$a1,0x4 +/* 15610: 1420ffde */ bnez $at,.NB0001558c +/* 15614: 00000000 */ sll $zero,$zero,0x0 +.NB00015618: +/* 15618: 0c005449 */ jal 0x15124 +/* 1561c: 00000000 */ sll $zero,$zero,0x0 +/* 15620: 0c005427 */ jal 0x1509c +/* 15624: 00000000 */ sll $zero,$zero,0x0 +/* 15628: 3c04800a */ lui $a0,0x800a +/* 1562c: 0c0054b4 */ jal 0x152d0 +/* 15630: 2484e5d8 */ addiu $a0,$a0,-6696 +/* 15634: 3c038006 */ lui $v1,0x8006 +/* 15638: 8c6312dc */ lw $v1,0x12dc($v1) +/* 1563c: 24190001 */ addiu $t9,$zero,0x1 +/* 15640: 3c018006 */ lui $at,0x8006 +/* 15644: ac391254 */ sw $t9,0x1254($at) +/* 15648: 3c018006 */ lui $at,0x8006 +/* 1564c: 24630001 */ addiu $v1,$v1,0x1 +/* 15650: ac2312dc */ sw $v1,0x12dc($at) +/* 15654: 2861003c */ slti $at,$v1,0x3c +/* 15658: 14200021 */ bnez $at,.NB000156e0 +/* 1565c: 3c038006 */ lui $v1,0x8006 +/* 15660: 3c048006 */ lui $a0,0x8006 +/* 15664: 3c058006 */ lui $a1,0x8006 +/* 15668: 3c028006 */ lui $v0,0x8006 +/* 1566c: 3c068006 */ lui $a2,0x8006 +/* 15670: 24c6129c */ addiu $a2,$a2,0x129c +/* 15674: 2442128c */ addiu $v0,$v0,0x128c +/* 15678: 24a5127c */ addiu $a1,$a1,0x127c +/* 1567c: 2484126c */ addiu $a0,$a0,0x126c +/* 15680: 2463125c */ addiu $v1,$v1,0x125c +.NB00015684: +/* 15684: 8c680000 */ lw $t0,0x0($v1) +/* 15688: 5500000b */ bnezl $t0,.NB000156b8 +/* 1568c: ac600000 */ sw $zero,0x0($v1) +/* 15690: 8c890000 */ lw $t1,0x0($a0) +/* 15694: 55200008 */ bnezl $t1,.NB000156b8 +/* 15698: ac600000 */ sw $zero,0x0($v1) +/* 1569c: 8caa0000 */ lw $t2,0x0($a1) +/* 156a0: 55400005 */ bnezl $t2,.NB000156b8 +/* 156a4: ac600000 */ sw $zero,0x0($v1) +/* 156a8: 8c4b0000 */ lw $t3,0x0($v0) +/* 156ac: 51600006 */ beqzl $t3,.NB000156c8 +/* 156b0: 24420004 */ addiu $v0,$v0,0x4 +/* 156b4: ac600000 */ sw $zero,0x0($v1) +.NB000156b8: +/* 156b8: ac800000 */ sw $zero,0x0($a0) +/* 156bc: aca00000 */ sw $zero,0x0($a1) +/* 156c0: ac400000 */ sw $zero,0x0($v0) +/* 156c4: 24420004 */ addiu $v0,$v0,0x4 +.NB000156c8: +/* 156c8: 24630004 */ addiu $v1,$v1,0x4 +/* 156cc: 24840004 */ addiu $a0,$a0,0x4 +/* 156d0: 1446ffec */ bne $v0,$a2,.NB00015684 +/* 156d4: 24a50004 */ addiu $a1,$a1,0x4 +/* 156d8: 3c018006 */ lui $at,0x8006 +/* 156dc: ac2012dc */ sw $zero,0x12dc($at) +.NB000156e0: +/* 156e0: 8fbf0014 */ lw $ra,0x14($sp) +.NB000156e4: +/* 156e4: 27bd0038 */ addiu $sp,$sp,0x38 +/* 156e8: 03e00008 */ jr $ra +/* 156ec: 00000000 */ sll $zero,$zero,0x0 +); +#endif void func00014810(bool value) { @@ -799,12 +1176,67 @@ u16 contGetButtonsPressedThisFrame(s8 contpadnum, u16 mask) return g_ContDataPtr->buttonspressed[contpadnum] & mask; } +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func00015fa4nb +/* 15fa4: 3c038006 */ lui $v1,0x8006 +/* 15fa8: 8c631250 */ lw $v1,0x1250($v1) +/* 15fac: afa40000 */ sw $a0,0x0($sp) +/* 15fb0: afa50004 */ sw $a1,0x4($sp) +/* 15fb4: 8c790200 */ lw $t9,0x200($v1) +/* 15fb8: 00047600 */ sll $t6,$a0,0x18 +/* 15fbc: 000e7e03 */ sra $t7,$t6,0x18 +/* 15fc0: 30b8ffff */ andi $t8,$a1,0xffff +/* 15fc4: 03002825 */ or $a1,$t8,$zero +/* 15fc8: 0721000f */ bgez $t9,.NB00016008 +/* 15fcc: 01e02025 */ or $a0,$t7,$zero +/* 15fd0: 3c088006 */ lui $t0,0x8006 +/* 15fd4: 9108129c */ lbu $t0,0x129c($t0) +/* 15fd8: 3c0c8006 */ lui $t4,0x8006 +/* 15fdc: 258c128c */ addiu $t4,$t4,0x128c +/* 15fe0: 01e84807 */ srav $t1,$t0,$t7 +/* 15fe4: 312a0001 */ andi $t2,$t1,0x1 +/* 15fe8: 15400007 */ bnez $t2,.NB00016008 +/* 15fec: 000f5880 */ sll $t3,$t7,0x2 +/* 15ff0: 016c1821 */ addu $v1,$t3,$t4 +/* 15ff4: 8c6d0000 */ lw $t5,0x0($v1) +/* 15ff8: 00001025 */ or $v0,$zero,$zero +/* 15ffc: 25ae0001 */ addiu $t6,$t5,0x1 +/* 16000: 03e00008 */ jr $ra +/* 16004: ac6e0000 */ sw $t6,0x0($v1) +.NB00016008: +/* 16008: 00047880 */ sll $t7,$a0,0x2 +/* 1600c: 3c18800a */ lui $t8,0x800a +/* 16010: 030fc021 */ addu $t8,$t8,$t7 +/* 16014: 8f18e5c8 */ lw $t8,-0x1a38($t8) +/* 16018: 5b000004 */ blezl $t8,.NB0001602c +/* 1601c: 0004c840 */ sll $t9,$a0,0x1 +/* 16020: 03e00008 */ jr $ra +/* 16024: 00001025 */ or $v0,$zero,$zero +/* 16028: 0004c840 */ sll $t9,$a0,0x1 +.NB0001602c: +/* 1602c: 00794021 */ addu $t0,$v1,$t9 +/* 16030: 950901f8 */ lhu $t1,0x1f8($t0) +/* 16034: 01251024 */ and $v0,$t1,$a1 +/* 16038: 304affff */ andi $t2,$v0,0xffff +/* 1603c: 01401025 */ or $v0,$t2,$zero +/* 16040: 03e00008 */ jr $ra +/* 16044: 00000000 */ sll $zero,$zero,0x0 +); +#endif + s32 func000150c4(void) { return var8005eebc ? false : true; } -void func000150e8(void) +void func000150e8( +#if VERSION >= VERSION_NTSC_1_0 + void +#else + s32 line, char *file +#endif + ) { OSMesg msg; @@ -816,7 +1248,13 @@ void func000150e8(void) var8005eebc++; } -void func00015144(void) +void func00015144( +#if VERSION >= VERSION_NTSC_1_0 + void +#else + s32 line, char *file +#endif + ) { OSMesg msg; @@ -828,6 +1266,35 @@ void func00015144(void) } } +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func00016130nb +/* 16130: 000471c0 */ sll $t6,$a0,0x7 +/* 16134: 01c47021 */ addu $t6,$t6,$a0 +/* 16138: 3c0f800a */ lui $t7,0x800a +/* 1613c: 25efe1c0 */ addiu $t7,$t7,-7744 +/* 16140: 000e7080 */ sll $t6,$t6,0x2 +/* 16144: 01cfc021 */ addu $t8,$t6,$t7 +/* 16148: 3c018006 */ lui $at,0x8006 +/* 1614c: 03e00008 */ jr $ra +/* 16150: ac381250 */ sw $t8,0x1250($at) +); + +GLOBAL_ASM( +glabel func00016154nb +/* 16154: 3c0e8006 */ lui $t6,0x8006 +/* 16158: 8dce1250 */ lw $t6,0x1250($t6) +/* 1615c: 3c0f800a */ lui $t7,0x800a +/* 16160: 25efe1c0 */ addiu $t7,$t7,-7744 +/* 16164: 24010204 */ addiu $at,$zero,0x204 +/* 16168: 01cf1023 */ subu $v0,$t6,$t7 +/* 1616c: 0041001a */ div $zero,$v0,$at +/* 16170: 00001012 */ mflo $v0 +/* 16174: 03e00008 */ jr $ra +/* 16178: 00000000 */ sll $zero,$zero,0x0 +); +#endif + void func0001519c(void) { s32 i; @@ -844,6 +1311,7 @@ void func0001519c(void) } } +#if VERSION >= VERSION_NTSC_1_0 void func000152d0(s8 playernum, s32 *arg1, s32 *arg2) { if (g_Vars.normmplayerisrunning) { @@ -861,7 +1329,9 @@ void func000152d0(s8 playernum, s32 *arg1, s32 *arg2) *arg2 = -1; } +#endif +#if VERSION >= VERSION_NTSC_1_0 void func000153c4(s8 arg0, s32 arg1) { u32 stack; @@ -894,6 +1364,151 @@ void func000153c4(s8 arg0, s32 arg1) // empty } } +#else +GLOBAL_ASM( +glabel func000153c4 +/* 162b0: 27bdffd8 */ addiu $sp,$sp,-40 +/* 162b4: 00047600 */ sll $t6,$a0,0x18 +/* 162b8: 000e7e03 */ sra $t7,$t6,0x18 +/* 162bc: 24010004 */ addiu $at,$zero,0x4 +/* 162c0: afbf0014 */ sw $ra,0x14($sp) +/* 162c4: afa40028 */ sw $a0,0x28($sp) +/* 162c8: 11e10073 */ beq $t7,$at,.NB00016498 +/* 162cc: afa5002c */ sw $a1,0x2c($sp) +/* 162d0: 3c06800a */ lui $a2,0x800a +/* 162d4: 00cf3021 */ addu $a2,$a2,$t7 +/* 162d8: 90c6eb9c */ lbu $a2,-0x1464($a2) +/* 162dc: 3c19800a */ lui $t9,0x800a +/* 162e0: 27396870 */ addiu $t9,$t9,0x6870 +/* 162e4: 0006c080 */ sll $t8,$a2,0x2 +/* 162e8: 0306c023 */ subu $t8,$t8,$a2 +/* 162ec: 0018c080 */ sll $t8,$t8,0x2 +/* 162f0: 0306c023 */ subu $t8,$t8,$a2 +/* 162f4: 0018c0c0 */ sll $t8,$t8,0x3 +/* 162f8: 0306c021 */ addu $t8,$t8,$a2 +/* 162fc: 0018c0c0 */ sll $t8,$t8,0x3 +/* 16300: 03194021 */ addu $t0,$t8,$t9 +/* 16304: afa8001c */ sw $t0,0x1c($sp) +/* 16308: 8d020000 */ lw $v0,0x0($t0) +/* 1630c: 24010002 */ addiu $at,$zero,0x2 +/* 16310: 10410061 */ beq $v0,$at,.NB00016498 +/* 16314: 24010003 */ addiu $at,$zero,0x3 +/* 16318: 50410060 */ beql $v0,$at,.NB0001649c +/* 1631c: 8fbf0014 */ lw $ra,0x14($sp) +/* 16320: 10a00006 */ beqz $a1,.NB0001633c +/* 16324: 2404041e */ addiu $a0,$zero,0x41e +/* 16328: 3c057005 */ lui $a1,0x7005 +/* 1632c: 24a55958 */ addiu $a1,$a1,0x5958 +/* 16330: 0c00581b */ jal 0x1606c +/* 16334: afa60024 */ sw $a2,0x24($sp) +/* 16338: 8fa60024 */ lw $a2,0x24($sp) +.NB0001633c: +/* 1633c: 24010004 */ addiu $at,$zero,0x4 +/* 16340: 14c10003 */ bne $a2,$at,.NB00016350 +/* 16344: 3c04800a */ lui $a0,0x800a +/* 16348: 10000009 */ beqz $zero,.NB00016370 +/* 1634c: 00003825 */ or $a3,$zero,$zero +.NB00016350: +/* 16350: 00065080 */ sll $t2,$a2,0x2 +/* 16354: 01465023 */ subu $t2,$t2,$a2 +/* 16358: 000a5080 */ sll $t2,$t2,0x2 +/* 1635c: 01465021 */ addu $t2,$t2,$a2 +/* 16360: 3c0b800a */ lui $t3,0x800a +/* 16364: 256b7658 */ addiu $t3,$t3,0x7658 +/* 16368: 000a50c0 */ sll $t2,$t2,0x3 +/* 1636c: 014b3821 */ addu $a3,$t2,$t3 +.NB00016370: +/* 16370: 2484e5d8 */ addiu $a0,$a0,-6696 +/* 16374: 00e02825 */ or $a1,$a3,$zero +/* 16378: 0c01440d */ jal 0x51034 +/* 1637c: afa60024 */ sw $a2,0x24($sp) +/* 16380: 14400032 */ bnez $v0,.NB0001644c +/* 16384: 8fa60024 */ lw $a2,0x24($sp) +/* 16388: 24010004 */ addiu $at,$zero,0x4 +/* 1638c: 14c10003 */ bne $a2,$at,.NB0001639c +/* 16390: 00002825 */ or $a1,$zero,$zero +/* 16394: 10000009 */ beqz $zero,.NB000163bc +/* 16398: 00003825 */ or $a3,$zero,$zero +.NB0001639c: +/* 1639c: 00066080 */ sll $t4,$a2,0x2 +/* 163a0: 01866023 */ subu $t4,$t4,$a2 +/* 163a4: 000c6080 */ sll $t4,$t4,0x2 +/* 163a8: 01866021 */ addu $t4,$t4,$a2 +/* 163ac: 3c0d800a */ lui $t5,0x800a +/* 163b0: 25ad7658 */ addiu $t5,$t5,0x7658 +/* 163b4: 000c60c0 */ sll $t4,$t4,0x3 +/* 163b8: 018d3821 */ addu $a3,$t4,$t5 +.NB000163bc: +/* 163bc: 00e02025 */ or $a0,$a3,$zero +/* 163c0: 0c014370 */ jal 0x50dc0 +/* 163c4: afa60024 */ sw $a2,0x24($sp) +/* 163c8: 8fa60024 */ lw $a2,0x24($sp) +/* 163cc: 24010004 */ addiu $at,$zero,0x4 +/* 163d0: 00002825 */ or $a1,$zero,$zero +/* 163d4: 14c10003 */ bne $a2,$at,.NB000163e4 +/* 163d8: 00067080 */ sll $t6,$a2,0x2 +/* 163dc: 10000008 */ beqz $zero,.NB00016400 +/* 163e0: 00003825 */ or $a3,$zero,$zero +.NB000163e4: +/* 163e4: 01c67023 */ subu $t6,$t6,$a2 +/* 163e8: 000e7080 */ sll $t6,$t6,0x2 +/* 163ec: 01c67021 */ addu $t6,$t6,$a2 +/* 163f0: 3c0f800a */ lui $t7,0x800a +/* 163f4: 25ef7658 */ addiu $t7,$t7,0x7658 +/* 163f8: 000e70c0 */ sll $t6,$t6,0x3 +/* 163fc: 01cf3821 */ addu $a3,$t6,$t7 +.NB00016400: +/* 16400: 00e02025 */ or $a0,$a3,$zero +/* 16404: 0c014370 */ jal 0x50dc0 +/* 16408: afa60024 */ sw $a2,0x24($sp) +/* 1640c: 8fa60024 */ lw $a2,0x24($sp) +/* 16410: 24010004 */ addiu $at,$zero,0x4 +/* 16414: 00002825 */ or $a1,$zero,$zero +/* 16418: 14c10003 */ bne $a2,$at,.NB00016428 +/* 1641c: 0006c080 */ sll $t8,$a2,0x2 +/* 16420: 10000008 */ beqz $zero,.NB00016444 +/* 16424: 00003825 */ or $a3,$zero,$zero +.NB00016428: +/* 16428: 0306c023 */ subu $t8,$t8,$a2 +/* 1642c: 0018c080 */ sll $t8,$t8,0x2 +/* 16430: 0306c021 */ addu $t8,$t8,$a2 +/* 16434: 3c19800a */ lui $t9,0x800a +/* 16438: 27397658 */ addiu $t9,$t9,0x7658 +/* 1643c: 0018c0c0 */ sll $t8,$t8,0x3 +/* 16440: 03193821 */ addu $a3,$t8,$t9 +.NB00016444: +/* 16444: 0c014370 */ jal 0x50dc0 +/* 16448: 00e02025 */ or $a0,$a3,$zero +.NB0001644c: +/* 1644c: 8fa8002c */ lw $t0,0x2c($sp) +/* 16450: 2404042a */ addiu $a0,$zero,0x42a +/* 16454: 3c057005 */ lui $a1,0x7005 +/* 16458: 51000004 */ beqzl $t0,.NB0001646c +/* 1645c: 8fa3001c */ lw $v1,0x1c($sp) +/* 16460: 0c005834 */ jal 0x160d0 +/* 16464: 24a55960 */ addiu $a1,$a1,0x5960 +/* 16468: 8fa3001c */ lw $v1,0x1c($sp) +.NB0001646c: +/* 1646c: 24010006 */ addiu $at,$zero,0x6 +/* 16470: 8c620004 */ lw $v0,0x4($v1) +/* 16474: 10410004 */ beq $v0,$at,.NB00016488 +/* 16478: 24010007 */ addiu $at,$zero,0x7 +/* 1647c: 10410002 */ beq $v0,$at,.NB00016488 +/* 16480: 24090005 */ addiu $t1,$zero,0x5 +/* 16484: ac690004 */ sw $t1,0x4($v1) +.NB00016488: +/* 16488: 3c01bf80 */ lui $at,0xbf80 +/* 1648c: 44812000 */ mtc1 $at,$f4 +/* 16490: 00000000 */ sll $zero,$zero,0x0 +/* 16494: e46402b4 */ swc1 $f4,0x2b4($v1) +.NB00016498: +/* 16498: 8fbf0014 */ lw $ra,0x14($sp) +.NB0001649c: +/* 1649c: 27bd0028 */ addiu $sp,$sp,0x28 +/* 164a0: 03e00008 */ jr $ra +/* 164a4: 00000000 */ sll $zero,$zero,0x0 +); +#endif s32 func000155b4(s8 index) { diff --git a/src/lib/dma.c b/src/lib/dma.c index 6e9bdabed..b8f1cc38c 100644 --- a/src/lib/dma.c +++ b/src/lib/dma.c @@ -58,6 +58,7 @@ void dmaInit(void) osCreateMesgQueue(&g_DmaMesgQueue, &var80094e08, 0x20); } +#if VERSION >= VERSION_NTSC_1_0 void dmaStart(void *memaddr, u32 romaddr, u32 len, bool priority) { u32 numiterations; @@ -97,7 +98,126 @@ void dmaStart(void *memaddr, u32 romaddr, u32 len, bool priority) osPiStartDma(&g_DmaIoMsgs[i], priority, 0, romaddr, memaddr, remainder, &g_DmaMesgQueue); } } +#else +GLOBAL_ASM( +glabel dmaStart +/* d728: 27bdffa8 */ addiu $sp,$sp,-88 +/* d72c: 3c010200 */ lui $at,0x200 +/* d730: afb40038 */ sw $s4,0x38($sp) +/* d734: afb30034 */ sw $s3,0x34($sp) +/* d738: afb00028 */ sw $s0,0x28($sp) +/* d73c: 00a1082b */ sltu $at,$a1,$at +/* d740: 00c08025 */ or $s0,$a2,$zero +/* d744: 00a09825 */ or $s3,$a1,$zero +/* d748: 0080a025 */ or $s4,$a0,$zero +/* d74c: afbf004c */ sw $ra,0x4c($sp) +/* d750: afbe0048 */ sw $s8,0x48($sp) +/* d754: afb70044 */ sw $s7,0x44($sp) +/* d758: afb60040 */ sw $s6,0x40($sp) +/* d75c: afb5003c */ sw $s5,0x3c($sp) +/* d760: afb20030 */ sw $s2,0x30($sp) +/* d764: afb1002c */ sw $s1,0x2c($sp) +/* d768: 14200006 */ bnez $at,.NB0000d784 +/* d76c: afa70064 */ sw $a3,0x64($sp) +/* d770: 3c047005 */ lui $a0,0x7005 +/* d774: 0c003074 */ jal 0xc1d0 +/* d778: 248442d0 */ addiu $a0,$a0,0x42d0 +/* d77c: 240e0045 */ addiu $t6,$zero,0x45 +/* d780: a00e0000 */ sb $t6,0x0($zero) +.NB0000d784: +/* d784: 3c178009 */ lui $s7,0x8009 +/* d788: 26f77a60 */ addiu $s7,$s7,0x7a60 +/* d78c: 8eef0000 */ lw $t7,0x0($s7) +/* d790: 51e00004 */ beqzl $t7,.NB0000d7a4 +/* d794: 3c010008 */ lui $at,0x8 +/* d798: 0c003634 */ jal 0xd8d0 +/* d79c: 00000000 */ sll $zero,$zero,0x0 +/* d7a0: 3c010008 */ lui $at,0x8 +.NB0000d7a4: +/* d7a4: 0201082b */ sltu $at,$s0,$at +/* d7a8: 10200005 */ beqz $at,.NB0000d7c0 +/* d7ac: 02802025 */ or $a0,$s4,$zero +/* d7b0: 32183fff */ andi $t8,$s0,0x3fff +/* d7b4: 0010f382 */ srl $s8,$s0,0xe +/* d7b8: 10000003 */ beqz $zero,.NB0000d7c8 +/* d7bc: afb80050 */ sw $t8,0x50($sp) +.NB0000d7c0: +/* d7c0: 0000f025 */ or $s8,$zero,$zero +/* d7c4: afb00050 */ sw $s0,0x50($sp) +.NB0000d7c8: +/* d7c8: 0c013e48 */ jal 0x4f920 +/* d7cc: 02002825 */ or $a1,$s0,$zero +/* d7d0: 13c0001b */ beqz $s8,.NB0000d840 +/* d7d4: 00009025 */ or $s2,$zero,$zero +/* d7d8: 3c108009 */ lui $s0,0x8009 +/* d7dc: 3c118009 */ lui $s1,0x8009 +/* d7e0: 3c168009 */ lui $s6,0x8009 +/* d7e4: 26d67e08 */ addiu $s6,$s6,0x7e08 +/* d7e8: 26317a68 */ addiu $s1,$s1,0x7a68 +/* d7ec: 26107d68 */ addiu $s0,$s0,0x7d68 +/* d7f0: 24150001 */ addiu $s5,$zero,0x1 +.NB0000d7f4: +/* d7f4: a2150000 */ sb $s5,0x0($s0) +/* d7f8: 8ee20000 */ lw $v0,0x0($s7) +/* d7fc: 24084000 */ addiu $t0,$zero,0x4000 +/* d800: afa80014 */ sw $t0,0x14($sp) +/* d804: 24590001 */ addiu $t9,$v0,0x1 +/* d808: aef90000 */ sw $t9,0x0($s7) +/* d80c: 02202025 */ or $a0,$s1,$zero +/* d810: 8fa50064 */ lw $a1,0x64($sp) +/* d814: 00003025 */ or $a2,$zero,$zero +/* d818: 02603825 */ or $a3,$s3,$zero +/* d81c: afb40010 */ sw $s4,0x10($sp) +/* d820: 0c013e74 */ jal 0x4f9d0 +/* d824: afb60018 */ sw $s6,0x18($sp) +/* d828: 26520001 */ addiu $s2,$s2,0x1 +/* d82c: 26100001 */ addiu $s0,$s0,0x1 +/* d830: 26310018 */ addiu $s1,$s1,0x18 +/* d834: 26734000 */ addiu $s3,$s3,0x4000 +/* d838: 165effee */ bne $s2,$s8,.NB0000d7f4 +/* d83c: 26944000 */ addiu $s4,$s4,0x4000 +.NB0000d840: +/* d840: 8fa30050 */ lw $v1,0x50($sp) +/* d844: 3c168009 */ lui $s6,0x8009 +/* d848: 26d67e08 */ addiu $s6,$s6,0x7e08 +/* d84c: 10600014 */ beqz $v1,.NB0000d8a0 +/* d850: 24150001 */ addiu $s5,$zero,0x1 +/* d854: 3c018009 */ lui $at,0x8009 +/* d858: 00320821 */ addu $at,$at,$s2 +/* d85c: a0357d68 */ sb $s5,0x7d68($at) +/* d860: 8ee20000 */ lw $v0,0x0($s7) +/* d864: 00125080 */ sll $t2,$s2,0x2 +/* d868: 01525023 */ subu $t2,$t2,$s2 +/* d86c: 3c0b8009 */ lui $t3,0x8009 +/* d870: 256b7a68 */ addiu $t3,$t3,0x7a68 +/* d874: 000a50c0 */ sll $t2,$t2,0x3 +/* d878: 24490001 */ addiu $t1,$v0,0x1 +/* d87c: aee90000 */ sw $t1,0x0($s7) +/* d880: 014b2021 */ addu $a0,$t2,$t3 +/* d884: 8fa50064 */ lw $a1,0x64($sp) +/* d888: 00003025 */ or $a2,$zero,$zero +/* d88c: 02603825 */ or $a3,$s3,$zero +/* d890: afb40010 */ sw $s4,0x10($sp) +/* d894: afa30014 */ sw $v1,0x14($sp) +/* d898: 0c013e74 */ jal 0x4f9d0 +/* d89c: afb60018 */ sw $s6,0x18($sp) +.NB0000d8a0: +/* d8a0: 8fbf004c */ lw $ra,0x4c($sp) +/* d8a4: 8fb00028 */ lw $s0,0x28($sp) +/* d8a8: 8fb1002c */ lw $s1,0x2c($sp) +/* d8ac: 8fb20030 */ lw $s2,0x30($sp) +/* d8b0: 8fb30034 */ lw $s3,0x34($sp) +/* d8b4: 8fb40038 */ lw $s4,0x38($sp) +/* d8b8: 8fb5003c */ lw $s5,0x3c($sp) +/* d8bc: 8fb60040 */ lw $s6,0x40($sp) +/* d8c0: 8fb70044 */ lw $s7,0x44($sp) +/* d8c4: 8fbe0048 */ lw $s8,0x48($sp) +/* d8c8: 03e00008 */ jr $ra +/* d8cc: 27bd0058 */ addiu $sp,$sp,0x58 +); +#endif +#if VERSION >= VERSION_NTSC_1_0 u32 xorDeadbeef(u32 value) { return value ^ 0xdeadbeef; @@ -139,6 +259,7 @@ void dmaCheckPiracy(void *memaddr, u32 len) g_LoadType = LOADTYPE_NONE; } } +#endif void dmaWait(void) { @@ -164,14 +285,18 @@ void dmaExec(void *memaddr, void *romaddr, u32 len) { dmaStart(memaddr, (u32) romaddr, len, false); dmaWait(); +#if VERSION >= VERSION_NTSC_1_0 dmaCheckPiracy(memaddr, len); +#endif } void dmaExecHighPriority(void *memaddr, void *romaddr, u32 len) { dmaStart(memaddr, (u32) romaddr, len, true); dmaWait(); +#if VERSION >= VERSION_NTSC_1_0 dmaCheckPiracy(memaddr, len); +#endif } /** diff --git a/src/lib/entry.c b/src/lib/entry.c index 9eaae51db..7046312fe 100644 --- a/src/lib/entry.c +++ b/src/lib/entry.c @@ -924,6 +924,7 @@ glabel boot00001180 /* 1270: 01c94021 */ addu $t0,$t6,$t1 /* 1274: 00084300 */ sll $t0,$t0,0xc /* 1278: 02288821 */ addu $s1,$s1,$t0 +.L0000127c: /* 127c: 3c0a8009 */ lui $t2,0x8009 /* 1280: 254a30e8 */ addiu $t2,$t2,0x30e8 /* 1284: 8d480000 */ lw $t0,0x0($t2) @@ -1138,11 +1139,13 @@ glabel boot00001180 .L00001590: /* 1590: 03e00008 */ jr $ra /* 1594: 00000000 */ nop +.L00001598: /* 1598: 3c088009 */ lui $t0,0x8009 /* 159c: 250830ec */ addiu $t0,$t0,0x30ec /* 15a0: 8d090000 */ lw $t1,0x0($t0) /* 15a4: 25290001 */ addiu $t1,$t1,0x1 /* 15a8: ad090000 */ sw $t1,0x0($t0) +.L000015ac: /* 15ac: 3c148009 */ lui $s4,0x8009 /* 15b0: 8e94d454 */ lw $s4,-0x2bac($s4) /* 15b4: 3c1c8009 */ lui $gp,0x8009 @@ -1195,7 +1198,7 @@ glabel boot00001180 /* 1660: 0800049f */ j .L0000127c /* 1664: 00000000 */ nop .L00001668: -/* 1668: 08000f2a */ j .L00003ca8 +/* 1668: 08000f2a */ j 0x3ca8 /* 166c: 00000000 */ nop ); #endif diff --git a/src/lib/init.c b/src/lib/init.c index 76a3b7159..094806977 100644 --- a/src/lib/init.c +++ b/src/lib/init.c @@ -202,6 +202,11 @@ OSScClient var8008dca8; u32 var8008dcb0; u32 g_OsMemSize; +#if VERSION == VERSION_NTSC_BETA +u32 var8005e5ccnb = 1; +u32 var8005e5d0nb = 0x10000000; +#endif + u32 var8005ce00 = 0; u32 var8005ce04 = 0; u32 var8005ce08 = 0; @@ -225,7 +230,7 @@ extern u16 *var800902e4; extern s16 var800902e8; #if VERSION >= VERSION_NTSC_1_0 -s32 osGetMemSize(void) +s32 initGetMemSize(void) { return g_OsMemSize; } @@ -713,12 +718,20 @@ glabel allocateStack #endif #if VERSION == VERSION_NTSC_BETA -s32 osGetMemSize(void) +s32 initGetMemSize(void) { return g_OsMemSize; } #endif +#if VERSION == VERSION_NTSC_BETA +void func00001978(void) +{ + var8005e5ccnb = 1; + var8005e5d0nb = 0x10000000; +} +#endif + void idleproc(void *data) { while (true); diff --git a/src/lib/lib_04f60nb.c b/src/lib/lib_04f60nb.c new file mode 100644 index 000000000..5b36b7e47 --- /dev/null +++ b/src/lib/lib_04f60nb.c @@ -0,0 +1,13 @@ +#include +#include "lib/lib_16110.h" + +GLOBAL_ASM( +glabel func00004f60nb +/* 4f60: 27bdfff8 */ addiu $sp,$sp,-8 +/* 4f64: afa40008 */ sw $a0,0x8($sp) +/* 4f68: afa5000c */ sw $a1,0xc($sp) +/* 4f6c: afa60010 */ sw $a2,0x10($sp) +/* 4f70: afa70014 */ sw $a3,0x14($sp) +/* 4f74: 03e00008 */ jr $ra +/* 4f78: 27bd0008 */ addiu $sp,$sp,0x8 +); diff --git a/src/lib/lib_06550.c b/src/lib/lib_06550.c index 39c78087a..b68c6e55f 100644 --- a/src/lib/lib_06550.c +++ b/src/lib/lib_06550.c @@ -598,6 +598,7 @@ glabel func00006550 /* 6d5c: 27bd02d0 */ addiu $sp,$sp,0x2d0 ); +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func00006d60 /* 6d60: 27bdff90 */ addiu $sp,$sp,-112 @@ -755,6 +756,156 @@ glabel func00006d60 /* 6f90: 03e00008 */ jr $ra /* 6f94: 00000000 */ nop ); +#else +GLOBAL_ASM( +glabel func00006d60 +/* 6ea0: 27bdff90 */ addiu $sp,$sp,-112 +/* 6ea4: afbf001c */ sw $ra,0x1c($sp) +/* 6ea8: afb00018 */ sw $s0,0x18($sp) +/* 6eac: 00a08025 */ or $s0,$a1,$zero +/* 6eb0: afa40070 */ sw $a0,0x70($sp) +/* 6eb4: 0c013a80 */ jal 0x4ea00 +/* 6eb8: afa60078 */ sw $a2,0x78($sp) +/* 6ebc: 8fa40070 */ lw $a0,0x70($sp) +/* 6ec0: 0c013284 */ jal 0x4ca10 +/* 6ec4: 8fa50078 */ lw $a1,0x78($sp) +/* 6ec8: 0c013a91 */ jal 0x4ea44 +/* 6ecc: afa2006c */ sw $v0,0x6c($sp) +/* 6ed0: 8fa5006c */ lw $a1,0x6c($sp) +/* 6ed4: 8fae0070 */ lw $t6,0x70($sp) +/* 6ed8: 02002025 */ or $a0,$s0,$zero +/* 6edc: 50a00004 */ beqzl $a1,.NB00006ef0 +/* 6ee0: ae0e0004 */ sw $t6,0x4($s0) +/* 6ee4: 1000006e */ beqz $zero,.NB000070a0 +/* 6ee8: 00a01025 */ or $v0,$a1,$zero +/* 6eec: ae0e0004 */ sw $t6,0x4($s0) +.NB00006ef0: +/* 6ef0: 8faf0078 */ lw $t7,0x78($sp) +/* 6ef4: ae000000 */ sw $zero,0x0($s0) +/* 6ef8: 0c001c2d */ jal 0x70b4 +/* 6efc: ae0f0008 */ sw $t7,0x8($s0) +/* 6f00: 10400003 */ beqz $v0,.NB00006f10 +/* 6f04: 02002025 */ or $a0,$s0,$zero +/* 6f08: 10000066 */ beqz $zero,.NB000070a4 +/* 6f0c: 8fbf001c */ lw $ra,0x1c($sp) +.NB00006f10: +/* 6f10: 0c013828 */ jal 0x4e0a0 +/* 6f14: 00002825 */ or $a1,$zero,$zero +/* 6f18: 10400003 */ beqz $v0,.NB00006f28 +/* 6f1c: 24060001 */ addiu $a2,$zero,0x1 +/* 6f20: 10000060 */ beqz $zero,.NB000070a4 +/* 6f24: 8fbf001c */ lw $ra,0x1c($sp) +.NB00006f28: +/* 6f28: 8e040004 */ lw $a0,0x4($s0) +/* 6f2c: 8e050008 */ lw $a1,0x8($s0) +/* 6f30: 0c0131f8 */ jal 0x4c7e0 +/* 6f34: 27a70048 */ addiu $a3,$sp,0x48 +/* 6f38: 10400003 */ beqz $v0,.NB00006f48 +/* 6f3c: 27a40048 */ addiu $a0,$sp,0x48 +/* 6f40: 10000058 */ beqz $zero,.NB000070a4 +/* 6f44: 8fbf001c */ lw $ra,0x1c($sp) +.NB00006f48: +/* 6f48: 27a5006a */ addiu $a1,$sp,0x6a +/* 6f4c: 0c0134f1 */ jal 0x4d3c4 +/* 6f50: 27a60068 */ addiu $a2,$sp,0x68 +/* 6f54: 97b8006a */ lhu $t8,0x6a($sp) +/* 6f58: 97b90064 */ lhu $t9,0x64($sp) +/* 6f5c: 27a50048 */ addiu $a1,$sp,0x48 +/* 6f60: afa50044 */ sw $a1,0x44($sp) +/* 6f64: 17190004 */ bne $t8,$t9,.NB00006f78 +/* 6f68: 97a90068 */ lhu $t1,0x68($sp) +/* 6f6c: 97aa0066 */ lhu $t2,0x66($sp) +/* 6f70: 512a000a */ beql $t1,$t2,.NB00006f9c +/* 6f74: 97ad0060 */ lhu $t5,0x60($sp) +.NB00006f78: +/* 6f78: 0c013604 */ jal 0x4d810 +/* 6f7c: 02002025 */ or $a0,$s0,$zero +/* 6f80: 50400006 */ beqzl $v0,.NB00006f9c +/* 6f84: 97ad0060 */ lhu $t5,0x60($sp) +/* 6f88: 8e0b0000 */ lw $t3,0x0($s0) +/* 6f8c: 356c0004 */ ori $t4,$t3,0x4 +/* 6f90: 10000043 */ beqz $zero,.NB000070a0 +/* 6f94: ae0c0000 */ sw $t4,0x0($s0) +/* 6f98: 97ad0060 */ lhu $t5,0x60($sp) +.NB00006f9c: +/* 6f9c: 27a50048 */ addiu $a1,$sp,0x48 +/* 6fa0: 02002025 */ or $a0,$s0,$zero +/* 6fa4: 31ae0001 */ andi $t6,$t5,0x1 +/* 6fa8: 55c00016 */ bnezl $t6,.NB00007004 +/* 6fac: 8fa40044 */ lw $a0,0x44($sp) +/* 6fb0: 0c013530 */ jal 0x4d4c0 +/* 6fb4: 27a60020 */ addiu $a2,$sp,0x20 +/* 6fb8: 10400009 */ beqz $v0,.NB00006fe0 +/* 6fbc: 00402825 */ or $a1,$v0,$zero +/* 6fc0: 2401000a */ addiu $at,$zero,0xa +/* 6fc4: 14410004 */ bne $v0,$at,.NB00006fd8 +/* 6fc8: 00000000 */ sll $zero,$zero,0x0 +/* 6fcc: 8e0f0000 */ lw $t7,0x0($s0) +/* 6fd0: 35f80004 */ ori $t8,$t7,0x4 +/* 6fd4: ae180000 */ sw $t8,0x0($s0) +.NB00006fd8: +/* 6fd8: 10000031 */ beqz $zero,.NB000070a0 +/* 6fdc: 00a01025 */ or $v0,$a1,$zero +.NB00006fe0: +/* 6fe0: 97a90038 */ lhu $t1,0x38($sp) +/* 6fe4: 27b90020 */ addiu $t9,$sp,0x20 +/* 6fe8: afb90044 */ sw $t9,0x44($sp) +/* 6fec: 312a0001 */ andi $t2,$t1,0x1 +/* 6ff0: 55400004 */ bnezl $t2,.NB00007004 +/* 6ff4: 8fa40044 */ lw $a0,0x44($sp) +/* 6ff8: 10000029 */ beqz $zero,.NB000070a0 +/* 6ffc: 2402000b */ addiu $v0,$zero,0xb +/* 7000: 8fa40044 */ lw $a0,0x44($sp) +.NB00007004: +/* 7004: 2605000c */ addiu $a1,$s0,0xc +/* 7008: 0c01303c */ jal 0x4c0f0 +/* 700c: 24060020 */ addiu $a2,$zero,0x20 +/* 7010: 8fab0044 */ lw $t3,0x44($sp) +/* 7014: 24190010 */ addiu $t9,$zero,0x10 +/* 7018: 24090008 */ addiu $t1,$zero,0x8 +/* 701c: 916c001b */ lbu $t4,0x1b($t3) +/* 7020: 8e040004 */ lw $a0,0x4($s0) +/* 7024: 8e050008 */ lw $a1,0x8($s0) +/* 7028: ae0c004c */ sw $t4,0x4c($s0) +/* 702c: 8fad0044 */ lw $t5,0x44($sp) +/* 7030: 24060007 */ addiu $a2,$zero,0x7 +/* 7034: 2607002c */ addiu $a3,$s0,0x2c +/* 7038: 91ae001a */ lbu $t6,0x1a($t5) +/* 703c: ae190050 */ sw $t9,0x50($s0) +/* 7040: ae090054 */ sw $t1,0x54($s0) +/* 7044: 31c200ff */ andi $v0,$t6,0xff +/* 7048: 000218c0 */ sll $v1,$v0,0x3 +/* 704c: 00027840 */ sll $t7,$v0,0x1 +/* 7050: 24680008 */ addiu $t0,$v1,0x8 +/* 7054: 25f80003 */ addiu $t8,$t7,0x3 +/* 7058: 01035021 */ addu $t2,$t0,$v1 +/* 705c: ae180060 */ sw $t8,0x60($s0) +/* 7060: ae080058 */ sw $t0,0x58($s0) +/* 7064: ae0a005c */ sw $t2,0x5c($s0) +/* 7068: 0c0131f8 */ jal 0x4c7e0 +/* 706c: a20e0064 */ sb $t6,0x64($s0) +/* 7070: 10400003 */ beqz $v0,.NB00007080 +/* 7074: 00402825 */ or $a1,$v0,$zero +/* 7078: 1000000a */ beqz $zero,.NB000070a4 +/* 707c: 8fbf001c */ lw $ra,0x1c($sp) +.NB00007080: +/* 7080: 3c047005 */ lui $a0,0x7005 +/* 7084: 0c00c47d */ jal 0x311f4 +/* 7088: 24843ad0 */ addiu $a0,$a0,0x3ad0 +/* 708c: 0c013a9c */ jal 0x4ea70 +/* 7090: 02002025 */ or $a0,$s0,$zero +/* 7094: 8e0b0000 */ lw $t3,0x0($s0) +/* 7098: 356c0001 */ ori $t4,$t3,0x1 +/* 709c: ae0c0000 */ sw $t4,0x0($s0) +.NB000070a0: +/* 70a0: 8fbf001c */ lw $ra,0x1c($sp) +.NB000070a4: +/* 70a4: 8fb00018 */ lw $s0,0x18($sp) +/* 70a8: 27bd0070 */ addiu $sp,$sp,0x70 +/* 70ac: 03e00008 */ jr $ra +/* 70b0: 00000000 */ sll $zero,$zero,0x0 +); +#endif GLOBAL_ASM( glabel func00006f98 @@ -827,6 +978,7 @@ glabel func00006f98 /* 7080: 00000000 */ nop ); +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func00007084 /* 7084: 27bdffc8 */ addiu $sp,$sp,-56 @@ -848,3 +1000,10 @@ glabel func00007084 /* 70bc: 03e00008 */ jr $ra /* 70c0: 27bd0038 */ addiu $sp,$sp,0x38 ); +#else +GLOBAL_ASM( +glabel func00007084 +/* 71a0: 03e00008 */ jr $ra +/* 71a4: 00000000 */ sll $zero,$zero,0x0 +); +#endif diff --git a/src/lib/lib_070d0.c b/src/lib/lib_070d0.c index 62c9c4fe4..24d92ba8a 100644 --- a/src/lib/lib_070d0.c +++ b/src/lib/lib_070d0.c @@ -22,6 +22,7 @@ u32 var8005cf80 = 0; u32 var8005cf84 = 0; u32 var8005cf88 = 0; +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func000070d0 /* 70d0: 27bdeb58 */ addiu $sp,$sp,-5288 @@ -38,7 +39,7 @@ glabel func000070d0 /* 70fc: afb10020 */ sw $s1,0x20($sp) /* 7100: 0c00222c */ jal func000088b0 /* 7104: a030ae28 */ sb $s0,%lo(var8008ae28)($at) -/* 7108: 0c0005b0 */ jal osGetMemSize +/* 7108: 0c0005b0 */ jal initGetMemSize /* 710c: 00000000 */ nop /* 7110: 3c010040 */ lui $at,0x40 /* 7114: 34210001 */ ori $at,$at,0x1 @@ -301,3 +302,334 @@ glabel func000070d0 /* 74dc: 03e00008 */ jr $ra /* 74e0: 27bd14a8 */ addiu $sp,$sp,0x14a8 ); +#else +GLOBAL_ASM( +glabel func000070d0 +/* 71b0: 27bdea98 */ addiu $sp,$sp,-5480 +/* 71b4: afb00054 */ sw $s0,0x54($sp) +/* 71b8: 24100001 */ addiu $s0,$zero,0x1 +/* 71bc: afbf0074 */ sw $ra,0x74($sp) +/* 71c0: 3c018009 */ lui $at,0x8009 +/* 71c4: afb70070 */ sw $s7,0x70($sp) +/* 71c8: afb6006c */ sw $s6,0x6c($sp) +/* 71cc: afb50068 */ sw $s5,0x68($sp) +/* 71d0: afb40064 */ sw $s4,0x64($sp) +/* 71d4: afb30060 */ sw $s3,0x60($sp) +/* 71d8: afb2005c */ sw $s2,0x5c($sp) +/* 71dc: afb10058 */ sw $s1,0x58($sp) +/* 71e0: 0c002294 */ jal 0x8a50 +/* 71e4: a030d458 */ sb $s0,-0x2ba8($at) +/* 71e8: 0c013d4c */ jal 0x4f530 +/* 71ec: 00000000 */ sll $zero,$zero,0x0 +/* 71f0: 3c010040 */ lui $at,0x40 +/* 71f4: 34210001 */ ori $at,$at,0x1 +/* 71f8: 0041082b */ sltu $at,$v0,$at +/* 71fc: 10200074 */ beqz $at,.NB000073d0 +/* 7200: 3c077f1b */ lui $a3,0x7f1b +/* 7204: 3c077f1b */ lui $a3,0x7f1b +/* 7208: 3c087f00 */ lui $t0,0x7f00 +/* 720c: 25080000 */ addiu $t0,$t0,0x0 +/* 7210: 24e74000 */ addiu $a3,$a3,0x4000 +/* 7214: 3c018009 */ lui $at,0x8009 +/* 7218: 00e87023 */ subu $t6,$a3,$t0 +/* 721c: a03030e0 */ sb $s0,0x30e0($at) +/* 7220: 25cf0fff */ addiu $t7,$t6,0xfff +/* 7224: 3c178006 */ lui $s7,0x8006 +/* 7228: 26f7e720 */ addiu $s7,$s7,-6368 +/* 722c: 00e81023 */ subu $v0,$a3,$t0 +/* 7230: 3c09803f */ lui $t1,0x803f +/* 7234: 24420fff */ addiu $v0,$v0,0xfff +/* 7238: 352950c0 */ ori $t1,$t1,0x50c0 +/* 723c: 00026b02 */ srl $t5,$v0,0xc +/* 7240: 25ae0005 */ addiu $t6,$t5,0x5 +/* 7244: 25a60002 */ addiu $a2,$t5,0x2 +/* 7248: 3c148009 */ lui $s4,0x8009 +/* 724c: 3c130004 */ lui $s3,0x4 +/* 7250: 2694d460 */ addiu $s4,$s4,-11168 +/* 7254: 05e10003 */ bgez $t7,.NB00007264 +/* 7258: 000fc303 */ sra $t8,$t7,0xc +/* 725c: 25e10fff */ addiu $at,$t7,0xfff +/* 7260: 0001c303 */ sra $t8,$at,0xc +.NB00007264: +/* 7264: 3c017f00 */ lui $at,0x7f00 +/* 7268: 0018cb00 */ sll $t9,$t8,0xc +/* 726c: 03215821 */ addu $t3,$t9,$at +/* 7270: aef80000 */ sw $t8,0x0($s7) +/* 7274: 3c018009 */ lui $at,0x8009 +/* 7278: ac2b30f4 */ sw $t3,0x30f4($at) +/* 727c: 3c018009 */ lui $at,0x8009 +/* 7280: ac2930f8 */ sw $t1,0x30f8($at) +/* 7284: 001860c0 */ sll $t4,$t8,0x3 +/* 7288: 012ca823 */ subu $s5,$t1,$t4 +/* 728c: 3c018009 */ lui $at,0x8009 +/* 7290: ac35d454 */ sw $s5,-0x2bac($at) +/* 7294: 000e7880 */ sll $t7,$t6,0x2 +/* 7298: 00065880 */ sll $t3,$a2,0x2 +/* 729c: 02afc023 */ subu $t8,$s5,$t7 +/* 72a0: 2401fff0 */ addiu $at,$zero,-16 +/* 72a4: 2566000f */ addiu $a2,$t3,0xf +/* 72a8: 25b60001 */ addiu $s6,$t5,0x1 +/* 72ac: 03012024 */ and $a0,$t8,$at +/* 72b0: 34cc000f */ ori $t4,$a2,0xf +/* 72b4: 26733c40 */ addiu $s3,$s3,0x3c40 +/* 72b8: 02c09025 */ or $s2,$s6,$zero +/* 72bc: ae840000 */ sw $a0,0x0($s4) +/* 72c0: 02602825 */ or $a1,$s3,$zero +/* 72c4: 0c003664 */ jal 0xd990 +/* 72c8: 3986000f */ xori $a2,$t4,0xf +/* 72cc: 240afff0 */ addiu $t2,$zero,-16 +/* 72d0: 12c0000c */ beqz $s6,.NB00007304 +/* 72d4: 00008025 */ or $s0,$zero,$zero +/* 72d8: 00001825 */ or $v1,$zero,$zero +.NB000072dc: +/* 72dc: 8e8e0000 */ lw $t6,0x0($s4) +/* 72e0: 26100001 */ addiu $s0,$s0,0x1 +/* 72e4: 0212082b */ sltu $at,$s0,$s2 +/* 72e8: 01c31021 */ addu $v0,$t6,$v1 +/* 72ec: 8c4f0000 */ lw $t7,0x0($v0) +/* 72f0: 24630004 */ addiu $v1,$v1,0x4 +/* 72f4: 01f3c021 */ addu $t8,$t7,$s3 +/* 72f8: 1420fff8 */ bnez $at,.NB000072dc +/* 72fc: ac580000 */ sw $t8,0x0($v0) +/* 7300: 00008025 */ or $s0,$zero,$zero +.NB00007304: +/* 7304: 26d9ffff */ addiu $t9,$s6,-1 +/* 7308: 1320000e */ beqz $t9,.NB00007344 +/* 730c: 00008825 */ or $s1,$zero,$zero +/* 7310: 8e820000 */ lw $v0,0x0($s4) +/* 7314: 2644ffff */ addiu $a0,$s2,-1 +.NB00007318: +/* 7318: 8c4b0004 */ lw $t3,0x4($v0) +/* 731c: 8c4c0000 */ lw $t4,0x0($v0) +/* 7320: 26100001 */ addiu $s0,$s0,0x1 +/* 7324: 016c1823 */ subu $v1,$t3,$t4 +/* 7328: 0223082b */ sltu $at,$s1,$v1 +/* 732c: 50200003 */ beqzl $at,.NB0000733c +/* 7330: 0204082b */ sltu $at,$s0,$a0 +/* 7334: 00608825 */ or $s1,$v1,$zero +/* 7338: 0204082b */ sltu $at,$s0,$a0 +.NB0000733c: +/* 733c: 1420fff6 */ bnez $at,.NB00007318 +/* 7340: 24420004 */ addiu $v0,$v0,0x4 +.NB00007344: +/* 7344: 8e8d0000 */ lw $t5,0x0($s4) +/* 7348: 26310040 */ addiu $s1,$s1,0x40 +/* 734c: 022a8824 */ and $s1,$s1,$t2 +/* 7350: 3c01ffef */ lui $at,0xffef +/* 7354: 01b17023 */ subu $t6,$t5,$s1 +/* 7358: 01cac024 */ and $t8,$t6,$t2 +/* 735c: 34216000 */ ori $at,$at,0x6000 +/* 7360: 3c028009 */ lui $v0,0x8009 +/* 7364: 0301a821 */ addu $s5,$t8,$at +/* 7368: 2442d45c */ addiu $v0,$v0,-11172 +/* 736c: ac4e0000 */ sw $t6,0x0($v0) +/* 7370: 32b91fff */ andi $t9,$s5,0x1fff +/* 7374: ac580000 */ sw $t8,0x0($v0) +/* 7378: 02b9a823 */ subu $s5,$s5,$t9 +/* 737c: 3c018009 */ lui $at,0x8009 +/* 7380: ac35d450 */ sw $s5,-0x2bb0($at) +/* 7384: 3c018009 */ lui $at,0x8009 +/* 7388: 0c000429 */ jal 0x10a4 +/* 738c: ac3530f0 */ sw $s5,0x30f0($at) +/* 7390: 8ee30000 */ lw $v1,0x0($s7) +/* 7394: 3c048009 */ lui $a0,0x8009 +/* 7398: 8c84d454 */ lw $a0,-0x2bac($a0) +/* 739c: 000358c0 */ sll $t3,$v1,0x3 +/* 73a0: 000b1883 */ sra $v1,$t3,0x2 +/* 73a4: 18600006 */ blez $v1,.NB000073c0 +/* 73a8: 00008825 */ or $s1,$zero,$zero +/* 73ac: 00801025 */ or $v0,$a0,$zero +.NB000073b0: +/* 73b0: 26310001 */ addiu $s1,$s1,0x1 +/* 73b4: 24420004 */ addiu $v0,$v0,0x4 +/* 73b8: 1623fffd */ bne $s1,$v1,.NB000073b0 +/* 73bc: ac40fffc */ sw $zero,-0x4($v0) +.NB000073c0: +/* 73c0: 0c00044f */ jal 0x113c +/* 73c4: 00000000 */ sll $zero,$zero,0x0 +/* 73c8: 1000009b */ beqz $zero,.NB00007638 +/* 73cc: 00000000 */ sll $zero,$zero,0x0 +.NB000073d0: +/* 73d0: 3c087f00 */ lui $t0,0x7f00 +/* 73d4: 25080000 */ addiu $t0,$t0,0x0 +/* 73d8: 24e74000 */ addiu $a3,$a3,0x4000 +/* 73dc: 00e86823 */ subu $t5,$a3,$t0 +/* 73e0: 00e81023 */ subu $v0,$a3,$t0 +/* 73e4: 25ae003f */ addiu $t6,$t5,0x3f +/* 73e8: 24420fff */ addiu $v0,$v0,0xfff +/* 73ec: 3c09803f */ lui $t1,0x803f +/* 73f0: 3c018009 */ lui $at,0x8009 +/* 73f4: 35cf003f */ ori $t7,$t6,0x3f +/* 73f8: 00025b02 */ srl $t3,$v0,0xc +/* 73fc: 352950c0 */ ori $t1,$t1,0x50c0 +/* 7400: a02030e0 */ sb $zero,0x30e0($at) +/* 7404: 39f8003f */ xori $t8,$t7,0x3f +/* 7408: 01381823 */ subu $v1,$t1,$t8 +/* 740c: 3c01fffe */ lui $at,0xfffe +/* 7410: 256c0005 */ addiu $t4,$t3,0x5 +/* 7414: 25660002 */ addiu $a2,$t3,0x2 +/* 7418: 0061a824 */ and $s5,$v1,$at +/* 741c: 00067880 */ sll $t7,$a2,0x2 +/* 7420: 000c6880 */ sll $t5,$t4,0x2 +/* 7424: 240afff0 */ addiu $t2,$zero,-16 +/* 7428: 02ad7023 */ subu $t6,$s5,$t5 +/* 742c: 25e6000f */ addiu $a2,$t7,0xf +/* 7430: 3c130004 */ lui $s3,0x4 +/* 7434: 3c018009 */ lui $at,0x8009 +/* 7438: 25760001 */ addiu $s6,$t3,0x1 +/* 743c: 26733c40 */ addiu $s3,$s3,0x3c40 +/* 7440: 34d8000f */ ori $t8,$a2,0xf +/* 7444: 01cab824 */ and $s7,$t6,$t2 +/* 7448: afa9154c */ sw $t1,0x154c($sp) +/* 744c: ac3530f0 */ sw $s5,0x30f0($at) +/* 7450: 02c0a025 */ or $s4,$s6,$zero +/* 7454: 02e02025 */ or $a0,$s7,$zero +/* 7458: 3b06000f */ xori $a2,$t8,0xf +/* 745c: 02602825 */ or $a1,$s3,$zero +/* 7460: 0c003664 */ jal 0xd990 +/* 7464: afb5008c */ sw $s5,0x8c($sp) +/* 7468: 12c0000b */ beqz $s6,.NB00007498 +/* 746c: 00008825 */ or $s1,$zero,$zero +/* 7470: 00009025 */ or $s2,$zero,$zero +.NB00007474: +/* 7474: 02f21021 */ addu $v0,$s7,$s2 +/* 7478: 8c4b0000 */ lw $t3,0x0($v0) +/* 747c: 26310001 */ addiu $s1,$s1,0x1 +/* 7480: 0234082b */ sltu $at,$s1,$s4 +/* 7484: 01736021 */ addu $t4,$t3,$s3 +/* 7488: ac4c0000 */ sw $t4,0x0($v0) +/* 748c: 1420fff9 */ bnez $at,.NB00007474 +/* 7490: 26520004 */ addiu $s2,$s2,0x4 +/* 7494: 00008825 */ or $s1,$zero,$zero +.NB00007498: +/* 7498: 26cdffff */ addiu $t5,$s6,-1 +/* 749c: 11a00048 */ beqz $t5,.NB000075c0 +/* 74a0: 8fb3008c */ lw $s3,0x8c($sp) +/* 74a4: 26f0e000 */ addiu $s0,$s7,-8192 +/* 74a8: 260f0002 */ addiu $t7,$s0,0x2 +/* 74ac: 268effff */ addiu $t6,$s4,-1 +/* 74b0: afae0090 */ sw $t6,0x90($sp) +/* 74b4: afaf0080 */ sw $t7,0x80($sp) +/* 74b8: 00009025 */ or $s2,$zero,$zero +/* 74bc: 27b600a8 */ addiu $s6,$sp,0xa8 +.NB000074c0: +/* 74c0: 02f21021 */ addu $v0,$s7,$s2 +/* 74c4: 8c450000 */ lw $a1,0x0($v0) +/* 74c8: 8c580004 */ lw $t8,0x4($v0) +/* 74cc: 02002025 */ or $a0,$s0,$zero +/* 74d0: 03053023 */ subu $a2,$t8,$a1 +/* 74d4: 24c6000f */ addiu $a2,$a2,0xf +/* 74d8: 34d9000f */ ori $t9,$a2,0xf +/* 74dc: 0c003664 */ jal 0xd990 +/* 74e0: 3b26000f */ xori $a2,$t9,0xf +/* 74e4: 8fa40080 */ lw $a0,0x80($sp) +/* 74e8: 02602825 */ or $a1,$s3,$zero +/* 74ec: 0c001da4 */ jal 0x7690 +/* 74f0: 27a60128 */ addiu $a2,$sp,0x128 +/* 74f4: 1440002c */ bnez $v0,.NB000075a8 +/* 74f8: 0040a025 */ or $s4,$v0,$zero +/* 74fc: 920c0000 */ lbu $t4,0x0($s0) +/* 7500: 3c057005 */ lui $a1,0x7005 +/* 7504: 3c067005 */ lui $a2,0x7005 +/* 7508: afac0010 */ sw $t4,0x10($sp) +/* 750c: 920d0001 */ lbu $t5,0x1($s0) +/* 7510: 24c63b48 */ addiu $a2,$a2,0x3b48 +/* 7514: 24a53af0 */ addiu $a1,$a1,0x3af0 +/* 7518: afad0014 */ sw $t5,0x14($sp) +/* 751c: 920e0002 */ lbu $t6,0x2($s0) +/* 7520: 02c02025 */ or $a0,$s6,$zero +/* 7524: 2407012a */ addiu $a3,$zero,0x12a +/* 7528: afae0018 */ sw $t6,0x18($sp) +/* 752c: 920f0003 */ lbu $t7,0x3($s0) +/* 7530: afaf001c */ sw $t7,0x1c($sp) +/* 7534: 92180004 */ lbu $t8,0x4($s0) +/* 7538: afb80020 */ sw $t8,0x20($sp) +/* 753c: 92190005 */ lbu $t9,0x5($s0) +/* 7540: afb90024 */ sw $t9,0x24($sp) +/* 7544: 920b0006 */ lbu $t3,0x6($s0) +/* 7548: afab0028 */ sw $t3,0x28($sp) +/* 754c: 920c0007 */ lbu $t4,0x7($s0) +/* 7550: afac002c */ sw $t4,0x2c($sp) +/* 7554: 920d0008 */ lbu $t5,0x8($s0) +/* 7558: afad0030 */ sw $t5,0x30($sp) +/* 755c: 920e0009 */ lbu $t6,0x9($s0) +/* 7560: afae0034 */ sw $t6,0x34($sp) +/* 7564: 920f000a */ lbu $t7,0xa($s0) +/* 7568: afaf0038 */ sw $t7,0x38($sp) +/* 756c: 9218000b */ lbu $t8,0xb($s0) +/* 7570: afb8003c */ sw $t8,0x3c($sp) +/* 7574: 9219000c */ lbu $t9,0xc($s0) +/* 7578: afb90040 */ sw $t9,0x40($sp) +/* 757c: 920b000d */ lbu $t3,0xd($s0) +/* 7580: afab0044 */ sw $t3,0x44($sp) +/* 7584: 920c000e */ lbu $t4,0xe($s0) +/* 7588: afac0048 */ sw $t4,0x48($sp) +/* 758c: 920d000f */ lbu $t5,0xf($s0) +/* 7590: 0c004fc1 */ jal 0x13f04 +/* 7594: afad004c */ sw $t5,0x4c($sp) +/* 7598: 0c003074 */ jal 0xc1d0 +/* 759c: 02c02025 */ or $a0,$s6,$zero +/* 75a0: 240e0045 */ addiu $t6,$zero,0x45 +/* 75a4: a00e0000 */ sb $t6,0x0($zero) +.NB000075a8: +/* 75a8: 8faf0090 */ lw $t7,0x90($sp) +/* 75ac: 26310001 */ addiu $s1,$s1,0x1 +/* 75b0: 02749821 */ addu $s3,$s3,$s4 +/* 75b4: 022f082b */ sltu $at,$s1,$t7 +/* 75b8: 1420ffc1 */ bnez $at,.NB000074c0 +/* 75bc: 26520004 */ addiu $s2,$s2,0x4 +.NB000075c0: +/* 75c0: 8fb8008c */ lw $t8,0x8c($sp) +/* 75c4: 3c01803f */ lui $at,0x803f +/* 75c8: 342150c1 */ ori $at,$at,0x50c1 +/* 75cc: 0301082b */ sltu $at,$t8,$at +/* 75d0: 3c117f00 */ lui $s1,0x7f00 +/* 75d4: 10200018 */ beqz $at,.NB00007638 +/* 75d8: 24100002 */ addiu $s0,$zero,0x2 +/* 75dc: 3c160001 */ lui $s6,0x1 +/* 75e0: 36d6e000 */ ori $s6,$s6,0xe000 +/* 75e4: 3c140001 */ lui $s4,0x1 +/* 75e8: 3c130002 */ lui $s3,0x2 +.NB000075ec: +/* 75ec: 0c013100 */ jal 0x4c400 +/* 75f0: 02a02025 */ or $a0,$s5,$zero +/* 75f4: 00409025 */ or $s2,$v0,$zero +/* 75f8: 0c013100 */ jal 0x4c400 +/* 75fc: 02b42021 */ addu $a0,$s5,$s4 +/* 7600: 2419ffff */ addiu $t9,$zero,-1 +/* 7604: afb90014 */ sw $t9,0x14($sp) +/* 7608: 02002025 */ or $a0,$s0,$zero +/* 760c: 02c02825 */ or $a1,$s6,$zero +/* 7610: 02203025 */ or $a2,$s1,$zero +/* 7614: 02403825 */ or $a3,$s2,$zero +/* 7618: 0c013d94 */ jal 0x4f650 +/* 761c: afa20010 */ sw $v0,0x10($sp) +/* 7620: 8fab154c */ lw $t3,0x154c($sp) +/* 7624: 02b3a821 */ addu $s5,$s5,$s3 +/* 7628: 02338821 */ addu $s1,$s1,$s3 +/* 762c: 0175082b */ sltu $at,$t3,$s5 +/* 7630: 1020ffee */ beqz $at,.NB000075ec +/* 7634: 26100001 */ addiu $s0,$s0,0x1 +.NB00007638: +/* 7638: 3c018009 */ lui $at,0x8009 +/* 763c: ac2030e4 */ sw $zero,0x30e4($at) +/* 7640: 3c018009 */ lui $at,0x8009 +/* 7644: ac2030e8 */ sw $zero,0x30e8($at) +/* 7648: 3c018009 */ lui $at,0x8009 +/* 764c: ac2030ec */ sw $zero,0x30ec($at) +/* 7650: 00002025 */ or $a0,$zero,$zero +/* 7654: 0c012548 */ jal 0x49520 +/* 7658: 24054000 */ addiu $a1,$zero,0x4000 +/* 765c: 8fbf0074 */ lw $ra,0x74($sp) +/* 7660: 8fb00054 */ lw $s0,0x54($sp) +/* 7664: 8fb10058 */ lw $s1,0x58($sp) +/* 7668: 8fb2005c */ lw $s2,0x5c($sp) +/* 766c: 8fb30060 */ lw $s3,0x60($sp) +/* 7670: 8fb40064 */ lw $s4,0x64($sp) +/* 7674: 8fb50068 */ lw $s5,0x68($sp) +/* 7678: 8fb6006c */ lw $s6,0x6c($sp) +/* 767c: 8fb70070 */ lw $s7,0x70($sp) +/* 7680: 03e00008 */ jr $ra +/* 7684: 27bd1568 */ addiu $sp,$sp,0x1568 +); +#endif diff --git a/src/lib/lib_09a80.c b/src/lib/lib_09a80.c index f33164e02..69fadc9be 100644 --- a/src/lib/lib_09a80.c +++ b/src/lib/lib_09a80.c @@ -213,6 +213,7 @@ glabel func00009ab0 ); #endif +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func00009b50 /* 9b50: 3c03800a */ lui $v1,%hi(var8009cac0) @@ -259,6 +260,55 @@ glabel func00009b50 /* 9bf0: 03e00008 */ jr $ra /* 9bf4: a020a4a0 */ sb $zero,%lo(g_Vars+0x4e0)($at) ); +#else +GLOBAL_ASM( +glabel func00009b50 +/* 9cf0: 3c03800a */ lui $v1,0x800a +/* 9cf4: 3c058006 */ lui $a1,0x8006 +/* 9cf8: 3c088006 */ lui $t0,0x8006 +/* 9cfc: 2508ed28 */ addiu $t0,$t0,-4824 +/* 9d00: 24a5ecd0 */ addiu $a1,$a1,-4912 +/* 9d04: 24631200 */ addiu $v1,$v1,0x1200 +/* 9d08: 24070030 */ addiu $a3,$zero,0x30 +/* 9d0c: 240601e0 */ addiu $a2,$zero,0x1e0 +/* 9d10: 24020240 */ addiu $v0,$zero,0x240 +.NB00009d14: +/* 9d14: 24a5002c */ addiu $a1,$a1,0x2c +/* 9d18: 24630004 */ addiu $v1,$v1,0x4 +/* 9d1c: ac64fffc */ sw $a0,-0x4($v1) +/* 9d20: a4a2ffd8 */ sh $v0,-0x28($a1) +/* 9d24: a4a2ffec */ sh $v0,-0x14($a1) +/* 9d28: a4a6fff0 */ sh $a2,-0x10($a1) +/* 9d2c: a4a7ffda */ sh $a3,-0x26($a1) +/* 9d30: a4a7ffee */ sh $a3,-0x12($a1) +/* 9d34: 14a8fff7 */ bne $a1,$t0,.NB00009d14 +/* 9d38: a4a7fff2 */ sh $a3,-0xe($a1) +/* 9d3c: 3c0e8009 */ lui $t6,0x8009 +/* 9d40: 91ce4e66 */ lbu $t6,0x4e66($t6) +/* 9d44: 3c02800a */ lui $v0,0x800a +/* 9d48: 24421200 */ addiu $v0,$v0,0x1200 +/* 9d4c: 000e7880 */ sll $t7,$t6,0x2 +/* 9d50: 004fc021 */ addu $t8,$v0,$t7 +/* 9d54: 3c098006 */ lui $t1,0x8006 +/* 9d58: 8d29ed30 */ lw $t1,-0x12d0($t1) +/* 9d5c: 8f190000 */ lw $t9,0x0($t8) +/* 9d60: 3c0a8009 */ lui $t2,0x8009 +/* 9d64: 3c0e8006 */ lui $t6,0x8006 +/* 9d68: ad390028 */ sw $t9,0x28($t1) +/* 9d6c: 914a4e67 */ lbu $t2,0x4e67($t2) +/* 9d70: 8dceed34 */ lw $t6,-0x12cc($t6) +/* 9d74: 240f0001 */ addiu $t7,$zero,0x1 +/* 9d78: 000a5880 */ sll $t3,$t2,0x2 +/* 9d7c: 004b6021 */ addu $t4,$v0,$t3 +/* 9d80: 8d8d0000 */ lw $t5,0x0($t4) +/* 9d84: 3c018006 */ lui $at,0x8006 +/* 9d88: adcd0028 */ sw $t5,0x28($t6) +/* 9d8c: ac2fed3c */ sw $t7,-0x12c4($at) +/* 9d90: 3c01800a */ lui $at,0x800a +/* 9d94: 03e00008 */ jr $ra +/* 9d98: a020eba0 */ sb $zero,-0x1460($at) +); +#endif #if VERSION >= VERSION_PAL_FINAL GLOBAL_ASM( @@ -694,6 +744,7 @@ void func00009ec4(s32 arg0) var8005ce90 = arg0; } +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func00009ed4 /* 9ed4: 3c038006 */ lui $v1,%hi(var8005ce9c) @@ -790,6 +841,95 @@ glabel func00009ed4 /* a03c: 03e00008 */ jr $ra /* a040: 00000000 */ nop ); +#else +GLOBAL_ASM( +glabel func00009ed4 +/* a078: 3c038006 */ lui $v1,0x8006 +/* a07c: 2463e61c */ addiu $v1,$v1,-6628 +/* a080: 8c620000 */ lw $v0,0x0($v1) +/* a084: 27bdffe8 */ addiu $sp,$sp,-24 +/* a088: afbf0014 */ sw $ra,0x14($sp) +/* a08c: 10400006 */ beqz $v0,.NB0000a0a8 +/* a090: 3c088006 */ lui $t0,0x8006 +/* a094: 244effff */ addiu $t6,$v0,-1 +/* a098: 15c00003 */ bnez $t6,.NB0000a0a8 +/* a09c: ac6e0000 */ sw $t6,0x0($v1) +/* a0a0: 3c018006 */ lui $at,0x8006 +/* a0a4: ac20e618 */ sw $zero,-0x19e8($at) +.NB0000a0a8: +/* a0a8: 2508e614 */ addiu $t0,$t0,-6636 +/* a0ac: 3c188006 */ lui $t8,0x8006 +/* a0b0: 8f18e618 */ lw $t8,-0x19e8($t8) +/* a0b4: 8d050000 */ lw $a1,0x0($t0) +/* a0b8: 3c028009 */ lui $v0,0x8009 +/* a0bc: 3c078006 */ lui $a3,0x8006 +/* a0c0: 00b80019 */ multu $a1,$t8 +/* a0c4: 0005c823 */ negu $t9,$a1 +/* a0c8: ad190000 */ sw $t9,0x0($t0) +/* a0cc: 8c4e043c */ lw $t6,0x43c($v0) +/* a0d0: 24e7e5f4 */ addiu $a3,$a3,-6668 +/* a0d4: 8ce90000 */ lw $t1,0x0($a3) +/* a0d8: 000e5403 */ sra $t2,$t6,0x10 +/* a0dc: 3c068009 */ lui $a2,0x8009 +/* a0e0: 24c60394 */ addiu $a2,$a2,0x394 +/* a0e4: 3c028009 */ lui $v0,0x8009 +/* a0e8: 00001812 */ mflo $v1 +/* a0ec: 01436021 */ addu $t4,$t2,$v1 +/* a0f0: 00095080 */ sll $t2,$t1,0x2 +/* a0f4: 000a5823 */ negu $t3,$t2 +/* a0f8: 000c6c00 */ sll $t5,$t4,0x10 +/* a0fc: 00cb6021 */ addu $t4,$a2,$t3 +/* a100: 01c37821 */ addu $t7,$t6,$v1 +/* a104: 8d8e0000 */ lw $t6,0x0($t4) +/* a108: 31f8ffff */ andi $t8,$t7,0xffff +/* a10c: 01b8c825 */ or $t9,$t5,$t8 +/* a110: add90030 */ sw $t9,0x30($t6) +/* a114: 8c4b0440 */ lw $t3,0x440($v0) +/* a118: 8cef0000 */ lw $t7,0x0($a3) +/* a11c: 000b6c03 */ sra $t5,$t3,0x10 +/* a120: 01a34821 */ addu $t1,$t5,$v1 +/* a124: 000f6880 */ sll $t5,$t7,0x2 +/* a128: 000dc023 */ negu $t8,$t5 +/* a12c: 00095400 */ sll $t2,$t1,0x10 +/* a130: 00d84821 */ addu $t1,$a2,$t8 +/* a134: 01636021 */ addu $t4,$t3,$v1 +/* a138: 8d2b0000 */ lw $t3,0x0($t1) +/* a13c: 3199ffff */ andi $t9,$t4,0xffff +/* a140: 01597025 */ or $t6,$t2,$t9 +/* a144: ad6e0044 */ sw $t6,0x44($t3) +/* a148: 8cec0000 */ lw $t4,0x0($a3) +/* a14c: 000c5080 */ sll $t2,$t4,0x2 +/* a150: 000ac823 */ negu $t9,$t2 +/* a154: 00d97821 */ addu $t7,$a2,$t9 +/* a158: 0c012848 */ jal 0x4a120 +/* a15c: 8de40000 */ lw $a0,0x0($t7) +/* a160: 3c048006 */ lui $a0,0x8006 +/* a164: 0c01282c */ jal 0x4a0b0 +/* a168: 9084e613 */ lbu $a0,-0x19ed($a0) +/* a16c: 3c0d8006 */ lui $t5,0x8006 +/* a170: 8dade5f4 */ lw $t5,-0x1a0c($t5) +/* a174: 3c018006 */ lui $at,0x8006 +/* a178: 000dc080 */ sll $t8,$t5,0x2 +/* a17c: 00184823 */ negu $t1,$t8 +/* a180: 00290821 */ addu $at,$at,$t1 +/* a184: 0c012864 */ jal 0x4a190 +/* a188: c42ce5fc */ lwc1 $f12,-0x1a04($at) +/* a18c: 3c0e8006 */ lui $t6,0x8006 +/* a190: 8dcee5f4 */ lw $t6,-0x1a0c($t6) +/* a194: 3c018006 */ lui $at,0x8006 +/* a198: 000e5880 */ sll $t3,$t6,0x2 +/* a19c: 000b6023 */ negu $t4,$t3 +/* a1a0: 002c0821 */ addu $at,$at,$t4 +/* a1a4: 0c0128b0 */ jal 0x4a2c0 +/* a1a8: c42ce604 */ lwc1 $f12,-0x19fc($at) +/* a1ac: 0c0128c8 */ jal 0x4a320 +/* a1b0: 24040042 */ addiu $a0,$zero,0x42 +/* a1b4: 8fbf0014 */ lw $ra,0x14($sp) +/* a1b8: 27bd0018 */ addiu $sp,$sp,0x18 +/* a1bc: 03e00008 */ jr $ra +/* a1c0: 00000000 */ sll $zero,$zero,0x0 +); +#endif #if VERSION >= VERSION_PAL_FINAL GLOBAL_ASM( @@ -2681,6 +2821,7 @@ Gfx *func0000b2c4(Gfx *gdl) return gdl; } +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func0000b330 /* b330: 27bdff58 */ addiu $sp,$sp,-168 @@ -3273,6 +3414,641 @@ glabel func0000b330 /* bb98: 03e00008 */ jr $ra /* bb9c: 00000000 */ nop ); +#else +GLOBAL_ASM( +glabel func0000b330 +/* b4b0: 27bdff58 */ addiu $sp,$sp,-168 +/* b4b4: afbf0014 */ sw $ra,0x14($sp) +/* b4b8: 3c0eba00 */ lui $t6,0xba00 +/* b4bc: 35ce1402 */ ori $t6,$t6,0x1402 +/* b4c0: 24830008 */ addiu $v1,$a0,0x8 +/* b4c4: 3c0f0030 */ lui $t7,0x30 +/* b4c8: ac8f0004 */ sw $t7,0x4($a0) +/* b4cc: ac8e0000 */ sw $t6,0x0($a0) +/* b4d0: 3c18ed00 */ lui $t8,0xed00 +/* b4d4: ac780000 */ sw $t8,0x0($v1) +/* b4d8: 24660008 */ addiu $a2,$v1,0x8 +/* b4dc: afa600a8 */ sw $a2,0xa8($sp) +/* b4e0: 0c002f77 */ jal 0xbddc +/* b4e4: afa300a0 */ sw $v1,0xa0($sp) +/* b4e8: 0c002f7b */ jal 0xbdec +/* b4ec: a7a20056 */ sh $v0,0x56($sp) +/* b4f0: 44822000 */ mtc1 $v0,$f4 +/* b4f4: 87af0056 */ lh $t7,0x56($sp) +/* b4f8: 3c014080 */ lui $at,0x4080 +/* b4fc: 468021a0 */ cvt.s.w $f6,$f4 +/* b500: 448f8000 */ mtc1 $t7,$f16 +/* b504: 44810000 */ mtc1 $at,$f0 +/* b508: 8fa600a8 */ lw $a2,0xa8($sp) +/* b50c: 3c0b800a */ lui $t3,0x800a +/* b510: 468084a0 */ cvt.s.w $f18,$f16 +/* b514: 46003202 */ mul.s $f8,$f6,$f0 +/* b518: 00c01825 */ or $v1,$a2,$zero +/* b51c: 256be6c0 */ addiu $t3,$t3,-6464 +/* b520: 24010001 */ addiu $at,$zero,0x1 +/* b524: 00002825 */ or $a1,$zero,$zero +/* b528: 46009102 */ mul.s $f4,$f18,$f0 +/* b52c: 00002025 */ or $a0,$zero,$zero +/* b530: 24c60008 */ addiu $a2,$a2,0x8 +/* b534: 4600428d */ trunc.w.s $f10,$f8 +/* b538: 4600218d */ trunc.w.s $f6,$f4 +/* b53c: 440d5000 */ mfc1 $t5,$f10 +/* b540: 44193000 */ mfc1 $t9,$f6 +/* b544: 31ae0fff */ andi $t6,$t5,0xfff +/* b548: 332d0fff */ andi $t5,$t9,0xfff +/* b54c: 8fb900a0 */ lw $t9,0xa0($sp) +/* b550: 000d7b00 */ sll $t7,$t5,0xc +/* b554: 01cfc025 */ or $t8,$t6,$t7 +/* b558: 3c0e0001 */ lui $t6,0x1 +/* b55c: af380004 */ sw $t8,0x4($t9) +/* b560: 35ce0001 */ ori $t6,$t6,0x1 +/* b564: 3c0df700 */ lui $t5,0xf700 +/* b568: ac6d0000 */ sw $t5,0x0($v1) +/* b56c: ac6e0004 */ sw $t6,0x4($v1) +/* b570: 8d6f006c */ lw $t7,0x6c($t3) +/* b574: 00001825 */ or $v1,$zero,$zero +/* b578: 11e00003 */ beqz $t7,.NB0000b588 +/* b57c: 00000000 */ sll $zero,$zero,0x0 +/* b580: 10000001 */ beqz $zero,.NB0000b588 +/* b584: 24050001 */ addiu $a1,$zero,0x1 +.NB0000b588: +/* b588: 8d780068 */ lw $t8,0x68($t3) +/* b58c: 00001025 */ or $v0,$zero,$zero +/* b590: 13000003 */ beqz $t8,.NB0000b5a0 +/* b594: 00000000 */ sll $zero,$zero,0x0 +/* b598: 10000001 */ beqz $zero,.NB0000b5a0 +/* b59c: 24040001 */ addiu $a0,$zero,0x1 +.NB0000b5a0: +/* b5a0: 8d790064 */ lw $t9,0x64($t3) +/* b5a4: 13200003 */ beqz $t9,.NB0000b5b4 +/* b5a8: 00000000 */ sll $zero,$zero,0x0 +/* b5ac: 10000001 */ beqz $zero,.NB0000b5b4 +/* b5b0: 24030001 */ addiu $v1,$zero,0x1 +.NB0000b5b4: +/* b5b4: 8d6d0070 */ lw $t5,0x70($t3) +/* b5b8: 11a00003 */ beqz $t5,.NB0000b5c8 +/* b5bc: 00000000 */ sll $zero,$zero,0x0 +/* b5c0: 10000001 */ beqz $zero,.NB0000b5c8 +/* b5c4: 24020001 */ addiu $v0,$zero,0x1 +.NB0000b5c8: +/* b5c8: 00437021 */ addu $t6,$v0,$v1 +/* b5cc: 01c47821 */ addu $t7,$t6,$a0 +/* b5d0: 01e5c021 */ addu $t8,$t7,$a1 +/* b5d4: 13010019 */ beq $t8,$at,.NB0000b63c +/* b5d8: 00000000 */ sll $zero,$zero,0x0 +/* b5dc: 8d790298 */ lw $t9,0x298($t3) +/* b5e0: 3c0e8007 */ lui $t6,0x8007 +/* b5e4: 07210004 */ bgez $t9,.NB0000b5f8 +/* b5e8: 00000000 */ sll $zero,$zero,0x0 +/* b5ec: 8d6d029c */ lw $t5,0x29c($t3) +/* b5f0: 05a2005f */ bltzl $t5,.NB0000b770 +/* b5f4: 8d6f0290 */ lw $t7,0x290($t3) +.NB0000b5f8: +/* b5f8: 8dce2e24 */ lw $t6,0x2e24($t6) +/* b5fc: 3c0f8006 */ lui $t7,0x8006 +/* b600: 11c00004 */ beqz $t6,.NB0000b614 +/* b604: 00000000 */ sll $zero,$zero,0x0 +/* b608: 8deff2f0 */ lw $t7,-0xd10($t7) +/* b60c: 51e00009 */ beqzl $t7,.NB0000b634 +/* b610: 8d78028c */ lw $t8,0x28c($t3) +.NB0000b614: +/* b614: 0fc3e4d2 */ jal 0xf0f9348 +/* b618: afa600a8 */ sw $a2,0xa8($sp) +/* b61c: 3c0b800a */ lui $t3,0x800a +/* b620: 24010009 */ addiu $at,$zero,0x9 +/* b624: 256be6c0 */ addiu $t3,$t3,-6464 +/* b628: 14410050 */ bne $v0,$at,.NB0000b76c +/* b62c: 8fa600a8 */ lw $a2,0xa8($sp) +/* b630: 8d78028c */ lw $t8,0x28c($t3) +.NB0000b634: +/* b634: 5700004e */ bnezl $t8,.NB0000b770 +/* b638: 8d6f0290 */ lw $t7,0x290($t3) +.NB0000b63c: +/* b63c: 0c002fb9 */ jal 0xbee4 +/* b640: afa600a8 */ sw $a2,0xa8($sp) +/* b644: 1840001a */ blez $v0,.NB0000b6b0 +/* b648: 8fa600a8 */ lw $a2,0xa8($sp) +/* b64c: afa60098 */ sw $a2,0x98($sp) +/* b650: 24c60008 */ addiu $a2,$a2,0x8 +/* b654: 0c002f77 */ jal 0xbddc +/* b658: afa600a8 */ sw $a2,0xa8($sp) +/* b65c: 0c002fb9 */ jal 0xbee4 +/* b660: a7a20056 */ sh $v0,0x56($sp) +/* b664: 87b80056 */ lh $t8,0x56($sp) +/* b668: 2459ffff */ addiu $t9,$v0,-1 +/* b66c: 332d03ff */ andi $t5,$t9,0x3ff +/* b670: 000d7080 */ sll $t6,$t5,0x2 +/* b674: 8fa40098 */ lw $a0,0x98($sp) +/* b678: 8fa600a8 */ lw $a2,0xa8($sp) +/* b67c: 3c01f600 */ lui $at,0xf600 +/* b680: 2719ffff */ addiu $t9,$t8,-1 +/* b684: 332d03ff */ andi $t5,$t9,0x3ff +/* b688: 01c17825 */ or $t7,$t6,$at +/* b68c: 000d7380 */ sll $t6,$t5,0xe +/* b690: 01eec025 */ or $t8,$t7,$t6 +/* b694: 00c01825 */ or $v1,$a2,$zero +/* b698: ac980000 */ sw $t8,0x0($a0) +/* b69c: ac800004 */ sw $zero,0x4($a0) +/* b6a0: 3c19e700 */ lui $t9,0xe700 +/* b6a4: ac790000 */ sw $t9,0x0($v1) +/* b6a8: ac600004 */ sw $zero,0x4($v1) +/* b6ac: 24c60008 */ addiu $a2,$a2,0x8 +.NB0000b6b0: +/* b6b0: 0c002f9b */ jal 0xbe6c +/* b6b4: afa600a8 */ sw $a2,0xa8($sp) +/* b6b8: 0c002fb9 */ jal 0xbee4 +/* b6bc: a7a20042 */ sh $v0,0x42($sp) +/* b6c0: 0c002f7b */ jal 0xbdec +/* b6c4: a7a20056 */ sh $v0,0x56($sp) +/* b6c8: 87ad0056 */ lh $t5,0x56($sp) +/* b6cc: 87af0042 */ lh $t7,0x42($sp) +/* b6d0: 8fa600a8 */ lw $a2,0xa8($sp) +/* b6d4: 01af7021 */ addu $t6,$t5,$t7 +/* b6d8: 01c2082a */ slt $at,$t6,$v0 +/* b6dc: 50200195 */ beqzl $at,.NB0000bd34 +/* b6e0: 8fbf0014 */ lw $ra,0x14($sp) +/* b6e4: afa60090 */ sw $a2,0x90($sp) +/* b6e8: 24c60008 */ addiu $a2,$a2,0x8 +/* b6ec: 0c002f77 */ jal 0xbddc +/* b6f0: afa600a8 */ sw $a2,0xa8($sp) +/* b6f4: 0c002f7b */ jal 0xbdec +/* b6f8: a7a20056 */ sh $v0,0x56($sp) +/* b6fc: 87ae0056 */ lh $t6,0x56($sp) +/* b700: 2458ffff */ addiu $t8,$v0,-1 +/* b704: 331903ff */ andi $t9,$t8,0x3ff +/* b708: 00196880 */ sll $t5,$t9,0x2 +/* b70c: 25d8ffff */ addiu $t8,$t6,-1 +/* b710: 331903ff */ andi $t9,$t8,0x3ff +/* b714: 3c01f600 */ lui $at,0xf600 +/* b718: 01a17825 */ or $t7,$t5,$at +/* b71c: 8fb80090 */ lw $t8,0x90($sp) +/* b720: 00196b80 */ sll $t5,$t9,0xe +/* b724: 01ed7025 */ or $t6,$t7,$t5 +/* b728: 0c002fb9 */ jal 0xbee4 +/* b72c: af0e0000 */ sw $t6,0x0($t8) +/* b730: 0c002f9b */ jal 0xbe6c +/* b734: a7a20056 */ sh $v0,0x56($sp) +/* b738: 87b90056 */ lh $t9,0x56($sp) +/* b73c: 8fa600a8 */ lw $a2,0xa8($sp) +/* b740: 8fb80090 */ lw $t8,0x90($sp) +/* b744: 00597821 */ addu $t7,$v0,$t9 +/* b748: 31ed03ff */ andi $t5,$t7,0x3ff +/* b74c: 000d7080 */ sll $t6,$t5,0x2 +/* b750: 00c01825 */ or $v1,$a2,$zero +/* b754: 3c19e700 */ lui $t9,0xe700 +/* b758: af0e0004 */ sw $t6,0x4($t8) +/* b75c: ac600004 */ sw $zero,0x4($v1) +/* b760: ac790000 */ sw $t9,0x0($v1) +/* b764: 10000172 */ beqz $zero,.NB0000bd30 +/* b768: 24c60008 */ addiu $a2,$a2,0x8 +.NB0000b76c: +/* b76c: 8d6f0290 */ lw $t7,0x290($t3) +.NB0000b770: +/* b770: 00006025 */ or $t4,$zero,$zero +/* b774: 24010002 */ addiu $at,$zero,0x2 +/* b778: 55e0016e */ bnezl $t7,.NB0000bd34 +/* b77c: 8fbf0014 */ lw $ra,0x14($sp) +/* b780: 8d69006c */ lw $t1,0x6c($t3) +/* b784: afa00080 */ sw $zero,0x80($sp) +/* b788: 8d670068 */ lw $a3,0x68($t3) +/* b78c: 8d680064 */ lw $t0,0x64($t3) +/* b790: 11200003 */ beqz $t1,.NB0000b7a0 +/* b794: 8d6a0070 */ lw $t2,0x70($t3) +/* b798: 10000002 */ beqz $zero,.NB0000b7a4 +/* b79c: 24050001 */ addiu $a1,$zero,0x1 +.NB0000b7a0: +/* b7a0: 00002825 */ or $a1,$zero,$zero +.NB0000b7a4: +/* b7a4: 50e00004 */ beqzl $a3,.NB0000b7b8 +/* b7a8: 00002025 */ or $a0,$zero,$zero +/* b7ac: 10000002 */ beqz $zero,.NB0000b7b8 +/* b7b0: 24040001 */ addiu $a0,$zero,0x1 +/* b7b4: 00002025 */ or $a0,$zero,$zero +.NB0000b7b8: +/* b7b8: 51000004 */ beqzl $t0,.NB0000b7cc +/* b7bc: 00001825 */ or $v1,$zero,$zero +/* b7c0: 10000002 */ beqz $zero,.NB0000b7cc +/* b7c4: 24030001 */ addiu $v1,$zero,0x1 +/* b7c8: 00001825 */ or $v1,$zero,$zero +.NB0000b7cc: +/* b7cc: 51400004 */ beqzl $t2,.NB0000b7e0 +/* b7d0: 00001025 */ or $v0,$zero,$zero +/* b7d4: 10000002 */ beqz $zero,.NB0000b7e0 +/* b7d8: 24020001 */ addiu $v0,$zero,0x1 +/* b7dc: 00001025 */ or $v0,$zero,$zero +.NB0000b7e0: +/* b7e0: 00436821 */ addu $t5,$v0,$v1 +/* b7e4: 01a47021 */ addu $t6,$t5,$a0 +/* b7e8: 01c5c021 */ addu $t8,$t6,$a1 +/* b7ec: 17010004 */ bne $t8,$at,.NB0000b800 +/* b7f0: 24190001 */ addiu $t9,$zero,0x1 +/* b7f4: 240c0001 */ addiu $t4,$zero,0x1 +/* b7f8: 10000019 */ beqz $zero,.NB0000b860 +/* b7fc: afb90080 */ sw $t9,0x80($sp) +.NB0000b800: +/* b800: 11200003 */ beqz $t1,.NB0000b810 +/* b804: 00002825 */ or $a1,$zero,$zero +/* b808: 10000001 */ beqz $zero,.NB0000b810 +/* b80c: 24050001 */ addiu $a1,$zero,0x1 +.NB0000b810: +/* b810: 10e00003 */ beqz $a3,.NB0000b820 +/* b814: 00002025 */ or $a0,$zero,$zero +/* b818: 10000001 */ beqz $zero,.NB0000b820 +/* b81c: 24040001 */ addiu $a0,$zero,0x1 +.NB0000b820: +/* b820: 11000003 */ beqz $t0,.NB0000b830 +/* b824: 00001825 */ or $v1,$zero,$zero +/* b828: 10000001 */ beqz $zero,.NB0000b830 +/* b82c: 24030001 */ addiu $v1,$zero,0x1 +.NB0000b830: +/* b830: 11400003 */ beqz $t2,.NB0000b840 +/* b834: 00001025 */ or $v0,$zero,$zero +/* b838: 10000001 */ beqz $zero,.NB0000b840 +/* b83c: 24020001 */ addiu $v0,$zero,0x1 +.NB0000b840: +/* b840: 00437821 */ addu $t7,$v0,$v1 +/* b844: 01e46821 */ addu $t5,$t7,$a0 +/* b848: 01a57021 */ addu $t6,$t5,$a1 +/* b84c: 29c10003 */ slti $at,$t6,0x3 +/* b850: 14200003 */ bnez $at,.NB0000b860 +/* b854: 24180002 */ addiu $t8,$zero,0x2 +/* b858: 240c0002 */ addiu $t4,$zero,0x2 +/* b85c: afb80080 */ sw $t8,0x80($sp) +.NB0000b860: +/* b860: 3c19800a */ lui $t9,0x800a +/* b864: 8f39e724 */ lw $t9,-0x18dc($t9) +/* b868: 872f0636 */ lh $t7,0x636($t9) +/* b86c: 19e0001c */ blez $t7,.NB0000b8e0 +/* b870: 00c02025 */ or $a0,$a2,$zero +/* b874: 24c60008 */ addiu $a2,$a2,0x8 +/* b878: afa600a8 */ sw $a2,0xa8($sp) +/* b87c: afa4007c */ sw $a0,0x7c($sp) +/* b880: 0c002f77 */ jal 0xbddc +/* b884: afac0084 */ sw $t4,0x84($sp) +/* b888: 3c0d800a */ lui $t5,0x800a +/* b88c: 8dade724 */ lw $t5,-0x18dc($t5) +/* b890: 8fa4007c */ lw $a0,0x7c($sp) +/* b894: 8fa600a8 */ lw $a2,0xa8($sp) +/* b898: 85ae0636 */ lh $t6,0x636($t5) +/* b89c: 3c01f600 */ lui $at,0xf600 +/* b8a0: 8fac0084 */ lw $t4,0x84($sp) +/* b8a4: 25d8ffff */ addiu $t8,$t6,-1 +/* b8a8: 331903ff */ andi $t9,$t8,0x3ff +/* b8ac: 00197880 */ sll $t7,$t9,0x2 +/* b8b0: 244effff */ addiu $t6,$v0,-1 +/* b8b4: 31d803ff */ andi $t8,$t6,0x3ff +/* b8b8: 0018cb80 */ sll $t9,$t8,0xe +/* b8bc: 01e16825 */ or $t5,$t7,$at +/* b8c0: 01b97825 */ or $t7,$t5,$t9 +/* b8c4: 00c01825 */ or $v1,$a2,$zero +/* b8c8: ac8f0000 */ sw $t7,0x0($a0) +/* b8cc: ac800004 */ sw $zero,0x4($a0) +/* b8d0: 3c0ee700 */ lui $t6,0xe700 +/* b8d4: ac6e0000 */ sw $t6,0x0($v1) +/* b8d8: ac600004 */ sw $zero,0x4($v1) +/* b8dc: 24c60008 */ addiu $a2,$a2,0x8 +.NB0000b8e0: +/* b8e0: afa600a8 */ sw $a2,0xa8($sp) +/* b8e4: 0c002f7b */ jal 0xbdec +/* b8e8: afac0084 */ sw $t4,0x84($sp) +/* b8ec: 8fac0084 */ lw $t4,0x84($sp) +/* b8f0: 3c0b800a */ lui $t3,0x800a +/* b8f4: 256be6c0 */ addiu $t3,$t3,-6464 +/* b8f8: 000cc080 */ sll $t8,$t4,0x2 +/* b8fc: 01782821 */ addu $a1,$t3,$t8 +/* b900: 8ca30064 */ lw $v1,0x64($a1) +/* b904: 8fa600a8 */ lw $a2,0xa8($sp) +/* b908: 846d0636 */ lh $t5,0x636($v1) +/* b90c: 84790632 */ lh $t9,0x632($v1) +/* b910: 01b97821 */ addu $t7,$t5,$t9 +/* b914: 01e2082a */ slt $at,$t7,$v0 +/* b918: 50200023 */ beqzl $at,.NB0000b9a8 +/* b91c: 00c02025 */ or $a0,$a2,$zero +/* b920: afa60074 */ sw $a2,0x74($sp) +/* b924: 24c60008 */ addiu $a2,$a2,0x8 +/* b928: afa600a8 */ sw $a2,0xa8($sp) +/* b92c: 0c002f77 */ jal 0xbddc +/* b930: afa5002c */ sw $a1,0x2c($sp) +/* b934: 0c002f7b */ jal 0xbdec +/* b938: a7a20056 */ sh $v0,0x56($sp) +/* b93c: 87af0056 */ lh $t7,0x56($sp) +/* b940: 244effff */ addiu $t6,$v0,-1 +/* b944: 31d803ff */ andi $t8,$t6,0x3ff +/* b948: 00186880 */ sll $t5,$t8,0x2 +/* b94c: 3c01f600 */ lui $at,0xf600 +/* b950: 25eeffff */ addiu $t6,$t7,-1 +/* b954: 8fa70074 */ lw $a3,0x74($sp) +/* b958: 31d803ff */ andi $t8,$t6,0x3ff +/* b95c: 01a1c825 */ or $t9,$t5,$at +/* b960: 8fa5002c */ lw $a1,0x2c($sp) +/* b964: 00186b80 */ sll $t5,$t8,0xe +/* b968: 8fa600a8 */ lw $a2,0xa8($sp) +/* b96c: 032d7825 */ or $t7,$t9,$t5 +/* b970: acef0000 */ sw $t7,0x0($a3) +/* b974: 8ca30064 */ lw $v1,0x64($a1) +/* b978: 00c02025 */ or $a0,$a2,$zero +/* b97c: 24c60008 */ addiu $a2,$a2,0x8 +/* b980: 846e0632 */ lh $t6,0x632($v1) +/* b984: 84780636 */ lh $t8,0x636($v1) +/* b988: 01d8c821 */ addu $t9,$t6,$t8 +/* b98c: 332d03ff */ andi $t5,$t9,0x3ff +/* b990: 000d7880 */ sll $t7,$t5,0x2 +/* b994: acef0004 */ sw $t7,0x4($a3) +/* b998: 3c0ee700 */ lui $t6,0xe700 +/* b99c: ac8e0000 */ sw $t6,0x0($a0) +/* b9a0: ac800004 */ sw $zero,0x4($a0) +/* b9a4: 00c02025 */ or $a0,$a2,$zero +.NB0000b9a8: +/* b9a8: 24c60008 */ addiu $a2,$a2,0x8 +/* b9ac: afa600a8 */ sw $a2,0xa8($sp) +/* b9b0: 0c002f77 */ jal 0xbddc +/* b9b4: afa4006c */ sw $a0,0x6c($sp) +/* b9b8: 8fb80080 */ lw $t8,0x80($sp) +/* b9bc: 3c0b800a */ lui $t3,0x800a +/* b9c0: 256be6c0 */ addiu $t3,$t3,-6464 +/* b9c4: 0018c880 */ sll $t9,$t8,0x2 +/* b9c8: 01796021 */ addu $t4,$t3,$t9 +/* b9cc: 8d8d0064 */ lw $t5,0x64($t4) +/* b9d0: 8fa4006c */ lw $a0,0x6c($sp) +/* b9d4: 3c01f600 */ lui $at,0xf600 +/* b9d8: 85af0636 */ lh $t7,0x636($t5) +/* b9dc: 8fa600a8 */ lw $a2,0xa8($sp) +/* b9e0: 00002825 */ or $a1,$zero,$zero +/* b9e4: 25eeffff */ addiu $t6,$t7,-1 +/* b9e8: 31d803ff */ andi $t8,$t6,0x3ff +/* b9ec: 0018c880 */ sll $t9,$t8,0x2 +/* b9f0: 244fffff */ addiu $t7,$v0,-1 +/* b9f4: 31ee03ff */ andi $t6,$t7,0x3ff +/* b9f8: 000ec380 */ sll $t8,$t6,0xe +/* b9fc: 03216825 */ or $t5,$t9,$at +/* ba00: 01b8c825 */ or $t9,$t5,$t8 +/* ba04: ac990000 */ sw $t9,0x0($a0) +/* ba08: 8d8f0064 */ lw $t7,0x64($t4) +/* ba0c: 00c01825 */ or $v1,$a2,$zero +/* ba10: 24c60008 */ addiu $a2,$a2,0x8 +/* ba14: 85ee0636 */ lh $t6,0x636($t7) +/* ba18: 3c0fe700 */ lui $t7,0xe700 +/* ba1c: 25cdffff */ addiu $t5,$t6,-1 +/* ba20: 31b803ff */ andi $t8,$t5,0x3ff +/* ba24: 0018c880 */ sll $t9,$t8,0x2 +/* ba28: ac990004 */ sw $t9,0x4($a0) +/* ba2c: ac600004 */ sw $zero,0x4($v1) +/* ba30: ac6f0000 */ sw $t7,0x0($v1) +/* ba34: 8d69006c */ lw $t1,0x6c($t3) +/* ba38: 11200003 */ beqz $t1,.NB0000ba48 +/* ba3c: 00000000 */ sll $zero,$zero,0x0 +/* ba40: 10000001 */ beqz $zero,.NB0000ba48 +/* ba44: 24050001 */ addiu $a1,$zero,0x1 +.NB0000ba48: +/* ba48: 8d670068 */ lw $a3,0x68($t3) +/* ba4c: 00002025 */ or $a0,$zero,$zero +/* ba50: 00001825 */ or $v1,$zero,$zero +/* ba54: 10e00003 */ beqz $a3,.NB0000ba64 +/* ba58: 00000000 */ sll $zero,$zero,0x0 +/* ba5c: 10000001 */ beqz $zero,.NB0000ba64 +/* ba60: 24040001 */ addiu $a0,$zero,0x1 +.NB0000ba64: +/* ba64: 8d680064 */ lw $t0,0x64($t3) +/* ba68: 00001025 */ or $v0,$zero,$zero +/* ba6c: 11000003 */ beqz $t0,.NB0000ba7c +/* ba70: 00000000 */ sll $zero,$zero,0x0 +/* ba74: 10000001 */ beqz $zero,.NB0000ba7c +/* ba78: 24030001 */ addiu $v1,$zero,0x1 +.NB0000ba7c: +/* ba7c: 8d6a0070 */ lw $t2,0x70($t3) +/* ba80: 11400003 */ beqz $t2,.NB0000ba90 +/* ba84: 00000000 */ sll $zero,$zero,0x0 +/* ba88: 10000001 */ beqz $zero,.NB0000ba90 +/* ba8c: 24020001 */ addiu $v0,$zero,0x1 +.NB0000ba90: +/* ba90: 00437021 */ addu $t6,$v0,$v1 +/* ba94: 01c46821 */ addu $t5,$t6,$a0 +/* ba98: 01a5c021 */ addu $t8,$t5,$a1 +/* ba9c: 2b010003 */ slti $at,$t8,0x3 +/* baa0: 50200024 */ beqzl $at,.NB0000bb34 +/* baa4: 8d78006c */ lw $t8,0x6c($t3) +/* baa8: 11200003 */ beqz $t1,.NB0000bab8 +/* baac: 24010002 */ addiu $at,$zero,0x2 +/* bab0: 10000002 */ beqz $zero,.NB0000babc +/* bab4: 24050001 */ addiu $a1,$zero,0x1 +.NB0000bab8: +/* bab8: 00002825 */ or $a1,$zero,$zero +.NB0000babc: +/* babc: 10e00003 */ beqz $a3,.NB0000bacc +/* bac0: 00001825 */ or $v1,$zero,$zero +/* bac4: 10000001 */ beqz $zero,.NB0000bacc +/* bac8: 24030001 */ addiu $v1,$zero,0x1 +.NB0000bacc: +/* bacc: 11000003 */ beqz $t0,.NB0000badc +/* bad0: 00002025 */ or $a0,$zero,$zero +/* bad4: 10000001 */ beqz $zero,.NB0000badc +/* bad8: 24040001 */ addiu $a0,$zero,0x1 +.NB0000badc: +/* badc: 11400003 */ beqz $t2,.NB0000baec +/* bae0: 00001025 */ or $v0,$zero,$zero +/* bae4: 10000001 */ beqz $zero,.NB0000baec +/* bae8: 24020001 */ addiu $v0,$zero,0x1 +.NB0000baec: +/* baec: 0044c821 */ addu $t9,$v0,$a0 +/* baf0: 03237821 */ addu $t7,$t9,$v1 +/* baf4: 01e57021 */ addu $t6,$t7,$a1 +/* baf8: 55c1004e */ bnel $t6,$at,.NB0000bc34 +/* bafc: 8d79006c */ lw $t9,0x6c($t3) +/* bb00: afa600a8 */ sw $a2,0xa8($sp) +/* bb04: 0fc53588 */ jal 0xf14d620 +/* bb08: afac001c */ sw $t4,0x1c($sp) +/* bb0c: 3c0b800a */ lui $t3,0x800a +/* bb10: 24010001 */ addiu $at,$zero,0x1 +/* bb14: 256be6c0 */ addiu $t3,$t3,-6464 +/* bb18: 8fa600a8 */ lw $a2,0xa8($sp) +/* bb1c: 10410004 */ beq $v0,$at,.NB0000bb30 +/* bb20: 8fac001c */ lw $t4,0x1c($sp) +/* bb24: 916d04e0 */ lbu $t5,0x4e0($t3) +/* bb28: 51a00042 */ beqzl $t5,.NB0000bc34 +/* bb2c: 8d79006c */ lw $t9,0x6c($t3) +.NB0000bb30: +/* bb30: 8d78006c */ lw $t8,0x6c($t3) +.NB0000bb34: +/* bb34: 8d670068 */ lw $a3,0x68($t3) +/* bb38: 8d680064 */ lw $t0,0x64($t3) +/* bb3c: 13000003 */ beqz $t8,.NB0000bb4c +/* bb40: 8d6a0070 */ lw $t2,0x70($t3) +/* bb44: 10000002 */ beqz $zero,.NB0000bb50 +/* bb48: 24050001 */ addiu $a1,$zero,0x1 +.NB0000bb4c: +/* bb4c: 00002825 */ or $a1,$zero,$zero +.NB0000bb50: +/* bb50: 10e00003 */ beqz $a3,.NB0000bb60 +/* bb54: 24010002 */ addiu $at,$zero,0x2 +/* bb58: 10000002 */ beqz $zero,.NB0000bb64 +/* bb5c: 24040001 */ addiu $a0,$zero,0x1 +.NB0000bb60: +/* bb60: 00002025 */ or $a0,$zero,$zero +.NB0000bb64: +/* bb64: 11000003 */ beqz $t0,.NB0000bb74 +/* bb68: 00001825 */ or $v1,$zero,$zero +/* bb6c: 10000001 */ beqz $zero,.NB0000bb74 +/* bb70: 24030001 */ addiu $v1,$zero,0x1 +.NB0000bb74: +/* bb74: 11400003 */ beqz $t2,.NB0000bb84 +/* bb78: 00001025 */ or $v0,$zero,$zero +/* bb7c: 10000001 */ beqz $zero,.NB0000bb84 +/* bb80: 24020001 */ addiu $v0,$zero,0x1 +.NB0000bb84: +/* bb84: 0043c821 */ addu $t9,$v0,$v1 +/* bb88: 03247821 */ addu $t7,$t9,$a0 +/* bb8c: 01e57021 */ addu $t6,$t7,$a1 +/* bb90: 15c10004 */ bne $t6,$at,.NB0000bba4 +/* bb94: 00c02825 */ or $a1,$a2,$zero +/* bb98: 3c0c800a */ lui $t4,0x800a +/* bb9c: 258ce6c0 */ addiu $t4,$t4,-6464 +/* bba0: afa00080 */ sw $zero,0x80($sp) +.NB0000bba4: +/* bba4: 24c60008 */ addiu $a2,$a2,0x8 +/* bba8: afa600a8 */ sw $a2,0xa8($sp) +/* bbac: afa50064 */ sw $a1,0x64($sp) +/* bbb0: 0c002f7b */ jal 0xbdec +/* bbb4: afac001c */ sw $t4,0x1c($sp) +/* bbb8: 8fac001c */ lw $t4,0x1c($sp) +/* bbbc: 8fa50064 */ lw $a1,0x64($sp) +/* bbc0: 3c01f600 */ lui $at,0xf600 +/* bbc4: 8d830064 */ lw $v1,0x64($t4) +/* bbc8: 8fa600a8 */ lw $a2,0xa8($sp) +/* bbcc: 3c0b800a */ lui $t3,0x800a +/* bbd0: 846d0634 */ lh $t5,0x634($v1) +/* bbd4: 84780630 */ lh $t8,0x630($v1) +/* bbd8: 00c02025 */ or $a0,$a2,$zero +/* bbdc: 256be6c0 */ addiu $t3,$t3,-6464 +/* bbe0: 01b8c821 */ addu $t9,$t5,$t8 +/* bbe4: 332f03ff */ andi $t7,$t9,0x3ff +/* bbe8: 244dffff */ addiu $t5,$v0,-1 +/* bbec: 31b803ff */ andi $t8,$t5,0x3ff +/* bbf0: 0018c880 */ sll $t9,$t8,0x2 +/* bbf4: 000f7380 */ sll $t6,$t7,0xe +/* bbf8: 03217825 */ or $t7,$t9,$at +/* bbfc: 01ee6825 */ or $t5,$t7,$t6 +/* bc00: acad0000 */ sw $t5,0x0($a1) +/* bc04: 8d830064 */ lw $v1,0x64($t4) +/* bc08: 24c60008 */ addiu $a2,$a2,0x8 +/* bc0c: 84780630 */ lh $t8,0x630($v1) +/* bc10: 84790634 */ lh $t9,0x634($v1) +/* bc14: 03197821 */ addu $t7,$t8,$t9 +/* bc18: 31ee03ff */ andi $t6,$t7,0x3ff +/* bc1c: 000e6b80 */ sll $t5,$t6,0xe +/* bc20: acad0004 */ sw $t5,0x4($a1) +/* bc24: 3c18e700 */ lui $t8,0xe700 +/* bc28: ac980000 */ sw $t8,0x0($a0) +/* bc2c: ac800004 */ sw $zero,0x4($a0) +/* bc30: 8d79006c */ lw $t9,0x6c($t3) +.NB0000bc34: +/* bc34: 8d670068 */ lw $a3,0x68($t3) +/* bc38: 8d680064 */ lw $t0,0x64($t3) +/* bc3c: 13200003 */ beqz $t9,.NB0000bc4c +/* bc40: 8d6a0070 */ lw $t2,0x70($t3) +/* bc44: 10000002 */ beqz $zero,.NB0000bc50 +/* bc48: 24050001 */ addiu $a1,$zero,0x1 +.NB0000bc4c: +/* bc4c: 00002825 */ or $a1,$zero,$zero +.NB0000bc50: +/* bc50: 10e00003 */ beqz $a3,.NB0000bc60 +/* bc54: 24010003 */ addiu $at,$zero,0x3 +/* bc58: 10000002 */ beqz $zero,.NB0000bc64 +/* bc5c: 24040001 */ addiu $a0,$zero,0x1 +.NB0000bc60: +/* bc60: 00002025 */ or $a0,$zero,$zero +.NB0000bc64: +/* bc64: 11000003 */ beqz $t0,.NB0000bc74 +/* bc68: 00001825 */ or $v1,$zero,$zero +/* bc6c: 10000001 */ beqz $zero,.NB0000bc74 +/* bc70: 24030001 */ addiu $v1,$zero,0x1 +.NB0000bc74: +/* bc74: 11400003 */ beqz $t2,.NB0000bc84 +/* bc78: 00001025 */ or $v0,$zero,$zero +/* bc7c: 10000001 */ beqz $zero,.NB0000bc84 +/* bc80: 24020001 */ addiu $v0,$zero,0x1 +.NB0000bc84: +/* bc84: 00437821 */ addu $t7,$v0,$v1 +/* bc88: 01e47021 */ addu $t6,$t7,$a0 +/* bc8c: 01c56821 */ addu $t5,$t6,$a1 +/* bc90: 55a10028 */ bnel $t5,$at,.NB0000bd34 +/* bc94: 8fbf0014 */ lw $ra,0x14($sp) +/* bc98: afa6005c */ sw $a2,0x5c($sp) +/* bc9c: 24c60008 */ addiu $a2,$a2,0x8 +/* bca0: afa600a8 */ sw $a2,0xa8($sp) +/* bca4: 0c002f77 */ jal 0xbddc +/* bca8: afac001c */ sw $t4,0x1c($sp) +/* bcac: 0c002f7b */ jal 0xbdec +/* bcb0: a7a20056 */ sh $v0,0x56($sp) +/* bcb4: 87ad0056 */ lh $t5,0x56($sp) +/* bcb8: 2458ffff */ addiu $t8,$v0,-1 +/* bcbc: 331903ff */ andi $t9,$t8,0x3ff +/* bcc0: 00197880 */ sll $t7,$t9,0x2 +/* bcc4: 3c01f600 */ lui $at,0xf600 +/* bcc8: 25b8ffff */ addiu $t8,$t5,-1 +/* bccc: 8fa5005c */ lw $a1,0x5c($sp) +/* bcd0: 331903ff */ andi $t9,$t8,0x3ff +/* bcd4: 01e17025 */ or $t6,$t7,$at +/* bcd8: 8fac001c */ lw $t4,0x1c($sp) +/* bcdc: 00197b80 */ sll $t7,$t9,0xe +/* bce0: 8fa600a8 */ lw $a2,0xa8($sp) +/* bce4: 01cf6825 */ or $t5,$t6,$t7 +/* bce8: acad0000 */ sw $t5,0x0($a1) +/* bcec: 8d830064 */ lw $v1,0x64($t4) +/* bcf0: 00c02025 */ or $a0,$a2,$zero +/* bcf4: 24c60008 */ addiu $a2,$a2,0x8 +/* bcf8: 84780634 */ lh $t8,0x634($v1) +/* bcfc: 84790630 */ lh $t9,0x630($v1) +/* bd00: 03197021 */ addu $t6,$t8,$t9 +/* bd04: 84790636 */ lh $t9,0x636($v1) +/* bd08: 25cf0001 */ addiu $t7,$t6,0x1 +/* bd0c: 31ed03ff */ andi $t5,$t7,0x3ff +/* bd10: 332e03ff */ andi $t6,$t9,0x3ff +/* bd14: 000e7880 */ sll $t7,$t6,0x2 +/* bd18: 000dc380 */ sll $t8,$t5,0xe +/* bd1c: 01f86825 */ or $t5,$t7,$t8 +/* bd20: acad0004 */ sw $t5,0x4($a1) +/* bd24: 3c19e700 */ lui $t9,0xe700 +/* bd28: ac990000 */ sw $t9,0x0($a0) +/* bd2c: ac800004 */ sw $zero,0x4($a0) +.NB0000bd30: +/* bd30: 8fbf0014 */ lw $ra,0x14($sp) +.NB0000bd34: +/* bd34: 27bd00a8 */ addiu $sp,$sp,0xa8 +/* bd38: 00c01025 */ or $v0,$a2,$zero +/* bd3c: 03e00008 */ jr $ra +/* bd40: 00000000 */ sll $zero,$zero,0x0 +); +#endif + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func0000bd44nb +/* bd44: 3c018006 */ lui $at,0x8006 +/* bd48: 03e00008 */ jr $ra +/* bd4c: ac24ed2c */ sw $a0,-0x12d4($at) +); + +GLOBAL_ASM( +glabel func0000bd50nb +/* bd50: 3c028006 */ lui $v0,0x8006 +/* bd54: 03e00008 */ jr $ra +/* bd58: 8c42ed2c */ lw $v0,-0x12d4($v0) +); + +GLOBAL_ASM( +glabel func0000bd5cnb +/* bd5c: 3c018006 */ lui $at,0x8006 +/* bd60: 03e00008 */ jr $ra +/* bd64: ac24ed28 */ sw $a0,-0x12d8($at) +); + +GLOBAL_ASM( +glabel func0000bd68nb +/* bd68: 3c028006 */ lui $v0,0x8006 +/* bd6c: 03e00008 */ jr $ra +/* bd70: 8c42ed28 */ lw $v0,-0x12d8($v0) +); +#endif void viSetBuf(s16 x, s16 y) { diff --git a/src/lib/lib_0c000.c b/src/lib/lib_0c000.c index b70535b79..aaf78476d 100644 --- a/src/lib/lib_0c000.c +++ b/src/lib/lib_0c000.c @@ -121,8 +121,28 @@ extern u32 _libSegmentStart; extern u32 _libSegmentEnd; void faultproc(void *arg0); +u32 crashRender(OSThread *thread, u32 *callstack, s32 *tracelen); void crashPrintDescription(u32 mask, char *label, struct crashdescription *descriptions); +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func0000c1d0nb +/* c1d0: 27bdffe8 */ addiu $sp,$sp,-24 +/* c1d4: 00802825 */ or $a1,$a0,$zero +/* c1d8: afbf0014 */ sw $ra,0x14($sp) +/* c1dc: 3c048009 */ lui $a0,0x8009 +/* c1e0: 24844e70 */ addiu $a0,$a0,0x4e70 +/* c1e4: 0c004e86 */ jal 0x13a18 +/* c1e8: 24060046 */ addiu $a2,$zero,0x46 +/* c1ec: 8fbf0014 */ lw $ra,0x14($sp) +/* c1f0: 240e0001 */ addiu $t6,$zero,0x1 +/* c1f4: 3c018006 */ lui $at,0x8006 +/* c1f8: a02eed50 */ sb $t6,-0x12b0($at) +/* c1fc: 03e00008 */ jr $ra +/* c200: 27bd0018 */ addiu $sp,$sp,0x18 +); +#endif + void faultCreateThread2(void) { osCreateMesgQueue(&g_FaultMesgQueue, &g_FaultMesg, 1); @@ -134,8 +154,8 @@ void faultproc(void *arg0) { OSMesg msg = 0; OSIntMask mask; - u8 stack2[4]; - u8 stack1[44]; + u32 callstack[10]; + s32 tracelen; static OSThread *thread; static u32 var80094ad0; @@ -151,9 +171,10 @@ void faultproc(void *arg0) osSetIntMask(mask); - // Beta versions have something like this here: - //crashRender(thread, stack1, stack2); - //func00001b1c(true); +#if VERSION == VERSION_NTSC_BETA + crashRender(thread, callstack, &tracelen); + func00001b1c(true); +#endif } } @@ -289,6 +310,252 @@ bool crashIsReturnAddress(u32 *instruction) return false; } +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func0000c4f0nb +/* c4f0: 90820000 */ lbu $v0,0x0($a0) +/* c4f4: 00001825 */ or $v1,$zero,$zero +/* c4f8: 24840001 */ addiu $a0,$a0,0x1 +/* c4fc: 10400009 */ beqz $v0,.NB0000c524 +/* c500: 00000000 */ sll $zero,$zero,0x0 +/* c504: 24630001 */ addiu $v1,$v1,0x1 +.NB0000c508: +/* c508: 28610100 */ slti $at,$v1,0x100 +/* c50c: 10200005 */ beqz $at,.NB0000c524 +/* c510: 00000000 */ sll $zero,$zero,0x0 +/* c514: 90820000 */ lbu $v0,0x0($a0) +/* c518: 24840001 */ addiu $a0,$a0,0x1 +/* c51c: 5440fffa */ bnezl $v0,.NB0000c508 +/* c520: 24630001 */ addiu $v1,$v1,0x1 +.NB0000c524: +/* c524: 03e00008 */ jr $ra +/* c528: 00601025 */ or $v0,$v1,$zero +); +#endif + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func0000c52cnb +/* c52c: 27bdffe0 */ addiu $sp,$sp,-32 +/* c530: afa40020 */ sw $a0,0x20($sp) +/* c534: afbf0014 */ sw $ra,0x14($sp) +/* c538: 3c048009 */ lui $a0,0x8009 +/* c53c: 24847118 */ addiu $a0,$a0,0x7118 +/* c540: 8fa50020 */ lw $a1,0x20($sp) +/* c544: 0c003664 */ jal 0xd990 +/* c548: 24060060 */ addiu $a2,$zero,0x60 +/* c54c: 3c0e8009 */ lui $t6,0x8009 +/* c550: 8dce7118 */ lw $t6,0x7118($t6) +/* c554: 3c028009 */ lui $v0,0x8009 +/* c558: 3c018009 */ lui $at,0x8009 +/* c55c: 3c0f8009 */ lui $t7,0x8009 +/* c560: 24427110 */ addiu $v0,$v0,0x7110 +/* c564: 25e4711c */ addiu $a0,$t7,0x711c +/* c568: ac2e710c */ sw $t6,0x710c($at) +/* c56c: 0c00313c */ jal 0xc4f0 +/* c570: ac440000 */ sw $a0,0x0($v0) +/* c574: 3c048009 */ lui $a0,0x8009 +/* c578: 8c847110 */ lw $a0,0x7110($a0) +/* c57c: 3c018009 */ lui $at,0x8009 +/* c580: 0044c021 */ addu $t8,$v0,$a0 +/* c584: 27190001 */ addiu $t9,$t8,0x1 +/* c588: 0c00313c */ jal 0xc4f0 +/* c58c: ac397114 */ sw $t9,0x7114($at) +/* c590: 3c048009 */ lui $a0,0x8009 +/* c594: 8c847114 */ lw $a0,0x7114($a0) +/* c598: 0c00313c */ jal 0xc4f0 +/* c59c: afa20018 */ sw $v0,0x18($sp) +/* c5a0: 8fa80020 */ lw $t0,0x20($sp) +/* c5a4: 8faa0018 */ lw $t2,0x18($sp) +/* c5a8: 8fbf0014 */ lw $ra,0x14($sp) +/* c5ac: 00484821 */ addu $t1,$v0,$t0 +/* c5b0: 012a1821 */ addu $v1,$t1,$t2 +/* c5b4: 24630006 */ addiu $v1,$v1,0x6 +/* c5b8: 306b0003 */ andi $t3,$v1,0x3 +/* c5bc: 11600003 */ beqz $t3,.NB0000c5cc +/* c5c0: 00602025 */ or $a0,$v1,$zero +/* c5c4: 34640003 */ ori $a0,$v1,0x3 +/* c5c8: 24840001 */ addiu $a0,$a0,0x1 +.NB0000c5cc: +/* c5cc: 00801025 */ or $v0,$a0,$zero +/* c5d0: 03e00008 */ jr $ra +/* c5d4: 27bd0020 */ addiu $sp,$sp,0x20 +); +#endif + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func0000c5d8nb +/* c5d8: 27bdffd8 */ addiu $sp,$sp,-40 +/* c5dc: afb30020 */ sw $s3,0x20($sp) +/* c5e0: afb2001c */ sw $s2,0x1c($sp) +/* c5e4: 3c0200e0 */ lui $v0,0xe0 +/* c5e8: 34530004 */ ori $s3,$v0,0x4 +/* c5ec: afb10018 */ sw $s1,0x18($sp) +/* c5f0: afb00014 */ sw $s0,0x14($sp) +/* c5f4: 3c128009 */ lui $s2,0x8009 +/* c5f8: 00808825 */ or $s1,$a0,$zero +/* c5fc: afbf0024 */ sw $ra,0x24($sp) +/* c600: 02608025 */ or $s0,$s3,$zero +/* c604: 2652710c */ addiu $s2,$s2,0x710c +.NB0000c608: +/* c608: 0c00314b */ jal 0xc52c +/* c60c: 02002025 */ or $a0,$s0,$zero +/* c610: 8e430000 */ lw $v1,0x0($s2) +/* c614: 0223082b */ sltu $at,$s1,$v1 +/* c618: 14200007 */ bnez $at,.NB0000c638 +/* c61c: 00000000 */ sll $zero,$zero,0x0 +/* c620: 14600003 */ bnez $v1,.NB0000c630 +/* c624: 02009825 */ or $s3,$s0,$zero +/* c628: 10000006 */ beqz $zero,.NB0000c644 +/* c62c: 00001025 */ or $v0,$zero,$zero +.NB0000c630: +/* c630: 1000fff5 */ beqz $zero,.NB0000c608 +/* c634: 00408025 */ or $s0,$v0,$zero +.NB0000c638: +/* c638: 0c00314b */ jal 0xc52c +/* c63c: 02602025 */ or $a0,$s3,$zero +/* c640: 24020001 */ addiu $v0,$zero,0x1 +.NB0000c644: +/* c644: 8fbf0024 */ lw $ra,0x24($sp) +/* c648: 8fb00014 */ lw $s0,0x14($sp) +/* c64c: 8fb10018 */ lw $s1,0x18($sp) +/* c650: 8fb2001c */ lw $s2,0x1c($sp) +/* c654: 8fb30020 */ lw $s3,0x20($sp) +/* c658: 03e00008 */ jr $ra +/* c65c: 27bd0028 */ addiu $sp,$sp,0x28 +); +#endif + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func0000c660nb +/* c660: 27bdffe8 */ addiu $sp,$sp,-24 +/* c664: afbf0014 */ sw $ra,0x14($sp) +/* c668: 0c00314b */ jal 0xc52c +/* c66c: 3c0400e0 */ lui $a0,0xe0 +/* c670: 3c028009 */ lui $v0,0x8009 +/* c674: 8c42710c */ lw $v0,0x710c($v0) +/* c678: 8fbf0014 */ lw $ra,0x14($sp) +/* c67c: 3c018264 */ lui $at,0x8264 +/* c680: 342175be */ ori $at,$at,0x75be +/* c684: 00417026 */ xor $t6,$v0,$at +/* c688: 2dc20001 */ sltiu $v0,$t6,0x1 +/* c68c: 03e00008 */ jr $ra +/* c690: 27bd0018 */ addiu $sp,$sp,0x18 +); +#endif + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func0000c694nb +/* c694: 3c078009 */ lui $a3,0x8009 +/* c698: 8ce77110 */ lw $a3,0x7110($a3) +/* c69c: 27bdffe8 */ addiu $sp,$sp,-24 +/* c6a0: afbf0014 */ sw $ra,0x14($sp) +/* c6a4: 00002825 */ or $a1,$zero,$zero +/* c6a8: 00001025 */ or $v0,$zero,$zero +/* c6ac: 24060004 */ addiu $a2,$zero,0x4 +/* c6b0: 00e01825 */ or $v1,$a3,$zero +.NB0000c6b4: +/* c6b4: 90640000 */ lbu $a0,0x0($v1) +/* c6b8: 24420001 */ addiu $v0,$v0,0x1 +/* c6bc: 28810021 */ slti $at,$a0,0x21 +/* c6c0: 14200004 */ bnez $at,.NB0000c6d4 +/* c6c4: 28810080 */ slti $at,$a0,0x80 +/* c6c8: 10200002 */ beqz $at,.NB0000c6d4 +/* c6cc: 00000000 */ sll $zero,$zero,0x0 +/* c6d0: 24a50001 */ addiu $a1,$a1,0x1 +.NB0000c6d4: +/* c6d4: 1446fff7 */ bne $v0,$a2,.NB0000c6b4 +/* c6d8: 24630001 */ addiu $v1,$v1,0x1 +/* c6dc: 14a60007 */ bne $a1,$a2,.NB0000c6fc +/* c6e0: 3c047005 */ lui $a0,0x7005 +/* c6e4: 3c047005 */ lui $a0,0x7005 +/* c6e8: 24843fd0 */ addiu $a0,$a0,0x3fd0 +/* c6ec: 0c00c47d */ jal 0x311f4 +/* c6f0: 00e02825 */ or $a1,$a3,$zero +/* c6f4: 10000004 */ beqz $zero,.NB0000c708 +/* c6f8: 8fbf0014 */ lw $ra,0x14($sp) +.NB0000c6fc: +/* c6fc: 0c00c47d */ jal 0x311f4 +/* c700: 24843fd8 */ addiu $a0,$a0,0x3fd8 +/* c704: 8fbf0014 */ lw $ra,0x14($sp) +.NB0000c708: +/* c708: 27bd0018 */ addiu $sp,$sp,0x18 +/* c70c: 03e00008 */ jr $ra +/* c710: 00000000 */ sll $zero,$zero,0x0 +); +#endif + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func0000c714nb +/* c714: 3c078009 */ lui $a3,0x8009 +/* c718: 8ce77114 */ lw $a3,0x7114($a3) +/* c71c: 27bdffe8 */ addiu $sp,$sp,-24 +/* c720: afbf0014 */ sw $ra,0x14($sp) +/* c724: 00002825 */ or $a1,$zero,$zero +/* c728: 00001025 */ or $v0,$zero,$zero +/* c72c: 24060004 */ addiu $a2,$zero,0x4 +/* c730: 00e01825 */ or $v1,$a3,$zero +.NB0000c734: +/* c734: 90640000 */ lbu $a0,0x0($v1) +/* c738: 24420001 */ addiu $v0,$v0,0x1 +/* c73c: 28810021 */ slti $at,$a0,0x21 +/* c740: 14200004 */ bnez $at,.NB0000c754 +/* c744: 28810080 */ slti $at,$a0,0x80 +/* c748: 10200002 */ beqz $at,.NB0000c754 +/* c74c: 00000000 */ sll $zero,$zero,0x0 +/* c750: 24a50001 */ addiu $a1,$a1,0x1 +.NB0000c754: +/* c754: 1446fff7 */ bne $v0,$a2,.NB0000c734 +/* c758: 24630001 */ addiu $v1,$v1,0x1 +/* c75c: 14a60007 */ bne $a1,$a2,.NB0000c77c +/* c760: 3c047005 */ lui $a0,0x7005 +/* c764: 3c047005 */ lui $a0,0x7005 +/* c768: 24843fdc */ addiu $a0,$a0,0x3fdc +/* c76c: 0c00c47d */ jal 0x311f4 +/* c770: 00e02825 */ or $a1,$a3,$zero +/* c774: 10000004 */ beqz $zero,.NB0000c788 +/* c778: 8fbf0014 */ lw $ra,0x14($sp) +.NB0000c77c: +/* c77c: 0c00c47d */ jal 0x311f4 +/* c780: 24843fe4 */ addiu $a0,$a0,0x3fe4 +/* c784: 8fbf0014 */ lw $ra,0x14($sp) +.NB0000c788: +/* c788: 27bd0018 */ addiu $sp,$sp,0x18 +/* c78c: 03e00008 */ jr $ra +/* c790: 00000000 */ sll $zero,$zero,0x0 +); +#endif + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func0000c794nb +/* c794: 27bdffe8 */ addiu $sp,$sp,-24 +/* c798: afbf0014 */ sw $ra,0x14($sp) +/* c79c: 3c047005 */ lui $a0,0x7005 +/* c7a0: 3c058009 */ lui $a1,0x8009 +/* c7a4: 8ca5710c */ lw $a1,0x710c($a1) +/* c7a8: 0c00c47d */ jal 0x311f4 +/* c7ac: 24843fe8 */ addiu $a0,$a0,0x3fe8 +/* c7b0: 8fbf0014 */ lw $ra,0x14($sp) +/* c7b4: 27bd0018 */ addiu $sp,$sp,0x18 +/* c7b8: 03e00008 */ jr $ra +/* c7bc: 00000000 */ sll $zero,$zero,0x0 +); +#endif + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func0000c7c0nb +/* c7c0: 3c028009 */ lui $v0,0x8009 +/* c7c4: 03e00008 */ jr $ra +/* c7c8: 8c42710c */ lw $v0,0x710c($v0) +); +#endif + u32 crashGetStackEnd(u32 sp, s32 tid) { u32 start; @@ -367,6 +634,7 @@ void crashPrint3Floats(s32 index, f32 value1, f32 value2, f32 value3) crashPrint("\n"); } +#if VERSION >= VERSION_NTSC_1_0 u32 crashRender(OSThread *thread, u32 *callstack, s32 *tracelen) { s32 i; @@ -489,6 +757,432 @@ u32 crashRender(OSThread *thread, u32 *callstack, s32 *tracelen) return 0; } +#else +GLOBAL_ASM( +glabel crashRender +/* ca5c: 27bdff08 */ addiu $sp,$sp,-248 +/* ca60: afa400f8 */ sw $a0,0xf8($sp) +/* ca64: afbf003c */ sw $ra,0x3c($sp) +/* ca68: afb40038 */ sw $s4,0x38($sp) +/* ca6c: 3c047005 */ lui $a0,0x7005 +/* ca70: 00c0a025 */ or $s4,$a2,$zero +/* ca74: afb30034 */ sw $s3,0x34($sp) +/* ca78: afb20030 */ sw $s2,0x30($sp) +/* ca7c: afb1002c */ sw $s1,0x2c($sp) +/* ca80: afb00028 */ sw $s0,0x28($sp) +/* ca84: afa500fc */ sw $a1,0xfc($sp) +/* ca88: 0c00c47d */ jal 0x311f4 +/* ca8c: 24844050 */ addiu $a0,$a0,0x4050 +/* ca90: 8fa200f8 */ lw $v0,0xf8($sp) +/* ca94: 24530020 */ addiu $s3,$v0,0x20 +/* ca98: 8e6400d4 */ lw $a0,0xd4($s3) +/* ca9c: 0c0031f3 */ jal 0xc7cc +/* caa0: 8c450014 */ lw $a1,0x14($v0) +/* caa4: 8e6700e4 */ lw $a3,0xe4($s3) +/* caa8: 2401ffff */ addiu $at,$zero,-1 +/* caac: 3c047005 */ lui $a0,0x7005 +/* cab0: 00e1c824 */ and $t9,$a3,$at +/* cab4: 00409025 */ or $s2,$v0,$zero +/* cab8: 03203825 */ or $a3,$t9,$zero +/* cabc: 2484405c */ addiu $a0,$a0,0x405c +/* cac0: 0c00c47d */ jal 0x311f4 +/* cac4: 00003025 */ or $a2,$zero,$zero +/* cac8: 8e7000d4 */ lw $s0,0xd4($s3) +/* cacc: 0212082b */ sltu $at,$s0,$s2 +/* cad0: 1020000c */ beqz $at,.NB0000cb04 +/* cad4: 3c117005 */ lui $s1,0x7005 +/* cad8: 26314078 */ addiu $s1,$s1,0x4078 +.NB0000cadc: +/* cadc: 0c00311e */ jal 0xc478 +/* cae0: 8e040000 */ lw $a0,0x0($s0) +/* cae4: 10400003 */ beqz $v0,.NB0000caf4 +/* cae8: 02202025 */ or $a0,$s1,$zero +/* caec: 0c00c47d */ jal 0x311f4 +/* caf0: 8e050000 */ lw $a1,0x0($s0) +.NB0000caf4: +/* caf4: 26100004 */ addiu $s0,$s0,0x4 +/* caf8: 0212082b */ sltu $at,$s0,$s2 +/* cafc: 1420fff7 */ bnez $at,.NB0000cadc +/* cb00: 00000000 */ sll $zero,$zero,0x0 +.NB0000cb04: +/* cb04: 3c047005 */ lui $a0,0x7005 +/* cb08: 0c00c47d */ jal 0x311f4 +/* cb0c: 24844080 */ addiu $a0,$a0,0x4080 +/* cb10: 3c047005 */ lui $a0,0x7005 +/* cb14: 0c00c47d */ jal 0x311f4 +/* cb18: 24844084 */ addiu $a0,$a0,0x4084 +/* cb1c: 00002025 */ or $a0,$zero,$zero +/* cb20: 8e650114 */ lw $a1,0x114($s3) +/* cb24: 0c003265 */ jal 0xc994 +/* cb28: 8e66011c */ lw $a2,0x11c($s3) +/* cb2c: 24040002 */ addiu $a0,$zero,0x2 +/* cb30: 8e650124 */ lw $a1,0x124($s3) +/* cb34: 8e66012c */ lw $a2,0x12c($s3) +/* cb38: 0c00327a */ jal 0xc9e8 +/* cb3c: 8e670134 */ lw $a3,0x134($s3) +/* cb40: 24040005 */ addiu $a0,$zero,0x5 +/* cb44: 8e65013c */ lw $a1,0x13c($s3) +/* cb48: 8e660144 */ lw $a2,0x144($s3) +/* cb4c: 0c00327a */ jal 0xc9e8 +/* cb50: 8e67014c */ lw $a3,0x14c($s3) +/* cb54: 24040008 */ addiu $a0,$zero,0x8 +/* cb58: 8e650154 */ lw $a1,0x154($s3) +/* cb5c: 8e66015c */ lw $a2,0x15c($s3) +/* cb60: 0c00327a */ jal 0xc9e8 +/* cb64: 8e670164 */ lw $a3,0x164($s3) +/* cb68: 2404000b */ addiu $a0,$zero,0xb +/* cb6c: 8e65016c */ lw $a1,0x16c($s3) +/* cb70: 8e660174 */ lw $a2,0x174($s3) +/* cb74: 0c00327a */ jal 0xc9e8 +/* cb78: 8e67017c */ lw $a3,0x17c($s3) +/* cb7c: 2404000e */ addiu $a0,$zero,0xe +/* cb80: 8e650184 */ lw $a1,0x184($s3) +/* cb84: 8e66018c */ lw $a2,0x18c($s3) +/* cb88: 0c00327a */ jal 0xc9e8 +/* cb8c: 8e670194 */ lw $a3,0x194($s3) +/* cb90: 24040011 */ addiu $a0,$zero,0x11 +/* cb94: 8e65019c */ lw $a1,0x19c($s3) +/* cb98: 8e6601a4 */ lw $a2,0x1a4($s3) +/* cb9c: 0c00327a */ jal 0xc9e8 +/* cba0: 8e6701ac */ lw $a3,0x1ac($s3) +/* cba4: 24040014 */ addiu $a0,$zero,0x14 +/* cba8: 8e6501b4 */ lw $a1,0x1b4($s3) +/* cbac: 8e6601bc */ lw $a2,0x1bc($s3) +/* cbb0: 0c00327a */ jal 0xc9e8 +/* cbb4: 8e6701c4 */ lw $a3,0x1c4($s3) +/* cbb8: 24040017 */ addiu $a0,$zero,0x17 +/* cbbc: 8e6501cc */ lw $a1,0x1cc($s3) +/* cbc0: 8e6601d4 */ lw $a2,0x1d4($s3) +/* cbc4: 0c00327a */ jal 0xc9e8 +/* cbc8: 8e6701dc */ lw $a3,0x1dc($s3) +/* cbcc: 2404001a */ addiu $a0,$zero,0x1a +/* cbd0: 8e6501e4 */ lw $a1,0x1e4($s3) +/* cbd4: 8e6601ec */ lw $a2,0x1ec($s3) +/* cbd8: 0c00327a */ jal 0xc9e8 +/* cbdc: 8e6701f4 */ lw $a3,0x1f4($s3) +/* cbe0: 2404001d */ addiu $a0,$zero,0x1d +/* cbe4: 8e6501fc */ lw $a1,0x1fc($s3) +/* cbe8: 8e660204 */ lw $a2,0x204($s3) +/* cbec: 0c00327a */ jal 0xc9e8 +/* cbf0: 8e67020c */ lw $a3,0x20c($s3) +/* cbf4: 8e6a0008 */ lw $t2,0x8($s3) +/* cbf8: 8e6b000c */ lw $t3,0xc($s3) +/* cbfc: 8e660000 */ lw $a2,0x0($s3) +/* cc00: 8e670004 */ lw $a3,0x4($s3) +/* cc04: afaa0010 */ sw $t2,0x10($sp) +/* cc08: afab0014 */ sw $t3,0x14($sp) +/* cc0c: 8e6d0014 */ lw $t5,0x14($s3) +/* cc10: 8e6c0010 */ lw $t4,0x10($s3) +/* cc14: 3c047005 */ lui $a0,0x7005 +/* cc18: 2484409c */ addiu $a0,$a0,0x409c +/* cc1c: afad001c */ sw $t5,0x1c($sp) +/* cc20: 0c00c47d */ jal 0x311f4 +/* cc24: afac0018 */ sw $t4,0x18($sp) +/* cc28: 8e6e0020 */ lw $t6,0x20($s3) +/* cc2c: 8e6f0024 */ lw $t7,0x24($s3) +/* cc30: 8e660018 */ lw $a2,0x18($s3) +/* cc34: 8e67001c */ lw $a3,0x1c($s3) +/* cc38: afae0010 */ sw $t6,0x10($sp) +/* cc3c: afaf0014 */ sw $t7,0x14($sp) +/* cc40: 8e79002c */ lw $t9,0x2c($s3) +/* cc44: 8e780028 */ lw $t8,0x28($s3) +/* cc48: 3c047005 */ lui $a0,0x7005 +/* cc4c: 248440c4 */ addiu $a0,$a0,0x40c4 +/* cc50: afb9001c */ sw $t9,0x1c($sp) +/* cc54: 0c00c47d */ jal 0x311f4 +/* cc58: afb80018 */ sw $t8,0x18($sp) +/* cc5c: 8e680038 */ lw $t0,0x38($s3) +/* cc60: 8e69003c */ lw $t1,0x3c($s3) +/* cc64: 8e660030 */ lw $a2,0x30($s3) +/* cc68: 8e670034 */ lw $a3,0x34($s3) +/* cc6c: afa80010 */ sw $t0,0x10($sp) +/* cc70: afa90014 */ sw $t1,0x14($sp) +/* cc74: 8e6b0044 */ lw $t3,0x44($s3) +/* cc78: 8e6a0040 */ lw $t2,0x40($s3) +/* cc7c: 3c047005 */ lui $a0,0x7005 +/* cc80: 248440ec */ addiu $a0,$a0,0x40ec +/* cc84: afab001c */ sw $t3,0x1c($sp) +/* cc88: 0c00c47d */ jal 0x311f4 +/* cc8c: afaa0018 */ sw $t2,0x18($sp) +/* cc90: 8e6c0050 */ lw $t4,0x50($s3) +/* cc94: 8e6d0054 */ lw $t5,0x54($s3) +/* cc98: 8e660048 */ lw $a2,0x48($s3) +/* cc9c: 8e67004c */ lw $a3,0x4c($s3) +/* cca0: afac0010 */ sw $t4,0x10($sp) +/* cca4: afad0014 */ sw $t5,0x14($sp) +/* cca8: 8e6f005c */ lw $t7,0x5c($s3) +/* ccac: 8e6e0058 */ lw $t6,0x58($s3) +/* ccb0: 3c047005 */ lui $a0,0x7005 +/* ccb4: 24844114 */ addiu $a0,$a0,0x4114 +/* ccb8: afaf001c */ sw $t7,0x1c($sp) +/* ccbc: 0c00c47d */ jal 0x311f4 +/* ccc0: afae0018 */ sw $t6,0x18($sp) +/* ccc4: 8e780068 */ lw $t8,0x68($s3) +/* ccc8: 8e79006c */ lw $t9,0x6c($s3) +/* cccc: 8e660060 */ lw $a2,0x60($s3) +/* ccd0: 8e670064 */ lw $a3,0x64($s3) +/* ccd4: afb80010 */ sw $t8,0x10($sp) +/* ccd8: afb90014 */ sw $t9,0x14($sp) +/* ccdc: 8e690074 */ lw $t1,0x74($s3) +/* cce0: 8e680070 */ lw $t0,0x70($s3) +/* cce4: 3c047005 */ lui $a0,0x7005 +/* cce8: 2484413c */ addiu $a0,$a0,0x413c +/* ccec: afa9001c */ sw $t1,0x1c($sp) +/* ccf0: 0c00c47d */ jal 0x311f4 +/* ccf4: afa80018 */ sw $t0,0x18($sp) +/* ccf8: 8e6a0080 */ lw $t2,0x80($s3) +/* ccfc: 8e6b0084 */ lw $t3,0x84($s3) +/* cd00: 8e660078 */ lw $a2,0x78($s3) +/* cd04: 8e67007c */ lw $a3,0x7c($s3) +/* cd08: afaa0010 */ sw $t2,0x10($sp) +/* cd0c: afab0014 */ sw $t3,0x14($sp) +/* cd10: 8e6d008c */ lw $t5,0x8c($s3) +/* cd14: 8e6c0088 */ lw $t4,0x88($s3) +/* cd18: 3c047005 */ lui $a0,0x7005 +/* cd1c: 24844164 */ addiu $a0,$a0,0x4164 +/* cd20: afad001c */ sw $t5,0x1c($sp) +/* cd24: 0c00c47d */ jal 0x311f4 +/* cd28: afac0018 */ sw $t4,0x18($sp) +/* cd2c: 8e6e0098 */ lw $t6,0x98($s3) +/* cd30: 8e6f009c */ lw $t7,0x9c($s3) +/* cd34: 8e660090 */ lw $a2,0x90($s3) +/* cd38: 8e670094 */ lw $a3,0x94($s3) +/* cd3c: afae0010 */ sw $t6,0x10($sp) +/* cd40: afaf0014 */ sw $t7,0x14($sp) +/* cd44: 8e7900a4 */ lw $t9,0xa4($s3) +/* cd48: 8e7800a0 */ lw $t8,0xa0($s3) +/* cd4c: 3c047005 */ lui $a0,0x7005 +/* cd50: 2484418c */ addiu $a0,$a0,0x418c +/* cd54: afb9001c */ sw $t9,0x1c($sp) +/* cd58: 0c00c47d */ jal 0x311f4 +/* cd5c: afb80018 */ sw $t8,0x18($sp) +/* cd60: 8e6800b0 */ lw $t0,0xb0($s3) +/* cd64: 8e6900b4 */ lw $t1,0xb4($s3) +/* cd68: 8e6600a8 */ lw $a2,0xa8($s3) +/* cd6c: 8e6700ac */ lw $a3,0xac($s3) +/* cd70: afa80010 */ sw $t0,0x10($sp) +/* cd74: afa90014 */ sw $t1,0x14($sp) +/* cd78: 8e6b00bc */ lw $t3,0xbc($s3) +/* cd7c: 8e6a00b8 */ lw $t2,0xb8($s3) +/* cd80: 3c047005 */ lui $a0,0x7005 +/* cd84: 248441b4 */ addiu $a0,$a0,0x41b4 +/* cd88: afab001c */ sw $t3,0x1c($sp) +/* cd8c: 0c00c47d */ jal 0x311f4 +/* cd90: afaa0018 */ sw $t2,0x18($sp) +/* cd94: 8e6c00c8 */ lw $t4,0xc8($s3) +/* cd98: 8e6d00cc */ lw $t5,0xcc($s3) +/* cd9c: 8e6600c0 */ lw $a2,0xc0($s3) +/* cda0: 8e6700c4 */ lw $a3,0xc4($s3) +/* cda4: afac0010 */ sw $t4,0x10($sp) +/* cda8: afad0014 */ sw $t5,0x14($sp) +/* cdac: 8e6f00d4 */ lw $t7,0xd4($s3) +/* cdb0: 8e6e00d0 */ lw $t6,0xd0($s3) +/* cdb4: 3c047005 */ lui $a0,0x7005 +/* cdb8: 248441dc */ addiu $a0,$a0,0x41dc +/* cdbc: afaf001c */ sw $t7,0x1c($sp) +/* cdc0: 0c00c47d */ jal 0x311f4 +/* cdc4: afae0018 */ sw $t6,0x18($sp) +/* cdc8: 8e7800e0 */ lw $t8,0xe0($s3) +/* cdcc: 8e7900e4 */ lw $t9,0xe4($s3) +/* cdd0: 3c047005 */ lui $a0,0x7005 +/* cdd4: 8e6600d8 */ lw $a2,0xd8($s3) +/* cdd8: 8e6700dc */ lw $a3,0xdc($s3) +/* cddc: 24844204 */ addiu $a0,$a0,0x4204 +/* cde0: afb80010 */ sw $t8,0x10($sp) +/* cde4: 0c00c47d */ jal 0x311f4 +/* cde8: afb90014 */ sw $t9,0x14($sp) +/* cdec: 8fa800f8 */ lw $t0,0xf8($sp) +/* cdf0: 8e69010c */ lw $t1,0x10c($s3) +/* cdf4: 8e6600fc */ lw $a2,0xfc($s3) +/* cdf8: 8e670100 */ lw $a3,0x100($s3) +/* cdfc: 8d050014 */ lw $a1,0x14($t0) +/* ce00: afa90010 */ sw $t1,0x10($sp) +/* ce04: 8e6a0104 */ lw $t2,0x104($s3) +/* ce08: 3c047005 */ lui $a0,0x7005 +/* ce0c: 24844220 */ addiu $a0,$a0,0x4220 +/* ce10: afaa0014 */ sw $t2,0x14($sp) +/* ce14: 8e6b00f8 */ lw $t3,0xf8($s3) +/* ce18: 0c00c47d */ jal 0x311f4 +/* ce1c: afab0018 */ sw $t3,0x18($sp) +/* ce20: 8e6500fc */ lw $a1,0xfc($s3) +/* ce24: 3c047005 */ lui $a0,0x7005 +/* ce28: 24844258 */ addiu $a0,$a0,0x4258 +/* ce2c: 8cac0008 */ lw $t4,0x8($a1) +/* ce30: 8ca60000 */ lw $a2,0x0($a1) +/* ce34: 8ca70004 */ lw $a3,0x4($a1) +/* ce38: afac0010 */ sw $t4,0x10($sp) +/* ce3c: 8cad000c */ lw $t5,0xc($a1) +/* ce40: 00a01025 */ or $v0,$a1,$zero +/* ce44: 0c00c47d */ jal 0x311f4 +/* ce48: afad0014 */ sw $t5,0x14($sp) +/* ce4c: 3c057005 */ lui $a1,0x7005 +/* ce50: 3c068006 */ lui $a2,0x8006 +/* ce54: 24c6ed5c */ addiu $a2,$a2,-4772 +/* ce58: 24a5427c */ addiu $a1,$a1,0x427c +/* ce5c: 0c00342d */ jal 0xd0b4 +/* ce60: 8e640100 */ lw $a0,0x100($s3) +/* ce64: 3c047005 */ lui $a0,0x7005 +/* ce68: 0c00c47d */ jal 0x311f4 +/* ce6c: 24844284 */ addiu $a0,$a0,0x4284 +/* ce70: 3c057005 */ lui $a1,0x7005 +/* ce74: 3c068006 */ lui $a2,0x8006 +/* ce78: 24c6f020 */ addiu $a2,$a2,-4064 +/* ce7c: 24a54288 */ addiu $a1,$a1,0x4288 +/* ce80: 0c00342d */ jal 0xd0b4 +/* ce84: 8e64010c */ lw $a0,0x10c($s3) +/* ce88: 3c047005 */ lui $a0,0x7005 +/* ce8c: 0c00c47d */ jal 0x311f4 +/* ce90: 24844290 */ addiu $a0,$a0,0x4290 +/* ce94: 8e6400d4 */ lw $a0,0xd4($s3) +/* ce98: 8fb800f8 */ lw $t8,0xf8($sp) +/* ce9c: 00009025 */ or $s2,$zero,$zero +/* cea0: 00808825 */ or $s1,$a0,$zero +/* cea4: 0c0031f3 */ jal 0xc7cc +/* cea8: 8f050014 */ lw $a1,0x14($t8) +/* ceac: 8fb900f8 */ lw $t9,0xf8($sp) +/* ceb0: afa20060 */ sw $v0,0x60($sp) +/* ceb4: 02202025 */ or $a0,$s1,$zero +/* ceb8: 0c003212 */ jal 0xc848 +/* cebc: 8f250014 */ lw $a1,0x14($t9) +/* cec0: afa20064 */ sw $v0,0x64($sp) +/* cec4: 8e7000fc */ lw $s0,0xfc($s3) +/* cec8: 3c047005 */ lui $a0,0x7005 +/* cecc: ae800000 */ sw $zero,0x0($s4) +/* ced0: 0c00c47d */ jal 0x311f4 +/* ced4: 24844294 */ addiu $a0,$a0,0x4294 +.NB0000ced8: +/* ced8: 3c057000 */ lui $a1,0x7000 +/* cedc: 24a51050 */ addiu $a1,$a1,0x1050 +/* cee0: 02002025 */ or $a0,$s0,$zero +/* cee4: 02203025 */ or $a2,$s1,$zero +/* cee8: 0c0030d4 */ jal 0xc350 +/* ceec: 27a7006c */ addiu $a3,$sp,0x6c +/* cef0: 3c047005 */ lui $a0,0x7005 +/* cef4: 00408825 */ or $s1,$v0,$zero +/* cef8: 2484429c */ addiu $a0,$a0,0x429c +/* cefc: 0c00c47d */ jal 0x311f4 +/* cf00: 02002825 */ or $a1,$s0,$zero +/* cf04: 8e890000 */ lw $t1,0x0($s4) +/* cf08: 8fa800fc */ lw $t0,0xfc($sp) +/* cf0c: 24010004 */ addiu $at,$zero,0x4 +/* cf10: 00095080 */ sll $t2,$t1,0x2 +/* cf14: 010a5821 */ addu $t3,$t0,$t2 +/* cf18: ad700000 */ sw $s0,0x0($t3) +/* cf1c: 8e8c0000 */ lw $t4,0x0($s4) +/* cf20: 3c047005 */ lui $a0,0x7005 +/* cf24: 258d0001 */ addiu $t5,$t4,0x1 +/* cf28: 16410003 */ bne $s2,$at,.NB0000cf38 +/* cf2c: ae8d0000 */ sw $t5,0x0($s4) +/* cf30: 0c00c47d */ jal 0x311f4 +/* cf34: 248442a4 */ addiu $a0,$a0,0x42a4 +.NB0000cf38: +/* cf38: 16200002 */ bnez $s1,.NB0000cf44 +/* cf3c: 8fb800e8 */ lw $t8,0xe8($sp) +/* cf40: 8e7100d4 */ lw $s1,0xd4($s3) +.NB0000cf44: +/* cf44: 17000003 */ bnez $t8,.NB0000cf54 +/* cf48: 8faa0064 */ lw $t2,0x64($sp) +/* cf4c: 10000003 */ beqz $zero,.NB0000cf5c +/* cf50: 8e7000e4 */ lw $s0,0xe4($s3) +.NB0000cf54: +/* cf54: 8fb900e8 */ lw $t9,0xe8($sp) +/* cf58: 8f300000 */ lw $s0,0x0($t9) +.NB0000cf5c: +/* cf5c: 022a082b */ sltu $at,$s1,$t2 +/* cf60: 1420000a */ bnez $at,.NB0000cf8c +/* cf64: 8fa30060 */ lw $v1,0x60($sp) +/* cf68: 0223082b */ sltu $at,$s1,$v1 +/* cf6c: 10200007 */ beqz $at,.NB0000cf8c +/* cf70: 262b0010 */ addiu $t3,$s1,0x10 +/* cf74: 11630005 */ beq $t3,$v1,.NB0000cf8c +/* cf78: 2a420009 */ slti $v0,$s2,0x9 +/* cf7c: 12000003 */ beqz $s0,.NB0000cf8c +/* cf80: 00000000 */ sll $zero,$zero,0x0 +/* cf84: 1440ffd4 */ bnez $v0,.NB0000ced8 +/* cf88: 26520001 */ addiu $s2,$s2,0x1 +.NB0000cf8c: +/* cf8c: 3c0d8006 */ lui $t5,0x8006 +/* cf90: 91aded50 */ lbu $t5,-0x12b0($t5) +/* cf94: 240c001f */ addiu $t4,$zero,0x1f +/* cf98: 3c018006 */ lui $at,0x8006 +/* cf9c: 11a00024 */ beqz $t5,.NB0000d030 +/* cfa0: a42ced58 */ sh $t4,-0x12a8($at) +/* cfa4: 3c058006 */ lui $a1,0x8006 +/* cfa8: 24a5ed54 */ addiu $a1,$a1,-4780 +/* cfac: 3c028009 */ lui $v0,0x8009 +/* cfb0: a4a00000 */ sh $zero,0x0($a1) +/* cfb4: 24424e70 */ addiu $v0,$v0,0x4e70 +/* cfb8: 00001825 */ or $v1,$zero,$zero +/* cfbc: 24040047 */ addiu $a0,$zero,0x47 +.NB0000cfc0: +/* cfc0: 904e0000 */ lbu $t6,0x0($v0) +/* cfc4: 51c00005 */ beqzl $t6,.NB0000cfdc +/* cfc8: 240f0047 */ addiu $t7,$zero,0x47 +/* cfcc: 24630001 */ addiu $v1,$v1,0x1 +/* cfd0: 1464fffb */ bne $v1,$a0,.NB0000cfc0 +/* cfd4: 24420001 */ addiu $v0,$v0,0x1 +/* cfd8: 240f0047 */ addiu $t7,$zero,0x47 +.NB0000cfdc: +/* cfdc: 01e3c023 */ subu $t8,$t7,$v1 +/* cfe0: 07010003 */ bgez $t8,.NB0000cff0 +/* cfe4: 00184043 */ sra $t0,$t8,0x1 +/* cfe8: 27010001 */ addiu $at,$t8,0x1 +/* cfec: 00014043 */ sra $t0,$at,0x1 +.NB0000cff0: +/* cff0: a4a80000 */ sh $t0,0x0($a1) +/* cff4: 18600020 */ blez $v1,.NB0000d078 +/* cff8: 00008025 */ or $s0,$zero,$zero +/* cffc: 3c028009 */ lui $v0,0x8009 +/* d000: 24424e70 */ addiu $v0,$v0,0x4e70 +.NB0000d004: +/* d004: 90440000 */ lbu $a0,0x0($v0) +/* d008: afa20048 */ sw $v0,0x48($sp) +/* d00c: 0c003481 */ jal 0xd204 +/* d010: afa30050 */ sw $v1,0x50($sp) +/* d014: 8fa30050 */ lw $v1,0x50($sp) +/* d018: 8fa20048 */ lw $v0,0x48($sp) +/* d01c: 26100001 */ addiu $s0,$s0,0x1 +/* d020: 1603fff8 */ bne $s0,$v1,.NB0000d004 +/* d024: 24420001 */ addiu $v0,$v0,0x1 +/* d028: 10000013 */ beqz $zero,.NB0000d078 +/* d02c: 00000000 */ sll $zero,$zero,0x0 +.NB0000d030: +/* d030: 3c058006 */ lui $a1,0x8006 +/* d034: 24a5ed54 */ addiu $a1,$a1,-4780 +/* d038: 24090020 */ addiu $t1,$zero,0x20 +/* d03c: a4a90000 */ sh $t1,0x0($a1) +/* d040: 0c003481 */ jal 0xd204 +/* d044: 24040043 */ addiu $a0,$zero,0x43 +/* d048: 0c003481 */ jal 0xd204 +/* d04c: 24040052 */ addiu $a0,$zero,0x52 +/* d050: 0c003481 */ jal 0xd204 +/* d054: 24040041 */ addiu $a0,$zero,0x41 +/* d058: 0c003481 */ jal 0xd204 +/* d05c: 24040053 */ addiu $a0,$zero,0x53 +/* d060: 0c003481 */ jal 0xd204 +/* d064: 24040048 */ addiu $a0,$zero,0x48 +/* d068: 0c003481 */ jal 0xd204 +/* d06c: 24040045 */ addiu $a0,$zero,0x45 +/* d070: 0c003481 */ jal 0xd204 +/* d074: 24040044 */ addiu $a0,$zero,0x44 +.NB0000d078: +/* d078: 3c047005 */ lui $a0,0x7005 +/* d07c: 0c00c47d */ jal 0x311f4 +/* d080: 248442b0 */ addiu $a0,$a0,0x42b0 +/* d084: 3c047005 */ lui $a0,0x7005 +/* d088: 0c00c47d */ jal 0x311f4 +/* d08c: 248442b4 */ addiu $a0,$a0,0x42b4 +/* d090: 8fbf003c */ lw $ra,0x3c($sp) +/* d094: 8fb00028 */ lw $s0,0x28($sp) +/* d098: 8fb1002c */ lw $s1,0x2c($sp) +/* d09c: 8fb20030 */ lw $s2,0x30($sp) +/* d0a0: 8fb30034 */ lw $s3,0x34($sp) +/* d0a4: 8fb40038 */ lw $s4,0x38($sp) +/* d0a8: 27bd00f8 */ addiu $sp,$sp,0xf8 +/* d0ac: 03e00008 */ jr $ra +/* d0b0: 00001025 */ or $v0,$zero,$zero +); +#endif void crashPrintDescription(u32 mask, char *label, struct crashdescription *description) { @@ -583,6 +1277,7 @@ void crashScroll(s32 numlines) } } +#if VERSION >= VERSION_NTSC_1_0 void func0000cdc8(s32 x, s32 y, char c) { s32 i; @@ -650,7 +1345,103 @@ void func0000cdc8(s32 x, s32 y, char c) } } } +#else +GLOBAL_ASM( +glabel func0000cdc8 +/* d398: 27bdffe8 */ addiu $sp,$sp,-24 +/* d39c: afbf0014 */ sw $ra,0x14($sp) +/* d3a0: afa40018 */ sw $a0,0x18($sp) +/* d3a4: afa5001c */ sw $a1,0x1c($sp) +/* d3a8: 0c002f77 */ jal 0xbddc +/* d3ac: afa60020 */ sw $a2,0x20($sp) +/* d3b0: 93a30023 */ lbu $v1,0x23($sp) +/* d3b4: 8fa50018 */ lw $a1,0x18($sp) +/* d3b8: 8fa6001c */ lw $a2,0x1c($sp) +/* d3bc: 54600003 */ bnezl $v1,.NB0000d3cc +/* d3c0: 28610020 */ slti $at,$v1,0x20 +/* d3c4: 24030020 */ addiu $v1,$zero,0x20 +/* d3c8: 28610020 */ slti $at,$v1,0x20 +.NB0000d3cc: +/* d3cc: 1420003d */ bnez $at,.NB0000d4c4 +/* d3d0: 2861007f */ slti $at,$v1,0x7f +/* d3d4: 1020003b */ beqz $at,.NB0000d4c4 +/* d3d8: 38490280 */ xori $t1,$v0,0x280 +/* d3dc: 2d290001 */ sltiu $t1,$t1,0x1 +/* d3e0: 1120000a */ beqz $t1,.NB0000d40c +/* d3e4: 00006025 */ or $t4,$zero,$zero +/* d3e8: 00c20019 */ multu $a2,$v0 +/* d3ec: 3c188006 */ lui $t8,0x8006 +/* d3f0: 8f18f2b4 */ lw $t8,-0xd4c($t8) +/* d3f4: 00057880 */ sll $t7,$a1,0x2 +/* d3f8: 01f8c821 */ addu $t9,$t7,$t8 +/* d3fc: 00007012 */ mflo $t6 +/* d400: 000e7840 */ sll $t7,$t6,0x1 +/* d404: 10000009 */ beqz $zero,.NB0000d42c +/* d408: 032f2021 */ addu $a0,$t9,$t7 +.NB0000d40c: +/* d40c: 00c20019 */ multu $a2,$v0 +/* d410: 3c0e8006 */ lui $t6,0x8006 +/* d414: 8dcef2b4 */ lw $t6,-0xd4c($t6) +/* d418: 0005c040 */ sll $t8,$a1,0x1 +/* d41c: 030ec821 */ addu $t9,$t8,$t6 +/* d420: 00007812 */ mflo $t7 +/* d424: 000fc040 */ sll $t8,$t7,0x1 +/* d428: 03382021 */ addu $a0,$t9,$t8 +.NB0000d42c: +/* d42c: 00037080 */ sll $t6,$v1,0x2 +/* d430: 3c068006 */ lui $a2,0x8006 +/* d434: 00ce3021 */ addu $a2,$a2,$t6 +/* d438: 8cc6f0b8 */ lw $a2,-0xf48($a2) +/* d43c: 00026840 */ sll $t5,$v0,0x1 +/* d440: 241f0007 */ addiu $ra,$zero,0x7 +/* d444: 240b0004 */ addiu $t3,$zero,0x4 +/* d448: 3c0a8000 */ lui $t2,0x8000 +/* d44c: 24080001 */ addiu $t0,$zero,0x1 +/* d450: 3407ffff */ dli $a3,0xffff +/* d454: 00002825 */ or $a1,$zero,$zero +.NB0000d458: +/* d458: 00ca1824 */ and $v1,$a2,$t2 +/* d45c: 10600003 */ beqz $v1,.NB0000d46c +/* d460: 00067840 */ sll $t7,$a2,0x1 +/* d464: 10000002 */ beqz $zero,.NB0000d470 +/* d468: a4870000 */ sh $a3,0x0($a0) +.NB0000d46c: +/* d46c: a4880000 */ sh $t0,0x0($a0) +.NB0000d470: +/* d470: 11200006 */ beqz $t1,.NB0000d48c +/* d474: 24a50001 */ addiu $a1,$a1,0x1 +/* d478: 50600004 */ beqzl $v1,.NB0000d48c +/* d47c: a4880002 */ sh $t0,0x2($a0) +/* d480: 10000002 */ beqz $zero,.NB0000d48c +/* d484: a4870002 */ sh $a3,0x2($a0) +/* d488: a4880002 */ sh $t0,0x2($a0) +.NB0000d48c: +/* d48c: 11200002 */ beqz $t1,.NB0000d498 +/* d490: 24840002 */ addiu $a0,$a0,0x2 +/* d494: 24840002 */ addiu $a0,$a0,0x2 +.NB0000d498: +/* d498: 14abffef */ bne $a1,$t3,.NB0000d458 +/* d49c: 01e03025 */ or $a2,$t7,$zero +/* d4a0: 11200004 */ beqz $t1,.NB0000d4b4 +/* d4a4: 258c0001 */ addiu $t4,$t4,0x1 +/* d4a8: 008d2021 */ addu $a0,$a0,$t5 +/* d4ac: 10000003 */ beqz $zero,.NB0000d4bc +/* d4b0: 2484fff0 */ addiu $a0,$a0,-16 +.NB0000d4b4: +/* d4b4: 008d2021 */ addu $a0,$a0,$t5 +/* d4b8: 2484fff8 */ addiu $a0,$a0,-8 +.NB0000d4bc: +/* d4bc: 559fffe6 */ bnel $t4,$ra,.NB0000d458 +/* d4c0: 00002825 */ or $a1,$zero,$zero +.NB0000d4c4: +/* d4c4: 8fbf0014 */ lw $ra,0x14($sp) +/* d4c8: 27bd0018 */ addiu $sp,$sp,0x18 +/* d4cc: 03e00008 */ jr $ra +/* d4d0: 00000000 */ sll $zero,$zero,0x0 +); +#endif +#if VERSION >= VERSION_NTSC_1_0 void crashReset(void) { g_CrashCharBuffer = NULL; @@ -667,6 +1458,38 @@ void crashReset(void) } } } +#else +GLOBAL_ASM( +glabel crashReset +/* d4d4: 3c048006 */ lui $a0,0x8006 +/* d4d8: 3c0e8009 */ lui $t6,0x8009 +/* d4dc: 2484f134 */ addiu $a0,$a0,-3788 +/* d4e0: 25ce7178 */ addiu $t6,$t6,0x7178 +/* d4e4: 11c00012 */ beqz $t6,.NB0000d530 +/* d4e8: ac8e0000 */ sw $t6,0x0($a0) +/* d4ec: 00001025 */ or $v0,$zero,$zero +/* d4f0: 24060020 */ addiu $a2,$zero,0x20 +/* d4f4: 24050047 */ addiu $a1,$zero,0x47 +/* d4f8: 00001825 */ or $v1,$zero,$zero +.NB0000d4fc: +/* d4fc: 0002c8c0 */ sll $t9,$v0,0x3 +/* d500: 8c980000 */ lw $t8,0x0($a0) +/* d504: 0322c821 */ addu $t9,$t9,$v0 +/* d508: 0019c8c0 */ sll $t9,$t9,0x3 +/* d50c: 0322c823 */ subu $t9,$t9,$v0 +/* d510: 03194021 */ addu $t0,$t8,$t9 +/* d514: 01034821 */ addu $t1,$t0,$v1 +/* d518: 24630001 */ addiu $v1,$v1,0x1 +/* d51c: 1465fff7 */ bne $v1,$a1,.NB0000d4fc +/* d520: a1200000 */ sb $zero,0x0($t1) +/* d524: 24420001 */ addiu $v0,$v0,0x1 +/* d528: 5446fff4 */ bnel $v0,$a2,.NB0000d4fc +/* d52c: 00001825 */ or $v1,$zero,$zero +.NB0000d530: +/* d530: 03e00008 */ jr $ra +/* d534: 00000000 */ sll $zero,$zero,0x0 +); +#endif void func0000cf54(u16 *fb) { @@ -688,3 +1511,31 @@ void func0000cf54(u16 *fb) } } } + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func0000d678nb +/* d678: 00000000 */ sll $zero,$zero,0x0 +/* d67c: 00000000 */ sll $zero,$zero,0x0 +/* d680: 03e02025 */ or $a0,$ra,$zero +/* d684: 2402ffff */ addiu $v0,$zero,-1 +/* d688: 8c880000 */ lw $t0,0x0($a0) +/* d68c: 240a27bd */ addiu $t2,$zero,0x27bd +/* d690: 00084c02 */ srl $t1,$t0,0x10 +/* d694: 112a000a */ beq $t1,$t2,.NB0000d6c0 +/* d698: 00000000 */ sll $zero,$zero,0x0 +/* d69c: 340aafbf */ dli $t2,0xafbf +/* d6a0: 512a0004 */ beql $t1,$t2,.NB0000d6b4 +/* d6a4: 00085400 */ sll $t2,$t0,0x10 +/* d6a8: 080035a2 */ j 0xd688 +/* d6ac: 2484fffc */ addiu $a0,$a0,-4 +/* d6b0: 00085400 */ sll $t2,$t0,0x10 +.NB0000d6b4: +/* d6b4: 000a5403 */ sra $t2,$t2,0x10 +/* d6b8: 015d5020 */ add $t2,$t2,$sp +/* d6bc: 8d420000 */ lw $v0,0x0($t2) +.NB0000d6c0: +/* d6c0: 03e00008 */ jr $ra +/* d6c4: 00000000 */ sll $zero,$zero,0x0 +); +#endif diff --git a/src/lib/lib_0e9d0.c b/src/lib/lib_0e9d0.c index 24615bf69..f8d2c8eb5 100644 --- a/src/lib/lib_0e9d0.c +++ b/src/lib/lib_0e9d0.c @@ -676,6 +676,7 @@ glabel func0000e9d0 /* e9d8: 8c424eb4 */ lw $v0,%lo(var80094eb4)($v0) ); +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func0000e9dc /* e9dc: 27bdffe8 */ addiu $sp,$sp,-24 @@ -696,7 +697,21 @@ glabel func0000e9dc /* ea14: 03e00008 */ jr $ra /* ea18: 00000000 */ nop ); +#else +GLOBAL_ASM( +glabel func0000e9dc +/* f1bc: 27bdffe8 */ addiu $sp,$sp,-24 +/* f1c0: afbf0014 */ sw $ra,0x14($sp) +/* f1c4: 0c00d4af */ jal 0x352bc +/* f1c8: 00002025 */ or $a0,$zero,$zero +/* f1cc: 8fbf0014 */ lw $ra,0x14($sp) +/* f1d0: 27bd0018 */ addiu $sp,$sp,0x18 +/* f1d4: 03e00008 */ jr $ra +/* f1d8: 00000000 */ sll $zero,$zero,0x0 +); +#endif +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel audioSetSfxVolume /* ea1c: 27bdffe0 */ addiu $sp,$sp,-32 @@ -727,7 +742,36 @@ glabel audioSetSfxVolume /* ea78: 03e00008 */ jr $ra /* ea7c: 27bd0020 */ addiu $sp,$sp,0x20 ); +#else +GLOBAL_ASM( +glabel audioSetSfxVolume +/* f1dc: 27bdffe0 */ addiu $sp,$sp,-32 +/* f1e0: afb10018 */ sw $s1,0x18($sp) +/* f1e4: afb00014 */ sw $s0,0x14($sp) +/* f1e8: 3091ffff */ andi $s1,$a0,0xffff +/* f1ec: afbf001c */ sw $ra,0x1c($sp) +/* f1f0: afa40020 */ sw $a0,0x20($sp) +/* f1f4: 00008025 */ or $s0,$zero,$zero +.NB0000f1f8: +/* f1f8: 320400ff */ andi $a0,$s0,0xff +/* f1fc: 0c00d4c0 */ jal 0x35300 +/* f200: 3225ffff */ andi $a1,$s1,0xffff +/* f204: 26100001 */ addiu $s0,$s0,0x1 +/* f208: 320e00ff */ andi $t6,$s0,0xff +/* f20c: 29c10009 */ slti $at,$t6,0x9 +/* f210: 1420fff9 */ bnez $at,.NB0000f1f8 +/* f214: 01c08025 */ or $s0,$t6,$zero +/* f218: 8fbf001c */ lw $ra,0x1c($sp) +/* f21c: 3c018006 */ lui $at,0x8006 +/* f220: a431f6e8 */ sh $s1,-0x918($at) +/* f224: 8fb10018 */ lw $s1,0x18($sp) +/* f228: 8fb00014 */ lw $s0,0x14($sp) +/* f22c: 03e00008 */ jr $ra +/* f230: 27bd0020 */ addiu $sp,$sp,0x20 +); +#endif +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func0000ea80 /* ea80: 27bdffe0 */ addiu $sp,$sp,-32 @@ -756,6 +800,32 @@ glabel func0000ea80 /* ead4: 03e00008 */ jr $ra /* ead8: 27bd0020 */ addiu $sp,$sp,0x20 ); +#else +GLOBAL_ASM( +glabel func0000ea80 +/* f234: 27bdffe0 */ addiu $sp,$sp,-32 +/* f238: afb10018 */ sw $s1,0x18($sp) +/* f23c: afb00014 */ sw $s0,0x14($sp) +/* f240: 3091ffff */ andi $s1,$a0,0xffff +/* f244: afbf001c */ sw $ra,0x1c($sp) +/* f248: afa40020 */ sw $a0,0x20($sp) +/* f24c: 00008025 */ or $s0,$zero,$zero +.NB0000f250: +/* f250: 320400ff */ andi $a0,$s0,0xff +/* f254: 0c00d4c0 */ jal 0x35300 +/* f258: 3225ffff */ andi $a1,$s1,0xffff +/* f25c: 26100001 */ addiu $s0,$s0,0x1 +/* f260: 320e00ff */ andi $t6,$s0,0xff +/* f264: 29c10009 */ slti $at,$t6,0x9 +/* f268: 1420fff9 */ bnez $at,.NB0000f250 +/* f26c: 01c08025 */ or $s0,$t6,$zero +/* f270: 8fbf001c */ lw $ra,0x1c($sp) +/* f274: 8fb00014 */ lw $s0,0x14($sp) +/* f278: 8fb10018 */ lw $s1,0x18($sp) +/* f27c: 03e00008 */ jr $ra +/* f280: 27bd0020 */ addiu $sp,$sp,0x20 +); +#endif GLOBAL_ASM( glabel func0000eadc @@ -781,6 +851,7 @@ glabel func0000eadc /* eb28: ac430018 */ sw $v1,0x18($v0) ); +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func0000eb2c /* eb2c: 27bdfe90 */ addiu $sp,$sp,-368 @@ -911,7 +982,141 @@ glabel func0000eb2c /* ed0c: 03e00008 */ jr $ra /* ed10: 27bd0170 */ addiu $sp,$sp,0x170 ); +#else +GLOBAL_ASM( +glabel func0000eb2c +/* f2d4: 27bdfe90 */ addiu $sp,$sp,-368 +/* f2d8: afb20028 */ sw $s2,0x28($sp) +/* f2dc: 03a09025 */ or $s2,$sp,$zero +/* f2e0: afb10024 */ sw $s1,0x24($sp) +/* f2e4: afb00020 */ sw $s0,0x20($sp) +/* f2e8: 2652006b */ addiu $s2,$s2,0x6b +/* f2ec: 3c118009 */ lui $s1,0x8009 +/* f2f0: 364e000f */ ori $t6,$s2,0xf +/* f2f4: 3c10007c */ lui $s0,0x7c +/* f2f8: 26317e24 */ addiu $s1,$s1,0x7e24 +/* f2fc: afbf0034 */ sw $ra,0x34($sp) +/* f300: 2610e940 */ addiu $s0,$s0,-5824 +/* f304: 39c4000f */ xori $a0,$t6,0xf +/* f308: afb40030 */ sw $s4,0x30($sp) +/* f30c: afb3002c */ sw $s3,0x2c($sp) +/* f310: ae200000 */ sw $zero,0x0($s1) +/* f314: 00809025 */ or $s2,$a0,$zero +/* f318: 02002825 */ or $a1,$s0,$zero +/* f31c: 0c003664 */ jal 0xd990 +/* f320: 24060100 */ addiu $a2,$zero,0x100 +/* f324: 8e580004 */ lw $t8,0x4($s2) +/* f328: 02402025 */ or $a0,$s2,$zero +/* f32c: 24060100 */ addiu $a2,$zero,0x100 +/* f330: 0c003664 */ jal 0xd990 +/* f334: 02182821 */ addu $a1,$s0,$t8 +/* f338: 8e59000c */ lw $t9,0xc($s2) +/* f33c: 02402025 */ or $a0,$s2,$zero +/* f340: 24060100 */ addiu $a2,$zero,0x100 +/* f344: 0219a021 */ addu $s4,$s0,$t9 +/* f348: 0c003664 */ jal 0xd990 +/* f34c: 02802825 */ or $a1,$s4,$zero +/* f350: 864a000e */ lh $t2,0xe($s2) +/* f354: 3c098009 */ lui $t1,0x8009 +/* f358: 3c018009 */ lui $at,0x8009 +/* f35c: 254b0001 */ addiu $t3,$t2,0x1 +/* f360: 25297e20 */ addiu $t1,$t1,0x7e20 +/* f364: ac2b7e20 */ sw $t3,0x7e20($at) +/* f368: 8d330000 */ lw $s3,0x0($t1) +/* f36c: 3c06800a */ lui $a2,0x800a +/* f370: 24c68170 */ addiu $a2,$a2,-32400 +/* f374: 00136080 */ sll $t4,$s3,0x2 +/* f378: 01809825 */ or $s3,$t4,$zero +/* f37c: 26730023 */ addiu $s3,$s3,0x23 +/* f380: 366d000f */ ori $t5,$s3,0xf +/* f384: 39b3000f */ xori $s3,$t5,0xf +/* f388: afb30010 */ sw $s3,0x10($sp) +/* f38c: 00002025 */ or $a0,$zero,$zero +/* f390: 00002825 */ or $a1,$zero,$zero +/* f394: 0c00c499 */ jal 0x31264 +/* f398: 24070001 */ addiu $a3,$zero,0x1 +/* f39c: ae220000 */ sw $v0,0x0($s1) +/* f3a0: 00402025 */ or $a0,$v0,$zero +/* f3a4: 02802825 */ or $a1,$s4,$zero +/* f3a8: 0c003664 */ jal 0xd990 +/* f3ac: 02603025 */ or $a2,$s3,$zero +/* f3b0: 3c098009 */ lui $t1,0x8009 +/* f3b4: 8e2f0000 */ lw $t7,0x0($s1) +/* f3b8: 25297e20 */ addiu $t1,$t1,0x7e20 +/* f3bc: 8d280000 */ lw $t0,0x0($t1) +/* f3c0: 25f80010 */ addiu $t8,$t7,0x10 +/* f3c4: ae380000 */ sw $t8,0x0($s1) +/* f3c8: 1900000e */ blez $t0,.NB0000f404 +/* f3cc: 00001825 */ or $v1,$zero,$zero +/* f3d0: 00002025 */ or $a0,$zero,$zero +/* f3d4: 8e390000 */ lw $t9,0x0($s1) +.NB0000f3d8: +/* f3d8: 24630001 */ addiu $v1,$v1,0x1 +/* f3dc: 03241021 */ addu $v0,$t9,$a0 +/* f3e0: 8c4a0000 */ lw $t2,0x0($v0) +/* f3e4: 24840004 */ addiu $a0,$a0,0x4 +/* f3e8: 01505821 */ addu $t3,$t2,$s0 +/* f3ec: ac4b0000 */ sw $t3,0x0($v0) +/* f3f0: 8d280000 */ lw $t0,0x0($t1) +/* f3f4: 0068082a */ slt $at,$v1,$t0 +/* f3f8: 5420fff7 */ bnezl $at,.NB0000f3d8 +/* f3fc: 8e390000 */ lw $t9,0x0($s1) +/* f400: 00001825 */ or $v1,$zero,$zero +.NB0000f404: +/* f404: 3c06800a */ lui $a2,0x800a +/* f408: 24c68170 */ addiu $a2,$a2,-32400 +/* f40c: 00002025 */ or $a0,$zero,$zero +/* f410: 00002825 */ or $a1,$zero,$zero +/* f414: 24070002 */ addiu $a3,$zero,0x2 +/* f418: afa80010 */ sw $t0,0x10($sp) +/* f41c: 0c00c499 */ jal 0x31264 +/* f420: afa3016c */ sw $v1,0x16c($sp) +/* f424: 3c098009 */ lui $t1,0x8009 +/* f428: 25297e20 */ addiu $t1,$t1,0x7e20 +/* f42c: 8d2c0000 */ lw $t4,0x0($t1) +/* f430: 3c05800a */ lui $a1,0x800a +/* f434: 24a58190 */ addiu $a1,$a1,-32368 +/* f438: aca20000 */ sw $v0,0x0($a1) +/* f43c: 1180000c */ beqz $t4,.NB0000f470 +/* f440: 8fa3016c */ lw $v1,0x16c($sp) +/* f444: 00001025 */ or $v0,$zero,$zero +/* f448: 3404ffff */ dli $a0,0xffff +/* f44c: 8cad0000 */ lw $t5,0x0($a1) +.NB0000f450: +/* f450: 24630001 */ addiu $v1,$v1,0x1 +/* f454: 01a27021 */ addu $t6,$t5,$v0 +/* f458: a5c40000 */ sh $a0,0x0($t6) +/* f45c: 8d2f0000 */ lw $t7,0x0($t1) +/* f460: 24420002 */ addiu $v0,$v0,0x2 +/* f464: 006f082b */ sltu $at,$v1,$t7 +/* f468: 5420fff9 */ bnezl $at,.NB0000f450 +/* f46c: 8cad0000 */ lw $t5,0x0($a1) +.NB0000f470: +/* f470: 3c18800a */ lui $t8,0x800a +/* f474: 27028190 */ addiu $v0,$t8,-32368 +/* f478: 3c05800a */ lui $a1,0x800a +/* f47c: 3c04800a */ lui $a0,0x800a +/* f480: 248481bd */ addiu $a0,$a0,-32323 +/* f484: 94a5ea1c */ lhu $a1,-0x15e4($a1) +/* f488: 00401825 */ or $v1,$v0,$zero +.NB0000f48c: +/* f48c: 24420001 */ addiu $v0,$v0,0x1 +/* f490: a4650032 */ sh $a1,0x32($v1) +/* f494: 24630002 */ addiu $v1,$v1,0x2 +/* f498: 1444fffc */ bne $v0,$a0,.NB0000f48c +/* f49c: a0400003 */ sb $zero,0x3($v0) +/* f4a0: 8fbf0034 */ lw $ra,0x34($sp) +/* f4a4: 8fb00020 */ lw $s0,0x20($sp) +/* f4a8: 8fb10024 */ lw $s1,0x24($sp) +/* f4ac: 8fb20028 */ lw $s2,0x28($sp) +/* f4b0: 8fb3002c */ lw $s3,0x2c($sp) +/* f4b4: 8fb40030 */ lw $s4,0x30($sp) +/* f4b8: 03e00008 */ jr $ra +/* f4bc: 27bd0170 */ addiu $sp,$sp,0x170 +); +#endif +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func0000ed14 /* ed14: 3c038009 */ lui $v1,%hi(var80095210) @@ -939,7 +1144,9 @@ glabel func0000ed14 /* ed60: 03e00008 */ jr $ra /* ed64: 00000000 */ nop ); +#endif +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func0000ed68 /* ed68: 27bdff10 */ addiu $sp,$sp,-240 @@ -1018,7 +1225,48 @@ glabel func0000ed68 /* ee80: 03e00008 */ jr $ra /* ee84: 2442008c */ addiu $v0,$v0,0x8c ); +#else +GLOBAL_ASM( +glabel func0000ed68 +/* f4c0: 27bdff90 */ addiu $sp,$sp,-112 +/* f4c4: 3c0e007c */ lui $t6,0x7c +/* f4c8: afa50074 */ sw $a1,0x74($sp) +/* f4cc: 25cee940 */ addiu $t6,$t6,-5824 +/* f4d0: afa40070 */ sw $a0,0x70($sp) +/* f4d4: 008e2821 */ addu $a1,$a0,$t6 +/* f4d8: 03a02025 */ or $a0,$sp,$zero +/* f4dc: 2484002f */ addiu $a0,$a0,0x2f +/* f4e0: 348f000f */ ori $t7,$a0,0xf +/* f4e4: afbf0014 */ sw $ra,0x14($sp) +/* f4e8: 39e4000f */ xori $a0,$t7,0xf +/* f4ec: afa40018 */ sw $a0,0x18($sp) +/* f4f0: 0c00366e */ jal 0xd9b8 +/* f4f4: 24060040 */ addiu $a2,$zero,0x40 +/* f4f8: 8fa40018 */ lw $a0,0x18($sp) +/* f4fc: 97a50076 */ lhu $a1,0x76($sp) +/* f500: 3c03800a */ lui $v1,0x800a +/* f504: 8c810000 */ lw $at,0x0($a0) +/* f508: 24638190 */ addiu $v1,$v1,-32368 +/* f50c: 0005c900 */ sll $t9,$a1,0x4 +/* f510: 00794021 */ addu $t0,$v1,$t9 +/* f514: ad01008c */ sw $at,0x8c($t0) +/* f518: 8c8b0004 */ lw $t3,0x4($a0) +/* f51c: 00056100 */ sll $t4,$a1,0x4 +/* f520: 006c1021 */ addu $v0,$v1,$t4 +/* f524: ad0b0090 */ sw $t3,0x90($t0) +/* f528: 8c810008 */ lw $at,0x8($a0) +/* f52c: 2442008c */ addiu $v0,$v0,0x8c +/* f530: ad010094 */ sw $at,0x94($t0) +/* f534: 8c8b000c */ lw $t3,0xc($a0) +/* f538: ad0b0098 */ sw $t3,0x98($t0) +/* f53c: 8fbf0014 */ lw $ra,0x14($sp) +/* f540: 27bd0070 */ addiu $sp,$sp,0x70 +/* f544: 03e00008 */ jr $ra +/* f548: 00000000 */ sll $zero,$zero,0x0 +); +#endif +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func0000ee88 /* ee88: 27bdff10 */ addiu $sp,$sp,-240 @@ -1097,7 +1345,49 @@ glabel func0000ee88 /* efa0: 03e00008 */ jr $ra /* efa4: 27bd00f0 */ addiu $sp,$sp,0xf0 ); +#else +GLOBAL_ASM( +glabel func0000ee88 +/* f54c: 27bdff90 */ addiu $sp,$sp,-112 +/* f550: 3c0e007c */ lui $t6,0x7c +/* f554: afa50074 */ sw $a1,0x74($sp) +/* f558: 25cee940 */ addiu $t6,$t6,-5824 +/* f55c: afa40070 */ sw $a0,0x70($sp) +/* f560: 008e2821 */ addu $a1,$a0,$t6 +/* f564: 03a02025 */ or $a0,$sp,$zero +/* f568: 2484002f */ addiu $a0,$a0,0x2f +/* f56c: 348f000f */ ori $t7,$a0,0xf +/* f570: afbf0014 */ sw $ra,0x14($sp) +/* f574: 39e4000f */ xori $a0,$t7,0xf +/* f578: afa40018 */ sw $a0,0x18($sp) +/* f57c: 0c00366e */ jal 0xd9b8 +/* f580: 24060040 */ addiu $a2,$zero,0x40 +/* f584: 8fa40018 */ lw $a0,0x18($sp) +/* f588: 97a30076 */ lhu $v1,0x76($sp) +/* f58c: 3c05800a */ lui $a1,0x800a +/* f590: 88810000 */ lwl $at,0x0($a0) +/* f594: 0003c880 */ sll $t9,$v1,0x2 +/* f598: 98810003 */ lwr $at,0x3($a0) +/* f59c: 0323c823 */ subu $t9,$t9,$v1 +/* f5a0: 24a58190 */ addiu $a1,$a1,-32368 +/* f5a4: 0019c840 */ sll $t9,$t9,0x1 +/* f5a8: 00b94021 */ addu $t0,$a1,$t9 +/* f5ac: a901035c */ swl $at,0x35c($t0) +/* f5b0: b901035f */ swr $at,0x35f($t0) +/* f5b4: 90810004 */ lbu $at,0x4($a0) +/* f5b8: 00b91021 */ addu $v0,$a1,$t9 +/* f5bc: 2442035c */ addiu $v0,$v0,0x35c +/* f5c0: a1010360 */ sb $at,0x360($t0) +/* f5c4: 908b0005 */ lbu $t3,0x5($a0) +/* f5c8: a10b0361 */ sb $t3,0x361($t0) +/* f5cc: 8fbf0014 */ lw $ra,0x14($sp) +/* f5d0: 27bd0070 */ addiu $sp,$sp,0x70 +/* f5d4: 03e00008 */ jr $ra +/* f5d8: 00000000 */ sll $zero,$zero,0x0 +); +#endif +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func0000efa8 /* efa8: 27bdfd10 */ addiu $sp,$sp,-752 @@ -1180,7 +1470,51 @@ glabel func0000efa8 /* f0cc: 03e00008 */ jr $ra /* f0d0: 244207f0 */ addiu $v0,$v0,0x7f0 ); +#else +GLOBAL_ASM( +glabel func0000efa8 +/* f5dc: 27bdfe90 */ addiu $sp,$sp,-368 +/* f5e0: 3c0e007c */ lui $t6,0x7c +/* f5e4: afa50174 */ sw $a1,0x174($sp) +/* f5e8: 25cee940 */ addiu $t6,$t6,-5824 +/* f5ec: afa40170 */ sw $a0,0x170($sp) +/* f5f0: 008e2821 */ addu $a1,$a0,$t6 +/* f5f4: 03a02025 */ or $a0,$sp,$zero +/* f5f8: 2484002f */ addiu $a0,$a0,0x2f +/* f5fc: 348f000f */ ori $t7,$a0,0xf +/* f600: afbf0014 */ sw $ra,0x14($sp) +/* f604: 39e4000f */ xori $a0,$t7,0xf +/* f608: afa40018 */ sw $a0,0x18($sp) +/* f60c: 0c00366e */ jal 0xd9b8 +/* f610: 24060140 */ addiu $a2,$zero,0x140 +/* f614: 97a30176 */ lhu $v1,0x176($sp) +/* f618: 8fac0018 */ lw $t4,0x18($sp) +/* f61c: 3c05800a */ lui $a1,0x800a +/* f620: 0003c940 */ sll $t9,$v1,0x5 +/* f624: 0323c821 */ addu $t9,$t9,$v1 +/* f628: 24a58190 */ addiu $a1,$a1,-32368 +/* f62c: 001918c0 */ sll $v1,$t9,0x3 +/* f630: 00a34021 */ addu $t0,$a1,$v1 +/* f634: 258b0108 */ addiu $t3,$t4,0x108 +.NB0000f638: +/* f638: 8d810000 */ lw $at,0x0($t4) +/* f63c: 258c000c */ addiu $t4,$t4,0xc +/* f640: 2508000c */ addiu $t0,$t0,0xc +/* f644: ad0107e4 */ sw $at,0x7e4($t0) +/* f648: 8d81fff8 */ lw $at,-0x8($t4) +/* f64c: ad0107e8 */ sw $at,0x7e8($t0) +/* f650: 8d81fffc */ lw $at,-0x4($t4) +/* f654: 158bfff8 */ bne $t4,$t3,.NB0000f638 +/* f658: ad0107ec */ sw $at,0x7ec($t0) +/* f65c: 8fbf0014 */ lw $ra,0x14($sp) +/* f660: 00a31021 */ addu $v0,$a1,$v1 +/* f664: 244207f0 */ addiu $v0,$v0,0x7f0 +/* f668: 03e00008 */ jr $ra +/* f66c: 27bd0170 */ addiu $sp,$sp,0x170 +); +#endif +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func0000f0d4 /* f0d4: 27bdff10 */ addiu $sp,$sp,-240 @@ -1275,7 +1609,63 @@ glabel func0000f0d4 /* f220: 03e00008 */ jr $ra /* f224: 27bd00f0 */ addiu $sp,$sp,0xf0 ); +#else +GLOBAL_ASM( +glabel func0000f0d4 +/* f670: 27bdff90 */ addiu $sp,$sp,-112 +/* f674: afbf0014 */ sw $ra,0x14($sp) +/* f678: afa50074 */ sw $a1,0x74($sp) +/* f67c: 14800003 */ bnez $a0,.NB0000f68c +/* f680: 00803825 */ or $a3,$a0,$zero +/* f684: 10000025 */ beqz $zero,.NB0000f71c +/* f688: 00001025 */ or $v0,$zero,$zero +.NB0000f68c: +/* f68c: 03a02025 */ or $a0,$sp,$zero +/* f690: 2484002f */ addiu $a0,$a0,0x2f +/* f694: 3c0e007c */ lui $t6,0x7c +/* f698: 348f000f */ ori $t7,$a0,0xf +/* f69c: 25cee940 */ addiu $t6,$t6,-5824 +/* f6a0: 39e4000f */ xori $a0,$t7,0xf +/* f6a4: 00ee2821 */ addu $a1,$a3,$t6 +/* f6a8: afa40018 */ sw $a0,0x18($sp) +/* f6ac: 0c00366e */ jal 0xd9b8 +/* f6b0: 24060040 */ addiu $a2,$zero,0x40 +/* f6b4: 97a30076 */ lhu $v1,0x76($sp) +/* f6b8: 8fac0018 */ lw $t4,0x18($sp) +/* f6bc: 3c05800a */ lui $a1,0x800a +/* f6c0: 0003c880 */ sll $t9,$v1,0x2 +/* f6c4: 0323c823 */ subu $t9,$t9,$v1 +/* f6c8: 0019c880 */ sll $t9,$t9,0x2 +/* f6cc: 0323c823 */ subu $t9,$t9,$v1 +/* f6d0: 24a58190 */ addiu $a1,$a1,-32368 +/* f6d4: 00191880 */ sll $v1,$t9,0x2 +/* f6d8: 00a34021 */ addu $t0,$a1,$v1 +/* f6dc: 258b0024 */ addiu $t3,$t4,0x24 +.NB0000f6e0: +/* f6e0: 8d810000 */ lw $at,0x0($t4) +/* f6e4: 258c000c */ addiu $t4,$t4,0xc +/* f6e8: 2508000c */ addiu $t0,$t0,0xc +/* f6ec: ad01364c */ sw $at,0x364c($t0) +/* f6f0: 8d81fff8 */ lw $at,-0x8($t4) +/* f6f4: ad013650 */ sw $at,0x3650($t0) +/* f6f8: 8d81fffc */ lw $at,-0x4($t4) +/* f6fc: 158bfff8 */ bne $t4,$t3,.NB0000f6e0 +/* f700: ad013654 */ sw $at,0x3654($t0) +/* f704: 8d810000 */ lw $at,0x0($t4) +/* f708: 00a31021 */ addu $v0,$a1,$v1 +/* f70c: 24423658 */ addiu $v0,$v0,0x3658 +/* f710: ad013658 */ sw $at,0x3658($t0) +/* f714: 8d8b0004 */ lw $t3,0x4($t4) +/* f718: ad0b365c */ sw $t3,0x365c($t0) +.NB0000f71c: +/* f71c: 8fbf0014 */ lw $ra,0x14($sp) +/* f720: 27bd0070 */ addiu $sp,$sp,0x70 +/* f724: 03e00008 */ jr $ra +/* f728: 00000000 */ sll $zero,$zero,0x0 +); +#endif +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func0000f228 /* f228: 27bdff08 */ addiu $sp,$sp,-248 @@ -1372,6 +1762,67 @@ glabel func0000f228 /* f384: 03e00008 */ jr $ra /* f388: 27bd00f8 */ addiu $sp,$sp,0xf8 ); +#else +GLOBAL_ASM( +glabel func0000f228 +/* f72c: 27bdff88 */ addiu $sp,$sp,-120 +/* f730: 3c0e007c */ lui $t6,0x7c +/* f734: afa5007c */ sw $a1,0x7c($sp) +/* f738: 25cee940 */ addiu $t6,$t6,-5824 +/* f73c: afa40078 */ sw $a0,0x78($sp) +/* f740: 008e2821 */ addu $a1,$a0,$t6 +/* f744: 03a02025 */ or $a0,$sp,$zero +/* f748: 24840037 */ addiu $a0,$a0,0x37 +/* f74c: 348f000f */ ori $t7,$a0,0xf +/* f750: afbf0014 */ sw $ra,0x14($sp) +/* f754: 39e4000f */ xori $a0,$t7,0xf +/* f758: afa4001c */ sw $a0,0x1c($sp) +/* f75c: 0c00366e */ jal 0xd9b8 +/* f760: 24060040 */ addiu $a2,$zero,0x40 +/* f764: 97a5007e */ lhu $a1,0x7e($sp) +/* f768: 8fa4001c */ lw $a0,0x1c($sp) +/* f76c: 3c08800a */ lui $t0,0x800a +/* f770: 0005c880 */ sll $t9,$a1,0x2 +/* f774: 0325c821 */ addu $t9,$t9,$a1 +/* f778: 8c810000 */ lw $at,0x0($a0) +/* f77c: 0019c880 */ sll $t9,$t9,0x2 +/* f780: 25088190 */ addiu $t0,$t0,-32368 +/* f784: 03281021 */ addu $v0,$t9,$t0 +/* f788: 2443046c */ addiu $v1,$v0,0x46c +/* f78c: ac610000 */ sw $at,0x0($v1) +/* f790: 8c8b0004 */ lw $t3,0x4($a0) +/* f794: 3c0d007f */ lui $t5,0x7f +/* f798: 25ade4c0 */ addiu $t5,$t5,-6976 +/* f79c: ac6b0004 */ sw $t3,0x4($v1) +/* f7a0: 8c810008 */ lw $at,0x8($a0) +/* f7a4: ac610008 */ sw $at,0x8($v1) +/* f7a8: 8c8b000c */ lw $t3,0xc($a0) +/* f7ac: ac6b000c */ sw $t3,0xc($v1) +/* f7b0: 8c810010 */ lw $at,0x10($a0) +/* f7b4: ac610010 */ sw $at,0x10($v1) +/* f7b8: 8c4c046c */ lw $t4,0x46c($v0) +/* f7bc: 904f0474 */ lbu $t7,0x474($v0) +/* f7c0: 018d7021 */ addu $t6,$t4,$t5 +/* f7c4: 15e0000b */ bnez $t7,.NB0000f7f4 +/* f7c8: ac4e046c */ sw $t6,0x46c($v0) +/* f7cc: 8c640010 */ lw $a0,0x10($v1) +/* f7d0: 0c003d77 */ jal 0xf5dc +/* f7d4: afa30018 */ sw $v1,0x18($sp) +/* f7d8: 8fa30018 */ lw $v1,0x18($sp) +/* f7dc: 97a5007e */ lhu $a1,0x7e($sp) +/* f7e0: ac620010 */ sw $v0,0x10($v1) +/* f7e4: 0c003d9c */ jal 0xf670 +/* f7e8: 8c64000c */ lw $a0,0xc($v1) +/* f7ec: 8fa30018 */ lw $v1,0x18($sp) +/* f7f0: ac62000c */ sw $v0,0xc($v1) +.NB0000f7f4: +/* f7f4: 8fbf0014 */ lw $ra,0x14($sp) +/* f7f8: 27bd0078 */ addiu $sp,$sp,0x78 +/* f7fc: 00601025 */ or $v0,$v1,$zero +/* f800: 03e00008 */ jr $ra +/* f804: 00000000 */ sll $zero,$zero,0x0 +); +#endif void audioSetSoundMode(s32 mode) { @@ -1407,6 +1858,7 @@ void audioSetSoundMode(s32 mode) } } +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func0000f49c /* f49c: 27bdff50 */ addiu $sp,$sp,-176 @@ -1538,6 +1990,146 @@ glabel func0000f49c /* f674: 03e00008 */ jr $ra /* f678: 27bd00b0 */ addiu $sp,$sp,0xb0 ); +#else +GLOBAL_ASM( +glabel func0000f49c +/* f918: 27bdff50 */ addiu $sp,$sp,-176 +/* f91c: afb00014 */ sw $s0,0x14($sp) +/* f920: 00048400 */ sll $s0,$a0,0x10 +/* f924: 00107403 */ sra $t6,$s0,0x10 +/* f928: afa400b0 */ sw $a0,0xb0($sp) +/* f92c: 000e2400 */ sll $a0,$t6,0x10 +/* f930: afbf001c */ sw $ra,0x1c($sp) +/* f934: 00047c03 */ sra $t7,$a0,0x10 +/* f938: 01c08025 */ or $s0,$t6,$zero +/* f93c: afb10018 */ sw $s1,0x18($sp) +/* f940: 0c00400e */ jal 0x10038 +/* f944: 01e02025 */ or $a0,$t7,$zero +/* f948: 10400003 */ beqz $v0,.NB0000f958 +/* f94c: 3c08800a */ lui $t0,0x800a +/* f950: 1000006b */ beqz $zero,.NB0000fb00 +/* f954: 00001025 */ or $v0,$zero,$zero +.NB0000f958: +/* f958: 25088190 */ addiu $t0,$t0,-32368 +/* f95c: 320b07ff */ andi $t3,$s0,0x7ff +/* f960: 8d060000 */ lw $a2,0x0($t0) +/* f964: 000bc400 */ sll $t8,$t3,0x10 +/* f968: 00185c03 */ sra $t3,$t8,0x10 +/* f96c: 000b6040 */ sll $t4,$t3,0x1 +/* f970: 00cc6821 */ addu $t5,$a2,$t4 +/* f974: 95aa0000 */ lhu $t2,0x0($t5) +/* f978: 3401ffff */ dli $at,0xffff +/* f97c: 2407ffff */ addiu $a3,$zero,-1 +/* f980: 15410056 */ bne $t2,$at,.NB0000fadc +/* f984: 00002825 */ or $a1,$zero,$zero +/* f988: 3c03800a */ lui $v1,0x800a +/* f98c: 3c09800a */ lui $t1,0x800a +/* f990: 2529e6c0 */ addiu $t1,$t1,-6464 +/* f994: 24638190 */ addiu $v1,$v1,-32368 +/* f998: 00001025 */ or $v0,$zero,$zero +.NB0000f99c: +/* f99c: 906e0004 */ lbu $t6,0x4($v1) +/* f9a0: 0002c040 */ sll $t8,$v0,0x1 +/* f9a4: 0118c821 */ addu $t9,$t0,$t8 +/* f9a8: 55c0000b */ bnezl $t6,.NB0000f9d8 +/* f9ac: 24420001 */ addiu $v0,$v0,0x1 +/* f9b0: 952f035c */ lhu $t7,0x35c($t1) +/* f9b4: 972d0032 */ lhu $t5,0x32($t9) +/* f9b8: 01ed2023 */ subu $a0,$t7,$t5 +/* f9bc: 24840001 */ addiu $a0,$a0,0x1 +/* f9c0: 00a4082b */ sltu $at,$a1,$a0 +/* f9c4: 50200004 */ beqzl $at,.NB0000f9d8 +/* f9c8: 24420001 */ addiu $v0,$v0,0x1 +/* f9cc: 00802825 */ or $a1,$a0,$zero +/* f9d0: 00403825 */ or $a3,$v0,$zero +/* f9d4: 24420001 */ addiu $v0,$v0,0x1 +.NB0000f9d8: +/* f9d8: 2841002d */ slti $at,$v0,0x2d +/* f9dc: 1420ffef */ bnez $at,.NB0000f99c +/* f9e0: 24630001 */ addiu $v1,$v1,0x1 +/* f9e4: 3c048009 */ lui $a0,0x8009 +/* f9e8: 8c847e20 */ lw $a0,0x7e20($a0) +/* f9ec: 30eaffff */ andi $t2,$a3,0xffff +/* f9f0: 00c01825 */ or $v1,$a2,$zero +/* f9f4: 1080000d */ beqz $a0,.NB0000fa2c +/* f9f8: 00001025 */ or $v0,$zero,$zero +/* f9fc: 30e5ffff */ andi $a1,$a3,0xffff +/* fa00: 3406ffff */ dli $a2,0xffff +.NB0000fa04: +/* fa04: 946e0000 */ lhu $t6,0x0($v1) +/* fa08: 24420001 */ addiu $v0,$v0,0x1 +/* fa0c: 54ae0005 */ bnel $a1,$t6,.NB0000fa24 +/* fa10: 0044082b */ sltu $at,$v0,$a0 +/* fa14: a4660000 */ sh $a2,0x0($v1) +/* fa18: 3c048009 */ lui $a0,0x8009 +/* fa1c: 8c847e20 */ lw $a0,0x7e20($a0) +/* fa20: 0044082b */ sltu $at,$v0,$a0 +.NB0000fa24: +/* fa24: 1420fff7 */ bnez $at,.NB0000fa04 +/* fa28: 24630002 */ addiu $v1,$v1,0x2 +.NB0000fa2c: +/* fa2c: 3c0f8009 */ lui $t7,0x8009 +/* fa30: 8def7e24 */ lw $t7,0x7e24($t7) +/* fa34: 03a08025 */ or $s0,$sp,$zero +/* fa38: 26100047 */ addiu $s0,$s0,0x47 +/* fa3c: 000b6880 */ sll $t5,$t3,0x2 +/* fa40: 3618000f */ ori $t8,$s0,0xf +/* fa44: 01ed7021 */ addu $t6,$t7,$t5 +/* fa48: 8dc5fffc */ lw $a1,-0x4($t6) +/* fa4c: 3b04000f */ xori $a0,$t8,0xf +/* fa50: 00808025 */ or $s0,$a0,$zero +/* fa54: afac0024 */ sw $t4,0x24($sp) +/* fa58: a7aa00aa */ sh $t2,0xaa($sp) +/* fa5c: 24060040 */ addiu $a2,$zero,0x40 +/* fa60: 0c00366e */ jal 0xd9b8 +/* fa64: 30f1ffff */ andi $s1,$a3,0xffff +/* fa68: 8e040000 */ lw $a0,0x0($s0) +/* fa6c: 0c003d30 */ jal 0xf4c0 +/* fa70: 3225ffff */ andi $a1,$s1,0xffff +/* fa74: ae020000 */ sw $v0,0x0($s0) +/* fa78: 8e040008 */ lw $a0,0x8($s0) +/* fa7c: 0c003dcb */ jal 0xf72c +/* fa80: 3225ffff */ andi $a1,$s1,0xffff +/* fa84: ae020008 */ sw $v0,0x8($s0) +/* fa88: 8e040004 */ lw $a0,0x4($s0) +/* fa8c: 0c003d53 */ jal 0xf54c +/* fa90: 3225ffff */ andi $a1,$s1,0xffff +/* fa94: 8e010000 */ lw $at,0x0($s0) +/* fa98: 3c08800a */ lui $t0,0x800a +/* fa9c: 25088190 */ addiu $t0,$t0,-32368 +/* faa0: 97aa00aa */ lhu $t2,0xaa($sp) +/* faa4: 0011c100 */ sll $t8,$s1,0x4 +/* faa8: ae020004 */ sw $v0,0x4($s0) +/* faac: 0118c821 */ addu $t9,$t0,$t8 +/* fab0: af213e14 */ sw $at,0x3e14($t9) +/* fab4: 8e0d0004 */ lw $t5,0x4($s0) +/* fab8: af2d3e18 */ sw $t5,0x3e18($t9) +/* fabc: 8e010008 */ lw $at,0x8($s0) +/* fac0: af213e1c */ sw $at,0x3e1c($t9) +/* fac4: 8e0d000c */ lw $t5,0xc($s0) +/* fac8: af2d3e20 */ sw $t5,0x3e20($t9) +/* facc: 8fb80024 */ lw $t8,0x24($sp) +/* fad0: 8d0e0000 */ lw $t6,0x0($t0) +/* fad4: 01d87821 */ addu $t7,$t6,$t8 +/* fad8: a5f10000 */ sh $s1,0x0($t7) +.NB0000fadc: +/* fadc: 3c09800a */ lui $t1,0x800a +/* fae0: 2529e6c0 */ addiu $t1,$t1,-6464 +/* fae4: 9539035c */ lhu $t9,0x35c($t1) +/* fae8: 000a6840 */ sll $t5,$t2,0x1 +/* faec: 000ac100 */ sll $t8,$t2,0x4 +/* faf0: 010d7021 */ addu $t6,$t0,$t5 +/* faf4: 01181021 */ addu $v0,$t0,$t8 +/* faf8: 24423e14 */ addiu $v0,$v0,0x3e14 +/* fafc: a5d90032 */ sh $t9,0x32($t6) +.NB0000fb00: +/* fb00: 8fbf001c */ lw $ra,0x1c($sp) +/* fb04: 8fb00014 */ lw $s0,0x14($sp) +/* fb08: 8fb10018 */ lw $s1,0x18($sp) +/* fb0c: 03e00008 */ jr $ra +/* fb10: 27bd00b0 */ addiu $sp,$sp,0xb0 +); +#endif GLOBAL_ASM( glabel func0000f67c @@ -2207,6 +2799,7 @@ glabel func0000fbc4 /* fc44: afa40000 */ sw $a0,0x0($sp) ); +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func0000fc48 /* fc48: 27bdebb8 */ addiu $sp,$sp,-5192 @@ -2290,6 +2883,138 @@ glabel func0000fc48 /* fd6c: 03e00008 */ jr $ra /* fd70: 00000000 */ nop ); +#else +GLOBAL_ASM( +glabel func0000fc48 +/* 100e0: 27bdeaf8 */ addiu $sp,$sp,-5384 +/* 100e4: afb00058 */ sw $s0,0x58($sp) +/* 100e8: 00808025 */ or $s0,$a0,$zero +/* 100ec: afbf005c */ sw $ra,0x5c($sp) +/* 100f0: afa5150c */ sw $a1,0x150c($sp) +/* 100f4: 0c00e838 */ jal 0x3a0e0 +/* 100f8: 8c8400f8 */ lw $a0,0xf8($a0) +/* 100fc: 3c0e8006 */ lui $t6,0x8006 +/* 10100: 8dcef6c0 */ lw $t6,-0x940($t6) +/* 10104: 8fa4150c */ lw $a0,0x150c($sp) +/* 10108: 3c03800a */ lui $v1,0x800a +/* 1010c: 51c00004 */ beqzl $t6,.NB00010120 +/* 10110: ae040104 */ sw $a0,0x104($s0) +/* 10114: 10000066 */ beqz $zero,.NB000102b0 +/* 10118: 00001025 */ or $v0,$zero,$zero +/* 1011c: ae040104 */ sw $a0,0x104($s0) +.NB00010120: +/* 10120: 10400003 */ beqz $v0,.NB00010130 +/* 10124: 8c638188 */ lw $v1,-0x7e78($v1) +/* 10128: 10000061 */ beqz $zero,.NB000102b0 +/* 1012c: 00001025 */ or $v0,$zero,$zero +.NB00010130: +/* 10130: 8e0f0104 */ lw $t7,0x104($s0) +/* 10134: 3c010001 */ lui $at,0x1 +/* 10138: 000fc0c0 */ sll $t8,$t7,0x3 +/* 1013c: 00781021 */ addu $v0,$v1,$t8 +/* 10140: 8c450004 */ lw $a1,0x4($v0) +/* 10144: 00a1082b */ sltu $at,$a1,$at +/* 10148: 50200004 */ beqzl $at,.NB0001015c +/* 1014c: 94470008 */ lhu $a3,0x8($v0) +/* 10150: 10000057 */ beqz $zero,.NB000102b0 +/* 10154: 00001025 */ or $v0,$zero,$zero +/* 10158: 94470008 */ lhu $a3,0x8($v0) +.NB0001015c: +/* 1015c: 3c0a800a */ lui $t2,0x800a +/* 10160: 8d4a818c */ lw $t2,-0x7e74($t2) +/* 10164: 24e7000f */ addiu $a3,$a3,0xf +/* 10168: 34f9000f */ ori $t9,$a3,0xf +/* 1016c: 3b29000f */ xori $t1,$t9,0xf +/* 10170: 25270040 */ addiu $a3,$t1,0x40 +/* 10174: 00ea082b */ sltu $at,$a3,$t2 +/* 10178: 54200004 */ bnezl $at,.NB0001018c +/* 1017c: 9446000a */ lhu $a2,0xa($v0) +/* 10180: 1000004b */ beqz $zero,.NB000102b0 +/* 10184: 00001025 */ or $v0,$zero,$zero +/* 10188: 9446000a */ lhu $a2,0xa($v0) +.NB0001018c: +/* 1018c: 8e0800fc */ lw $t0,0xfc($s0) +/* 10190: 24c6000f */ addiu $a2,$a2,0xf +/* 10194: 34cb000f */ ori $t3,$a2,0xf +/* 10198: 3966000f */ xori $a2,$t3,0xf +/* 1019c: 01076821 */ addu $t5,$t0,$a3 +/* 101a0: 01a62023 */ subu $a0,$t5,$a2 +/* 101a4: afa414f8 */ sw $a0,0x14f8($sp) +/* 101a8: afa40064 */ sw $a0,0x64($sp) +/* 101ac: 0c003664 */ jal 0xd990 +/* 101b0: afa814fc */ sw $t0,0x14fc($sp) +/* 101b4: 8fa40064 */ lw $a0,0x64($sp) +/* 101b8: 8fa514fc */ lw $a1,0x14fc($sp) +/* 101bc: 0c001da4 */ jal 0x7690 +/* 101c0: 27a600f4 */ addiu $a2,$sp,0xf4 +/* 101c4: 1440002c */ bnez $v0,.NB00010278 +/* 101c8: 8fa314f8 */ lw $v1,0x14f8($sp) +/* 101cc: 906e0000 */ lbu $t6,0x0($v1) +/* 101d0: 3c057005 */ lui $a1,0x7005 +/* 101d4: 3c067005 */ lui $a2,0x7005 +/* 101d8: afae0010 */ sw $t6,0x10($sp) +/* 101dc: 906f0001 */ lbu $t7,0x1($v1) +/* 101e0: 24c652a8 */ addiu $a2,$a2,0x52a8 +/* 101e4: 24a55250 */ addiu $a1,$a1,0x5250 +/* 101e8: afaf0014 */ sw $t7,0x14($sp) +/* 101ec: 90780002 */ lbu $t8,0x2($v1) +/* 101f0: 27a40070 */ addiu $a0,$sp,0x70 +/* 101f4: 2407068c */ addiu $a3,$zero,0x68c +/* 101f8: afb80018 */ sw $t8,0x18($sp) +/* 101fc: 90790003 */ lbu $t9,0x3($v1) +/* 10200: afb9001c */ sw $t9,0x1c($sp) +/* 10204: 90690004 */ lbu $t1,0x4($v1) +/* 10208: afa90020 */ sw $t1,0x20($sp) +/* 1020c: 906a0005 */ lbu $t2,0x5($v1) +/* 10210: afaa0024 */ sw $t2,0x24($sp) +/* 10214: 906b0006 */ lbu $t3,0x6($v1) +/* 10218: afab0028 */ sw $t3,0x28($sp) +/* 1021c: 906c0007 */ lbu $t4,0x7($v1) +/* 10220: afac002c */ sw $t4,0x2c($sp) +/* 10224: 906d0008 */ lbu $t5,0x8($v1) +/* 10228: afad0030 */ sw $t5,0x30($sp) +/* 1022c: 906e0009 */ lbu $t6,0x9($v1) +/* 10230: afae0034 */ sw $t6,0x34($sp) +/* 10234: 906f000a */ lbu $t7,0xa($v1) +/* 10238: afaf0038 */ sw $t7,0x38($sp) +/* 1023c: 9078000b */ lbu $t8,0xb($v1) +/* 10240: afb8003c */ sw $t8,0x3c($sp) +/* 10244: 9079000c */ lbu $t9,0xc($v1) +/* 10248: afb90040 */ sw $t9,0x40($sp) +/* 1024c: 9069000d */ lbu $t1,0xd($v1) +/* 10250: afa90044 */ sw $t1,0x44($sp) +/* 10254: 906a000e */ lbu $t2,0xe($v1) +/* 10258: afaa0048 */ sw $t2,0x48($sp) +/* 1025c: 906b000f */ lbu $t3,0xf($v1) +/* 10260: 0c004fc1 */ jal 0x13f04 +/* 10264: afab004c */ sw $t3,0x4c($sp) +/* 10268: 0c003074 */ jal 0xc1d0 +/* 1026c: 27a40070 */ addiu $a0,$sp,0x70 +/* 10270: 240c0045 */ addiu $t4,$zero,0x45 +/* 10274: a00c0000 */ sb $t4,0x0($zero) +.NB00010278: +/* 10278: 02002025 */ or $a0,$s0,$zero +/* 1027c: 0c00e840 */ jal 0x3a100 +/* 10280: 8e0500fc */ lw $a1,0xfc($s0) +/* 10284: 8e0400f8 */ lw $a0,0xf8($s0) +/* 10288: 0c00ebec */ jal 0x3afb0 +/* 1028c: 02002825 */ or $a1,$s0,$zero +/* 10290: 0c0040b1 */ jal 0x102c4 +/* 10294: 02002025 */ or $a0,$s0,$zero +/* 10298: 02002025 */ or $a0,$s0,$zero +/* 1029c: 0c0040bb */ jal 0x102ec +/* 102a0: 3045ffff */ andi $a1,$v0,0xffff +/* 102a4: 0c00ec00 */ jal 0x3b000 +/* 102a8: 8e0400f8 */ lw $a0,0xf8($s0) +/* 102ac: 24020001 */ addiu $v0,$zero,0x1 +.NB000102b0: +/* 102b0: 8fbf005c */ lw $ra,0x5c($sp) +/* 102b4: 8fb00058 */ lw $s0,0x58($sp) +/* 102b8: 27bd1508 */ addiu $sp,$sp,0x1508 +/* 102bc: 03e00008 */ jr $ra +/* 102c0: 00000000 */ sll $zero,$zero,0x0 +); +#endif GLOBAL_ASM( glabel func0000fd74 @@ -2732,7 +3457,7 @@ glabel func0000fe88 /* 10344: 03e00008 */ jr $ra /* 10348: 00000000 */ nop ); -#else +#elif VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func0000fe88 /* fe88: 27bdeb98 */ addiu $sp,$sp,-5224 @@ -3080,6 +3805,269 @@ glabel func0000fe88 /* 10344: 03e00008 */ jr $ra /* 10348: 00000000 */ nop ); +#else +GLOBAL_ASM( +glabel func0000fe88 +/* 103d8: 3c0e8006 */ lui $t6,0x8006 +/* 103dc: 8dcef6c0 */ lw $t6,-0x940($t6) +/* 103e0: 27bdffc0 */ addiu $sp,$sp,-64 +/* 103e4: afbf002c */ sw $ra,0x2c($sp) +/* 103e8: 15c000da */ bnez $t6,.NB00010754 +/* 103ec: afb00028 */ sw $s0,0x28($sp) +/* 103f0: 3c0f8006 */ lui $t7,0x8006 +/* 103f4: 8deff6f0 */ lw $t7,-0x910($t7) +/* 103f8: 3c02800a */ lui $v0,0x800a +/* 103fc: 51e000d6 */ beqzl $t7,.NB00010758 +/* 10400: 8fbf002c */ lw $ra,0x2c($sp) +/* 10404: 8c42eb74 */ lw $v0,-0x148c($v0) +/* 10408: 24010031 */ addiu $at,$zero,0x31 +/* 1040c: 54410006 */ bnel $v0,$at,.NB00010428 +/* 10410: 24010019 */ addiu $at,$zero,0x19 +/* 10414: 0c004474 */ jal 0x111d0 +/* 10418: 00000000 */ sll $zero,$zero,0x0 +/* 1041c: 10000006 */ beqz $zero,.NB00010438 +/* 10420: 00000000 */ sll $zero,$zero,0x0 +/* 10424: 24010019 */ addiu $at,$zero,0x19 +.NB00010428: +/* 10428: 14410003 */ bne $v0,$at,.NB00010438 +/* 1042c: 00000000 */ sll $zero,$zero,0x0 +/* 10430: 0c004537 */ jal 0x114dc +/* 10434: 00000000 */ sll $zero,$zero,0x0 +.NB00010438: +/* 10438: 3c18800a */ lui $t8,0x800a +/* 1043c: 8f18e96c */ lw $t8,-0x1694($t8) +/* 10440: 24010006 */ addiu $at,$zero,0x6 +/* 10444: 17010014 */ bne $t8,$at,.NB00010498 +/* 10448: 00000000 */ sll $zero,$zero,0x0 +/* 1044c: 0fc59f54 */ jal 0xf167d50 +/* 10450: 00000000 */ sll $zero,$zero,0x0 +/* 10454: 3c038006 */ lui $v1,0x8006 +/* 10458: 9463f6e8 */ lhu $v1,-0x918($v1) +/* 1045c: 0062082a */ slt $at,$v1,$v0 +/* 10460: 10200005 */ beqz $at,.NB00010478 +/* 10464: 00608025 */ or $s0,$v1,$zero +/* 10468: 0fc59f54 */ jal 0xf167d50 +/* 1046c: 00000000 */ sll $zero,$zero,0x0 +/* 10470: 10000001 */ beqz $zero,.NB00010478 +/* 10474: 00408025 */ or $s0,$v0,$zero +.NB00010478: +/* 10478: 0c003c6f */ jal 0xf1bc +/* 1047c: 00000000 */ sll $zero,$zero,0x0 +/* 10480: 1202000d */ beq $s0,$v0,.NB000104b8 +/* 10484: 00000000 */ sll $zero,$zero,0x0 +/* 10488: 0c003c8d */ jal 0xf234 +/* 1048c: 3204ffff */ andi $a0,$s0,0xffff +/* 10490: 10000009 */ beqz $zero,.NB000104b8 +/* 10494: 00000000 */ sll $zero,$zero,0x0 +.NB00010498: +/* 10498: 0c003c6f */ jal 0xf1bc +/* 1049c: 00000000 */ sll $zero,$zero,0x0 +/* 104a0: 3c048006 */ lui $a0,0x8006 +/* 104a4: 9484f6e8 */ lhu $a0,-0x918($a0) +/* 104a8: 10820003 */ beq $a0,$v0,.NB000104b8 +/* 104ac: 00000000 */ sll $zero,$zero,0x0 +/* 104b0: 0c003c8d */ jal 0xf234 +/* 104b4: 00000000 */ sll $zero,$zero,0x0 +.NB000104b8: +/* 104b8: 3c048006 */ lui $a0,0x8006 +/* 104bc: 8c84f6f4 */ lw $a0,-0x90c($a0) +/* 104c0: 3c057005 */ lui $a1,0x7005 +/* 104c4: 10800009 */ beqz $a0,.NB000104ec +/* 104c8: 00000000 */ sll $zero,$zero,0x0 +/* 104cc: 0c004eb1 */ jal 0x13ac4 +/* 104d0: 24a55190 */ addiu $a1,$a1,0x5190 +/* 104d4: 10400005 */ beqz $v0,.NB000104ec +/* 104d8: 3c047005 */ lui $a0,0x7005 +/* 104dc: 0c003074 */ jal 0xc1d0 +/* 104e0: 248452b0 */ addiu $a0,$a0,0x52b0 +/* 104e4: 24190045 */ addiu $t9,$zero,0x45 +/* 104e8: a0190000 */ sb $t9,0x0($zero) +.NB000104ec: +/* 104ec: 0c00e49d */ jal 0x39274 +/* 104f0: 00000000 */ sll $zero,$zero,0x0 +/* 104f4: 1440001d */ bnez $v0,.NB0001056c +/* 104f8: 3c108009 */ lui $s0,0x8009 +/* 104fc: 26107e30 */ addiu $s0,$s0,0x7e30 +/* 10500: 8e080004 */ lw $t0,0x4($s0) +/* 10504: 11000019 */ beqz $t0,.NB0001056c +/* 10508: 00000000 */ sll $zero,$zero,0x0 +/* 1050c: 8e090008 */ lw $t1,0x8($s0) +/* 10510: 51200007 */ beqzl $t1,.NB00010530 +/* 10514: 8e020024 */ lw $v0,0x24($s0) +/* 10518: 8e04001c */ lw $a0,0x1c($s0) +/* 1051c: 0c00e456 */ jal 0x39158 +/* 10520: 8e050020 */ lw $a1,0x20($s0) +/* 10524: 1000008c */ beqz $zero,.NB00010758 +/* 10528: 8fbf002c */ lw $ra,0x2c($sp) +/* 1052c: 8e020024 */ lw $v0,0x24($s0) +.NB00010530: +/* 10530: 24030001 */ addiu $v1,$zero,0x1 +/* 10534: 24010002 */ addiu $at,$zero,0x2 +/* 10538: 10430007 */ beq $v0,$v1,.NB00010558 +/* 1053c: 240a003c */ addiu $t2,$zero,0x3c +/* 10540: 10410005 */ beq $v0,$at,.NB00010558 +/* 10544: 24010003 */ addiu $at,$zero,0x3 +/* 10548: 50410006 */ beql $v0,$at,.NB00010564 +/* 1054c: ae03000c */ sw $v1,0xc($s0) +/* 10550: 10000004 */ beqz $zero,.NB00010564 +/* 10554: 00000000 */ sll $zero,$zero,0x0 +.NB00010558: +/* 10558: 10000002 */ beqz $zero,.NB00010564 +/* 1055c: ae0a000c */ sw $t2,0xc($s0) +/* 10560: ae03000c */ sw $v1,0xc($s0) +.NB00010564: +/* 10564: 1000007b */ beqz $zero,.NB00010754 +/* 10568: ae000004 */ sw $zero,0x4($s0) +.NB0001056c: +/* 1056c: 3c108009 */ lui $s0,0x8009 +/* 10570: 26107e30 */ addiu $s0,$s0,0x7e30 +/* 10574: 8e02000c */ lw $v0,0xc($s0) +/* 10578: 3c0b800a */ lui $t3,0x800a +/* 1057c: 58400076 */ blezl $v0,.NB00010758 +/* 10580: 8fbf002c */ lw $ra,0x2c($sp) +/* 10584: 8d6be6f4 */ lw $t3,-0x190c($t3) +/* 10588: 004b6023 */ subu $t4,$v0,$t3 +/* 1058c: 1d800071 */ bgtz $t4,.NB00010754 +/* 10590: ae0c000c */ sw $t4,0xc($s0) +/* 10594: 8e020024 */ lw $v0,0x24($s0) +/* 10598: 24010002 */ addiu $at,$zero,0x2 +/* 1059c: 5441001f */ bnel $v0,$at,.NB0001061c +/* 105a0: 24010001 */ addiu $at,$zero,0x1 +.NB000105a4: +/* 105a4: 0c004d84 */ jal 0x13610 +/* 105a8: 00000000 */ sll $zero,$zero,0x0 +/* 105ac: 8e0e0010 */ lw $t6,0x10($s0) +/* 105b0: 30430003 */ andi $v1,$v0,0x3 +/* 105b4: 11c3fffb */ beq $t6,$v1,.NB000105a4 +/* 105b8: 00000000 */ sll $zero,$zero,0x0 +/* 105bc: 3c018009 */ lui $at,0x8009 +/* 105c0: 1060000c */ beqz $v1,.NB000105f4 +/* 105c4: ac237e40 */ sw $v1,0x7e40($at) +/* 105c8: 24010001 */ addiu $at,$zero,0x1 +/* 105cc: 1061000c */ beq $v1,$at,.NB00010600 +/* 105d0: 24187cee */ addiu $t8,$zero,0x7cee +/* 105d4: 24010002 */ addiu $at,$zero,0x2 +/* 105d8: 1061000b */ beq $v1,$at,.NB00010608 +/* 105dc: 24197cef */ addiu $t9,$zero,0x7cef +/* 105e0: 24010003 */ addiu $at,$zero,0x3 +/* 105e4: 1061000a */ beq $v1,$at,.NB00010610 +/* 105e8: 24087cf0 */ addiu $t0,$zero,0x7cf0 +/* 105ec: 1000004a */ beqz $zero,.NB00010718 +/* 105f0: 3c01bf80 */ lui $at,0xbf80 +.NB000105f4: +/* 105f4: 240f7ced */ addiu $t7,$zero,0x7ced +/* 105f8: 10000046 */ beqz $zero,.NB00010714 +/* 105fc: a7af0034 */ sh $t7,0x34($sp) +.NB00010600: +/* 10600: 10000044 */ beqz $zero,.NB00010714 +/* 10604: a7b80034 */ sh $t8,0x34($sp) +.NB00010608: +/* 10608: 10000042 */ beqz $zero,.NB00010714 +/* 1060c: a7b90034 */ sh $t9,0x34($sp) +.NB00010610: +/* 10610: 10000040 */ beqz $zero,.NB00010714 +/* 10614: a7a80034 */ sh $t0,0x34($sp) +/* 10618: 24010001 */ addiu $at,$zero,0x1 +.NB0001061c: +/* 1061c: 5441001f */ bnel $v0,$at,.NB0001069c +/* 10620: 24010003 */ addiu $at,$zero,0x3 +.NB00010624: +/* 10624: 0c004d84 */ jal 0x13610 +/* 10628: 00000000 */ sll $zero,$zero,0x0 +/* 1062c: 8e090014 */ lw $t1,0x14($s0) +/* 10630: 30430003 */ andi $v1,$v0,0x3 +/* 10634: 1123fffb */ beq $t1,$v1,.NB00010624 +/* 10638: 00000000 */ sll $zero,$zero,0x0 +/* 1063c: 3c018009 */ lui $at,0x8009 +/* 10640: 1060000c */ beqz $v1,.NB00010674 +/* 10644: ac237e44 */ sw $v1,0x7e44($at) +/* 10648: 24010001 */ addiu $at,$zero,0x1 +/* 1064c: 1061000c */ beq $v1,$at,.NB00010680 +/* 10650: 240b7cf9 */ addiu $t3,$zero,0x7cf9 +/* 10654: 24010002 */ addiu $at,$zero,0x2 +/* 10658: 1061000b */ beq $v1,$at,.NB00010688 +/* 1065c: 240c7cfa */ addiu $t4,$zero,0x7cfa +/* 10660: 24010003 */ addiu $at,$zero,0x3 +/* 10664: 1061000a */ beq $v1,$at,.NB00010690 +/* 10668: 240d7cfb */ addiu $t5,$zero,0x7cfb +/* 1066c: 1000002a */ beqz $zero,.NB00010718 +/* 10670: 3c01bf80 */ lui $at,0xbf80 +.NB00010674: +/* 10674: 240a7cf8 */ addiu $t2,$zero,0x7cf8 +/* 10678: 10000026 */ beqz $zero,.NB00010714 +/* 1067c: a7aa0034 */ sh $t2,0x34($sp) +.NB00010680: +/* 10680: 10000024 */ beqz $zero,.NB00010714 +/* 10684: a7ab0034 */ sh $t3,0x34($sp) +.NB00010688: +/* 10688: 10000022 */ beqz $zero,.NB00010714 +/* 1068c: a7ac0034 */ sh $t4,0x34($sp) +.NB00010690: +/* 10690: 10000020 */ beqz $zero,.NB00010714 +/* 10694: a7ad0034 */ sh $t5,0x34($sp) +/* 10698: 24010003 */ addiu $at,$zero,0x3 +.NB0001069c: +/* 1069c: 5441001e */ bnel $v0,$at,.NB00010718 +/* 106a0: 3c01bf80 */ lui $at,0xbf80 +.NB000106a4: +/* 106a4: 0c004d84 */ jal 0x13610 +/* 106a8: 00000000 */ sll $zero,$zero,0x0 +/* 106ac: 8e0e0018 */ lw $t6,0x18($s0) +/* 106b0: 30430003 */ andi $v1,$v0,0x3 +/* 106b4: 11c3fffb */ beq $t6,$v1,.NB000106a4 +/* 106b8: 00000000 */ sll $zero,$zero,0x0 +/* 106bc: 3c018009 */ lui $at,0x8009 +/* 106c0: 1060000c */ beqz $v1,.NB000106f4 +/* 106c4: ac237e48 */ sw $v1,0x7e48($at) +/* 106c8: 24010001 */ addiu $at,$zero,0x1 +/* 106cc: 1061000c */ beq $v1,$at,.NB00010700 +/* 106d0: 241877b7 */ addiu $t8,$zero,0x77b7 +/* 106d4: 24010002 */ addiu $at,$zero,0x2 +/* 106d8: 1061000b */ beq $v1,$at,.NB00010708 +/* 106dc: 241977b8 */ addiu $t9,$zero,0x77b8 +/* 106e0: 24010003 */ addiu $at,$zero,0x3 +/* 106e4: 1061000a */ beq $v1,$at,.NB00010710 +/* 106e8: 240877b9 */ addiu $t0,$zero,0x77b9 +/* 106ec: 1000000a */ beqz $zero,.NB00010718 +/* 106f0: 3c01bf80 */ lui $at,0xbf80 +.NB000106f4: +/* 106f4: 240f77b6 */ addiu $t7,$zero,0x77b6 +/* 106f8: 10000006 */ beqz $zero,.NB00010714 +/* 106fc: a7af0034 */ sh $t7,0x34($sp) +.NB00010700: +/* 10700: 10000004 */ beqz $zero,.NB00010714 +/* 10704: a7b80034 */ sh $t8,0x34($sp) +.NB00010708: +/* 10708: 10000002 */ beqz $zero,.NB00010714 +/* 1070c: a7b90034 */ sh $t9,0x34($sp) +.NB00010710: +/* 10710: a7a80034 */ sh $t0,0x34($sp) +.NB00010714: +/* 10714: 3c01bf80 */ lui $at,0xbf80 +.NB00010718: +/* 10718: 44812000 */ mtc1 $at,$f4 +/* 1071c: 2409ffff */ addiu $t1,$zero,-1 +/* 10720: 240affff */ addiu $t2,$zero,-1 +/* 10724: 240bffff */ addiu $t3,$zero,-1 +/* 10728: 240cffff */ addiu $t4,$zero,-1 +/* 1072c: ae09000c */ sw $t1,0xc($s0) +/* 10730: afac001c */ sw $t4,0x1c($sp) +/* 10734: afab0018 */ sw $t3,0x18($sp) +/* 10738: afaa0010 */ sw $t2,0x10($sp) +/* 1073c: 00002025 */ or $a0,$zero,$zero +/* 10740: 87a50034 */ lh $a1,0x34($sp) +/* 10744: 00003025 */ or $a2,$zero,$zero +/* 10748: 2407ffff */ addiu $a3,$zero,-1 +/* 1074c: 0c004338 */ jal 0x10ce0 +/* 10750: e7a40014 */ swc1 $f4,0x14($sp) +.NB00010754: +/* 10754: 8fbf002c */ lw $ra,0x2c($sp) +.NB00010758: +/* 10758: 8fb00028 */ lw $s0,0x28($sp) +/* 1075c: 27bd0040 */ addiu $sp,$sp,0x40 +/* 10760: 03e00008 */ jr $ra +/* 10764: 00000000 */ sll $zero,$zero,0x0 +); #endif GLOBAL_ASM( @@ -3143,6 +4131,7 @@ glabel func0001036c /* 10408: 00000000 */ nop ); +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel audioIsFiltered /* 1040c: 3c0e800a */ lui $t6,%hi(g_Vars+0x4e3) @@ -3186,6 +4175,38 @@ glabel audioIsFiltered /* 10498: 03e00008 */ jr $ra /* 1049c: 27bd0008 */ addiu $sp,$sp,0x8 ); +#else +GLOBAL_ASM( +glabel audioIsFiltered +/* 10828: 3c0e800a */ lui $t6,0x800a +/* 1082c: 91ceeba3 */ lbu $t6,-0x145d($t6) +/* 10830: 27bdfff8 */ addiu $sp,$sp,-8 +/* 10834: 00001025 */ or $v0,$zero,$zero +/* 10838: 11c00013 */ beqz $t6,.NB00010888 +/* 1083c: 00000000 */ sll $zero,$zero,0x0 +/* 10840: a7a40004 */ sh $a0,0x4($sp) +/* 10844: 8faf0004 */ lw $t7,0x4($sp) +/* 10848: 30887fff */ andi $t0,$a0,0x7fff +/* 1084c: 00084880 */ sll $t1,$t0,0x2 +/* 10850: 000fc7c2 */ srl $t8,$t7,0x1f +/* 10854: 1300000c */ beqz $t8,.NB00010888 +/* 10858: 3c0a8006 */ lui $t2,0x8006 +/* 1085c: 01495021 */ addu $t2,$t2,$t1 +/* 10860: 954af6fa */ lhu $t2,-0x906($t2) +/* 10864: 3c0c8006 */ lui $t4,0x8006 +/* 10868: 000a5940 */ sll $t3,$t2,0x5 +/* 1086c: 018b6021 */ addu $t4,$t4,$t3 +/* 10870: 8d8cfdec */ lw $t4,-0x214($t4) +/* 10874: 318d0010 */ andi $t5,$t4,0x10 +/* 10878: 11a00003 */ beqz $t5,.NB00010888 +/* 1087c: 00000000 */ sll $zero,$zero,0x0 +/* 10880: 10000001 */ beqz $zero,.NB00010888 +/* 10884: 24020001 */ addiu $v0,$zero,0x1 +.NB00010888: +/* 10888: 03e00008 */ jr $ra +/* 1088c: 27bd0008 */ addiu $sp,$sp,0x8 +); +#endif // Mismatch because goal is doing something funky with the audio_id. // It stores a halfword on the stack, then reads it back as a full word. @@ -3217,6 +4238,7 @@ glabel audioIsFiltered // return false; //} +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel audioAdjust /* 104a0: 27bdffd8 */ addiu $sp,$sp,-40 @@ -3395,7 +4417,186 @@ glabel audioAdjust /* 10710: 03e00008 */ jr $ra /* 10714: 00000000 */ nop ); +#else +GLOBAL_ASM( +glabel audioAdjust +/* 10890: 27bdffd8 */ addiu $sp,$sp,-40 +/* 10894: 8faf0048 */ lw $t7,0x48($sp) +/* 10898: 240effff */ addiu $t6,$zero,-1 +/* 1089c: afbf0014 */ sw $ra,0x14($sp) +/* 108a0: afa40028 */ sw $a0,0x28($sp) +/* 108a4: afa5002c */ sw $a1,0x2c($sp) +/* 108a8: 15e00005 */ bnez $t7,.NB000108c0 +/* 108ac: afae0024 */ sw $t6,0x24($sp) +/* 108b0: 8fa20044 */ lw $v0,0x44($sp) +/* 108b4: 2409ffff */ addiu $t1,$zero,-1 +/* 108b8: 50490012 */ beql $v0,$t1,.NB00010904 +/* 108bc: 8fa20038 */ lw $v0,0x38($sp) +.NB000108c0: +/* 108c0: 8fa20044 */ lw $v0,0x44($sp) +/* 108c4: 2409ffff */ addiu $t1,$zero,-1 +/* 108c8: 3c188006 */ lui $t8,0x8006 +/* 108cc: 10490003 */ beq $v0,$t1,.NB000108dc +/* 108d0: 30f90080 */ andi $t9,$a3,0x80 +/* 108d4: 10000002 */ beqz $zero,.NB000108e0 +/* 108d8: afa20024 */ sw $v0,0x24($sp) +.NB000108dc: +/* 108dc: afa00024 */ sw $zero,0x24($sp) +.NB000108e0: +/* 108e0: 8f18f6ec */ lw $t8,-0x914($t8) +/* 108e4: 24010003 */ addiu $at,$zero,0x3 +/* 108e8: 57010006 */ bnel $t8,$at,.NB00010904 +/* 108ec: 8fa20038 */ lw $v0,0x38($sp) +/* 108f0: 13200003 */ beqz $t9,.NB00010900 +/* 108f4: 8faa0024 */ lw $t2,0x24($sp) +/* 108f8: 254b0080 */ addiu $t3,$t2,0x80 +/* 108fc: afab0024 */ sw $t3,0x24($sp) +.NB00010900: +/* 10900: 8fa20038 */ lw $v0,0x38($sp) +.NB00010904: +/* 10904: 58400036 */ blezl $v0,.NB000109e0 +/* 10908: 8fac002c */ lw $t4,0x2c($sp) +/* 1090c: a7a20020 */ sh $v0,0x20($sp) +/* 10910: 8fac0020 */ lw $t4,0x20($sp) +/* 10914: 3c058006 */ lui $a1,0x8006 +/* 10918: 24a5f6f8 */ addiu $a1,$a1,-2312 +/* 1091c: 000c6fc2 */ srl $t5,$t4,0x1f +/* 10920: 11a0002e */ beqz $t5,.NB000109dc +/* 10924: 00407025 */ or $t6,$v0,$zero +/* 10928: 31cf7fff */ andi $t7,$t6,0x7fff +/* 1092c: 000fc080 */ sll $t8,$t7,0x2 +/* 10930: 00b8c821 */ addu $t9,$a1,$t8 +/* 10934: 00b85021 */ addu $t2,$a1,$t8 +/* 10938: 97220002 */ lhu $v0,0x2($t9) +/* 1093c: 854b0000 */ lh $t3,0x0($t2) +/* 10940: 3c0f8006 */ lui $t7,0x8006 +/* 10944: 25effdd0 */ addiu $t7,$t7,-560 +/* 10948: 00027140 */ sll $t6,$v0,0x5 +/* 1094c: a7ab001c */ sh $t3,0x1c($sp) +/* 10950: 93ac001c */ lbu $t4,0x1c($sp) +/* 10954: 01cf2021 */ addu $a0,$t6,$t7 +/* 10958: 8c830010 */ lw $v1,0x10($a0) +/* 1095c: 24080064 */ addiu $t0,$zero,0x64 +/* 10960: 318dff7f */ andi $t5,$t4,0xff7f +/* 10964: 11030010 */ beq $t0,$v1,.NB000109a8 +/* 10968: a3ad001c */ sb $t5,0x1c($sp) +/* 1096c: 00660019 */ multu $v1,$a2 +/* 10970: 0000c812 */ mflo $t9 +/* 10974: 00000000 */ sll $zero,$zero,0x0 +/* 10978: 00000000 */ sll $zero,$zero,0x0 +/* 1097c: 0328001a */ div $zero,$t9,$t0 +/* 10980: 00003012 */ mflo $a2 +/* 10984: 15000002 */ bnez $t0,.NB00010990 +/* 10988: 00000000 */ sll $zero,$zero,0x0 +/* 1098c: 0007000d */ break 0x7 +.NB00010990: +/* 10990: 2401ffff */ addiu $at,$zero,-1 +/* 10994: 15010004 */ bne $t0,$at,.NB000109a8 +/* 10998: 3c018000 */ lui $at,0x8000 +/* 1099c: 17210002 */ bne $t9,$at,.NB000109a8 +/* 109a0: 00000000 */ sll $zero,$zero,0x0 +/* 109a4: 0006000d */ break 0x6 +.NB000109a8: +/* 109a8: 8c820014 */ lw $v0,0x14($a0) +/* 109ac: 3c18800a */ lui $t8,0x800a +/* 109b0: 11220002 */ beq $t1,$v0,.NB000109bc +/* 109b4: 00000000 */ sll $zero,$zero,0x0 +/* 109b8: 00403825 */ or $a3,$v0,$zero +.NB000109bc: +/* 109bc: 9318eba3 */ lbu $t8,-0x145d($t8) +/* 109c0: 53000007 */ beqzl $t8,.NB000109e0 +/* 109c4: 8fac002c */ lw $t4,0x2c($sp) +/* 109c8: 8c8a001c */ lw $t2,0x1c($a0) +/* 109cc: 314b0010 */ andi $t3,$t2,0x10 +/* 109d0: 51600003 */ beqzl $t3,.NB000109e0 +/* 109d4: 8fac002c */ lw $t4,0x2c($sp) +/* 109d8: 00003025 */ or $a2,$zero,$zero +.NB000109dc: +/* 109dc: 8fac002c */ lw $t4,0x2c($sp) +.NB000109e0: +/* 109e0: 5180001f */ beqzl $t4,.NB00010a60 +/* 109e4: 8fae0028 */ lw $t6,0x28($sp) +/* 109e8: 10c90013 */ beq $a2,$t1,.NB00010a38 +/* 109ec: 00000000 */ sll $zero,$zero,0x0 +/* 109f0: afa60030 */ sw $a2,0x30($sp) +/* 109f4: 0c003c6f */ jal 0xf1bc +/* 109f8: afa70034 */ sw $a3,0x34($sp) +/* 109fc: 8fa60030 */ lw $a2,0x30($sp) +/* 10a00: 24017fff */ addiu $at,$zero,0x7fff +/* 10a04: 24050001 */ addiu $a1,$zero,0x1 +/* 10a08: 00460019 */ multu $v0,$a2 +/* 10a0c: 00003012 */ mflo $a2 +/* 10a10: 00000000 */ sll $zero,$zero,0x0 +/* 10a14: 00000000 */ sll $zero,$zero,0x0 +/* 10a18: 00c1001a */ div $zero,$a2,$at +/* 10a1c: 00002012 */ mflo $a0 +/* 10a20: afa40030 */ sw $a0,0x30($sp) +/* 10a24: 0c00e4b6 */ jal 0x392d8 +/* 10a28: 00000000 */ sll $zero,$zero,0x0 +/* 10a2c: 8fa60030 */ lw $a2,0x30($sp) +/* 10a30: 8fa70034 */ lw $a3,0x34($sp) +/* 10a34: 2409ffff */ addiu $t1,$zero,-1 +.NB00010a38: +/* 10a38: 10e90008 */ beq $a3,$t1,.NB00010a5c +/* 10a3c: 00e02025 */ or $a0,$a3,$zero +/* 10a40: 24050001 */ addiu $a1,$zero,0x1 +/* 10a44: afa60030 */ sw $a2,0x30($sp) +/* 10a48: 0c00e4cb */ jal 0x3932c +/* 10a4c: afa70034 */ sw $a3,0x34($sp) +/* 10a50: 8fa60030 */ lw $a2,0x30($sp) +/* 10a54: 8fa70034 */ lw $a3,0x34($sp) +/* 10a58: 2409ffff */ addiu $t1,$zero,-1 +.NB00010a5c: +/* 10a5c: 8fae0028 */ lw $t6,0x28($sp) +.NB00010a60: +/* 10a60: 8dc40000 */ lw $a0,0x0($t6) +/* 10a64: 50800022 */ beqzl $a0,.NB00010af0 +/* 10a68: 8fbf0014 */ lw $ra,0x14($sp) +/* 10a6c: 10c90005 */ beq $a2,$t1,.NB00010a84 +/* 10a70: 24050008 */ addiu $a1,$zero,0x8 +/* 10a74: 0c00d492 */ jal 0x35248 +/* 10a78: afa70034 */ sw $a3,0x34($sp) +/* 10a7c: 8fa70034 */ lw $a3,0x34($sp) +/* 10a80: 2409ffff */ addiu $t1,$zero,-1 +.NB00010a84: +/* 10a84: 10e90006 */ beq $a3,$t1,.NB00010aa0 +/* 10a88: 8faf0028 */ lw $t7,0x28($sp) +/* 10a8c: 8de40000 */ lw $a0,0x0($t7) +/* 10a90: 24050004 */ addiu $a1,$zero,0x4 +/* 10a94: 0c00d492 */ jal 0x35248 +/* 10a98: 30e6007f */ andi $a2,$a3,0x7f +/* 10a9c: 2409ffff */ addiu $t1,$zero,-1 +.NB00010aa0: +/* 10aa0: 3c01bf80 */ lui $at,0xbf80 +/* 10aa4: 44813000 */ mtc1 $at,$f6 +/* 10aa8: c7a4003c */ lwc1 $f4,0x3c($sp) +/* 10aac: 8fb90028 */ lw $t9,0x28($sp) +/* 10ab0: 24050010 */ addiu $a1,$zero,0x10 +/* 10ab4: 46062032 */ c.eq.s $f4,$f6 +/* 10ab8: 8fa6003c */ lw $a2,0x3c($sp) +/* 10abc: 45030005 */ bc1tl .NB00010ad4 +/* 10ac0: 8fb80024 */ lw $t8,0x24($sp) +/* 10ac4: 0c00d492 */ jal 0x35248 +/* 10ac8: 8f240000 */ lw $a0,0x0($t9) +/* 10acc: 2409ffff */ addiu $t1,$zero,-1 +/* 10ad0: 8fb80024 */ lw $t8,0x24($sp) +.NB00010ad4: +/* 10ad4: 8faa0028 */ lw $t2,0x28($sp) +/* 10ad8: 24050100 */ addiu $a1,$zero,0x100 +/* 10adc: 13090003 */ beq $t8,$t1,.NB00010aec +/* 10ae0: 03003025 */ or $a2,$t8,$zero +/* 10ae4: 0c00d492 */ jal 0x35248 +/* 10ae8: 8d440000 */ lw $a0,0x0($t2) +.NB00010aec: +/* 10aec: 8fbf0014 */ lw $ra,0x14($sp) +.NB00010af0: +/* 10af0: 27bd0028 */ addiu $sp,$sp,0x28 +/* 10af4: 03e00008 */ jr $ra +/* 10af8: 00000000 */ sll $zero,$zero,0x0 +); +#endif +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func00010718 /* 10718: 27bdffc0 */ addiu $sp,$sp,-64 @@ -3530,7 +4731,142 @@ glabel func00010718 /* 108fc: 03e00008 */ jr $ra /* 10900: 00000000 */ nop ); +#else +GLOBAL_ASM( +glabel func00010718 +/* 10afc: 27bdffc0 */ addiu $sp,$sp,-64 +/* 10b00: afbf0024 */ sw $ra,0x24($sp) +/* 10b04: afa40040 */ sw $a0,0x40($sp) +/* 10b08: afa50044 */ sw $a1,0x44($sp) +/* 10b0c: afa60048 */ sw $a2,0x48($sp) +/* 10b10: afa7004c */ sw $a3,0x4c($sp) +/* 10b14: 0c012724 */ jal 0x49c90 +/* 10b18: 00002025 */ or $a0,$zero,$zero +/* 10b1c: 2408ffff */ addiu $t0,$zero,-1 +/* 10b20: 3c048009 */ lui $a0,0x8009 +/* 10b24: afa2003c */ sw $v0,0x3c($sp) +/* 10b28: 24843bd0 */ addiu $a0,$a0,0x3bd0 +/* 10b2c: 0c012724 */ jal 0x49c90 +/* 10b30: afa80038 */ sw $t0,0x38($sp) +/* 10b34: 00002025 */ or $a0,$zero,$zero +/* 10b38: 0c012600 */ jal 0x49800 +/* 10b3c: 24450001 */ addiu $a1,$v0,0x1 +/* 10b40: 8fae0060 */ lw $t6,0x60($sp) +/* 10b44: 8fa80038 */ lw $t0,0x38($sp) +/* 10b48: 8fa2005c */ lw $v0,0x5c($sp) +/* 10b4c: 15c00004 */ bnez $t6,.NB00010b60 +/* 10b50: 8fa90050 */ lw $t1,0x50($sp) +/* 10b54: 2407ffff */ addiu $a3,$zero,-1 +/* 10b58: 10470010 */ beq $v0,$a3,.NB00010b9c +/* 10b5c: 00000000 */ sll $zero,$zero,0x0 +.NB00010b60: +/* 10b60: 8fa2005c */ lw $v0,0x5c($sp) +/* 10b64: 2407ffff */ addiu $a3,$zero,-1 +/* 10b68: 00004025 */ or $t0,$zero,$zero +/* 10b6c: 10470003 */ beq $v0,$a3,.NB00010b7c +/* 10b70: 3c0f8006 */ lui $t7,0x8006 +/* 10b74: 10000001 */ beqz $zero,.NB00010b7c +/* 10b78: 00404025 */ or $t0,$v0,$zero +.NB00010b7c: +/* 10b7c: 8deff6ec */ lw $t7,-0x914($t7) +/* 10b80: 8fb8004c */ lw $t8,0x4c($sp) +/* 10b84: 24010003 */ addiu $at,$zero,0x3 +/* 10b88: 15e10004 */ bne $t7,$at,.NB00010b9c +/* 10b8c: 33190080 */ andi $t9,$t8,0x80 +/* 10b90: 13200002 */ beqz $t9,.NB00010b9c +/* 10b94: 00000000 */ sll $zero,$zero,0x0 +/* 10b98: 25080080 */ addiu $t0,$t0,0x80 +.NB00010b9c: +/* 10b9c: 51200039 */ beqzl $t1,.NB00010c84 +/* 10ba0: 8fad004c */ lw $t5,0x4c($sp) +/* 10ba4: a7a90030 */ sh $t1,0x30($sp) +/* 10ba8: 8faa0030 */ lw $t2,0x30($sp) +/* 10bac: 3c058006 */ lui $a1,0x8006 +/* 10bb0: 24a5f6f8 */ addiu $a1,$a1,-2312 +/* 10bb4: 000a5fc2 */ srl $t3,$t2,0x1f +/* 10bb8: 11600031 */ beqz $t3,.NB00010c80 +/* 10bbc: 24060064 */ addiu $a2,$zero,0x64 +/* 10bc0: 01206025 */ or $t4,$t1,$zero +/* 10bc4: 318d7fff */ andi $t5,$t4,0x7fff +/* 10bc8: 000d7080 */ sll $t6,$t5,0x2 +/* 10bcc: 00aec021 */ addu $t8,$a1,$t6 +/* 10bd0: 87190000 */ lh $t9,0x0($t8) +/* 10bd4: 00ae7821 */ addu $t7,$a1,$t6 +/* 10bd8: 95e20002 */ lhu $v0,0x2($t7) +/* 10bdc: 3c0d8006 */ lui $t5,0x8006 +/* 10be0: a7b9002c */ sh $t9,0x2c($sp) +/* 10be4: 93aa002c */ lbu $t2,0x2c($sp) +/* 10be8: 25adfdd0 */ addiu $t5,$t5,-560 +/* 10bec: 00026140 */ sll $t4,$v0,0x5 +/* 10bf0: 018d2021 */ addu $a0,$t4,$t5 +/* 10bf4: 8c830010 */ lw $v1,0x10($a0) +/* 10bf8: 314bff7f */ andi $t3,$t2,0xff7f +/* 10bfc: a3ab002c */ sb $t3,0x2c($sp) +/* 10c00: 10c30012 */ beq $a2,$v1,.NB00010c4c +/* 10c04: 87a9002c */ lh $t1,0x2c($sp) +/* 10c08: 8faf0048 */ lw $t7,0x48($sp) +/* 10c0c: 006f0019 */ multu $v1,$t7 +/* 10c10: 00007012 */ mflo $t6 +/* 10c14: 00000000 */ sll $zero,$zero,0x0 +/* 10c18: 00000000 */ sll $zero,$zero,0x0 +/* 10c1c: 01c6001a */ div $zero,$t6,$a2 +/* 10c20: 0000c012 */ mflo $t8 +/* 10c24: afb80048 */ sw $t8,0x48($sp) +/* 10c28: 14c00002 */ bnez $a2,.NB00010c34 +/* 10c2c: 00000000 */ sll $zero,$zero,0x0 +/* 10c30: 0007000d */ break 0x7 +.NB00010c34: +/* 10c34: 2401ffff */ addiu $at,$zero,-1 +/* 10c38: 14c10004 */ bne $a2,$at,.NB00010c4c +/* 10c3c: 3c018000 */ lui $at,0x8000 +/* 10c40: 15c10002 */ bne $t6,$at,.NB00010c4c +/* 10c44: 00000000 */ sll $zero,$zero,0x0 +/* 10c48: 0006000d */ break 0x6 +.NB00010c4c: +/* 10c4c: 8c820014 */ lw $v0,0x14($a0) +/* 10c50: 3c19800a */ lui $t9,0x800a +/* 10c54: 10e20002 */ beq $a3,$v0,.NB00010c60 +/* 10c58: 00000000 */ sll $zero,$zero,0x0 +/* 10c5c: afa2004c */ sw $v0,0x4c($sp) +.NB00010c60: +/* 10c60: 9339eba3 */ lbu $t9,-0x145d($t9) +/* 10c64: 53200007 */ beqzl $t9,.NB00010c84 +/* 10c68: 8fad004c */ lw $t5,0x4c($sp) +/* 10c6c: 8c8a001c */ lw $t2,0x1c($a0) +/* 10c70: 314b0010 */ andi $t3,$t2,0x10 +/* 10c74: 51600003 */ beqzl $t3,.NB00010c84 +/* 10c78: 8fad004c */ lw $t5,0x4c($sp) +/* 10c7c: afa00048 */ sw $zero,0x48($sp) +.NB00010c80: +/* 10c80: 8fad004c */ lw $t5,0x4c($sp) +.NB00010c84: +/* 10c84: c7a40054 */ lwc1 $f4,0x54($sp) +/* 10c88: 8faf0058 */ lw $t7,0x58($sp) +/* 10c8c: 00092c00 */ sll $a1,$t1,0x10 +/* 10c90: 00056403 */ sra $t4,$a1,0x10 +/* 10c94: 3c04800a */ lui $a0,0x800a +/* 10c98: 8c848180 */ lw $a0,-0x7e80($a0) +/* 10c9c: 01802825 */ or $a1,$t4,$zero +/* 10ca0: 8fa60040 */ lw $a2,0x40($sp) +/* 10ca4: 8fa70048 */ lw $a3,0x48($sp) +/* 10ca8: afa8001c */ sw $t0,0x1c($sp) +/* 10cac: afad0010 */ sw $t5,0x10($sp) +/* 10cb0: e7a40014 */ swc1 $f4,0x14($sp) +/* 10cb4: 0c004338 */ jal 0x10ce0 +/* 10cb8: afaf0018 */ sw $t7,0x18($sp) +/* 10cbc: afa20034 */ sw $v0,0x34($sp) +/* 10cc0: 00002025 */ or $a0,$zero,$zero +/* 10cc4: 0c012600 */ jal 0x49800 +/* 10cc8: 8fa5003c */ lw $a1,0x3c($sp) +/* 10ccc: 8fbf0024 */ lw $ra,0x24($sp) +/* 10cd0: 8fa20034 */ lw $v0,0x34($sp) +/* 10cd4: 27bd0040 */ addiu $sp,$sp,0x40 +/* 10cd8: 03e00008 */ jr $ra +/* 10cdc: 00000000 */ sll $zero,$zero,0x0 +); +#endif +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel audioStart /* 10904: 27bdffb8 */ addiu $sp,$sp,-72 @@ -3671,6 +5007,140 @@ glabel audioStart /* 10adc: 03e00008 */ jr $ra /* 10ae0: 00000000 */ nop ); +#else +GLOBAL_ASM( +glabel audioStart +/* 10ce0: 27bdffb8 */ addiu $sp,$sp,-72 +/* 10ce4: 8fae0064 */ lw $t6,0x64($sp) +/* 10ce8: 2402ffff */ addiu $v0,$zero,-1 +/* 10cec: afbf0024 */ sw $ra,0x24($sp) +/* 10cf0: afa40048 */ sw $a0,0x48($sp) +/* 10cf4: afa5004c */ sw $a1,0x4c($sp) +/* 10cf8: 11c20003 */ beq $t6,$v0,.NB00010d08 +/* 10cfc: afa60050 */ sw $a2,0x50($sp) +/* 10d00: 10000002 */ beqz $zero,.NB00010d0c +/* 10d04: 93a90067 */ lbu $t1,0x67($sp) +.NB00010d08: +/* 10d08: 00004825 */ or $t1,$zero,$zero +.NB00010d0c: +/* 10d0c: 8fa30060 */ lw $v1,0x60($sp) +/* 10d10: 44802000 */ mtc1 $zero,$f4 +/* 10d14: 24050001 */ addiu $a1,$zero,0x1 +/* 10d18: 10620003 */ beq $v1,$v0,.NB00010d28 +/* 10d1c: 3c198006 */ lui $t9,0x8006 +/* 10d20: 10000001 */ beqz $zero,.NB00010d28 +/* 10d24: 306500ff */ andi $a1,$v1,0xff +.NB00010d28: +/* 10d28: 8fa30058 */ lw $v1,0x58($sp) +/* 10d2c: 24080040 */ addiu $t0,$zero,0x40 +/* 10d30: 240f7fff */ addiu $t7,$zero,0x7fff +/* 10d34: 10620003 */ beq $v1,$v0,.NB00010d44 +/* 10d38: 3c013f80 */ lui $at,0x3f80 +/* 10d3c: 10000001 */ beqz $zero,.NB00010d44 +/* 10d40: 306800ff */ andi $t0,$v1,0xff +.NB00010d44: +/* 10d44: 50e20004 */ beql $a3,$v0,.NB00010d58 +/* 10d48: a7af003a */ sh $t7,0x3a($sp) +/* 10d4c: 10000002 */ beqz $zero,.NB00010d58 +/* 10d50: a7a7003a */ sh $a3,0x3a($sp) +/* 10d54: a7af003a */ sh $t7,0x3a($sp) +.NB00010d58: +/* 10d58: c7a2005c */ lwc1 $f2,0x5c($sp) +/* 10d5c: 4602203c */ c.lt.s $f4,$f2 +/* 10d60: 00000000 */ sll $zero,$zero,0x0 +/* 10d64: 45020004 */ bc1fl .NB00010d78 +/* 10d68: 44810000 */ mtc1 $at,$f0 +/* 10d6c: 10000003 */ beqz $zero,.NB00010d7c +/* 10d70: 46001006 */ mov.s $f0,$f2 +/* 10d74: 44810000 */ mtc1 $at,$f0 +.NB00010d78: +/* 10d78: 00000000 */ sll $zero,$zero,0x0 +.NB00010d7c: +/* 10d7c: 8f39f6c0 */ lw $t9,-0x940($t9) +/* 10d80: 87b8004e */ lh $t8,0x4e($sp) +/* 10d84: 24010037 */ addiu $at,$zero,0x37 +/* 10d88: 13200003 */ beqz $t9,.NB00010d98 +/* 10d8c: a7b80044 */ sh $t8,0x44($sp) +/* 10d90: 10000040 */ beqz $zero,.NB00010e94 +/* 10d94: 00001025 */ or $v0,$zero,$zero +.NB00010d98: +/* 10d98: 8fab0044 */ lw $t3,0x44($sp) +/* 10d9c: 97ad0044 */ lhu $t5,0x44($sp) +/* 10da0: 87a40044 */ lh $a0,0x44($sp) +/* 10da4: 000b67c2 */ srl $t4,$t3,0x1f +/* 10da8: 11800006 */ beqz $t4,.NB00010dc4 +/* 10dac: 31ae7fff */ andi $t6,$t5,0x7fff +/* 10db0: 000e7880 */ sll $t7,$t6,0x2 +/* 10db4: 3c048006 */ lui $a0,0x8006 +/* 10db8: 008f2021 */ addu $a0,$a0,$t7 +/* 10dbc: 10000001 */ beqz $zero,.NB00010dc4 +/* 10dc0: 8484f6f8 */ lh $a0,-0x908($a0) +.NB00010dc4: +/* 10dc4: 308307ff */ andi $v1,$a0,0x7ff +/* 10dc8: 10610003 */ beq $v1,$at,.NB00010dd8 +/* 10dcc: 24010009 */ addiu $at,$zero,0x9 +/* 10dd0: 54610004 */ bnel $v1,$at,.NB00010de4 +/* 10dd4: afa3002c */ sw $v1,0x2c($sp) +.NB00010dd8: +/* 10dd8: 1000002e */ beqz $zero,.NB00010e94 +/* 10ddc: 00001025 */ or $v0,$zero,$zero +/* 10de0: afa3002c */ sw $v1,0x2c($sp) +.NB00010de4: +/* 10de4: a7a40040 */ sh $a0,0x40($sp) +/* 10de8: a3a5003e */ sb $a1,0x3e($sp) +/* 10dec: a3a8003d */ sb $t0,0x3d($sp) +/* 10df0: a3a9003f */ sb $t1,0x3f($sp) +/* 10df4: 0c00400e */ jal 0x10038 +/* 10df8: e7a00034 */ swc1 $f0,0x34($sp) +/* 10dfc: 8fa3002c */ lw $v1,0x2c($sp) +/* 10e00: 87a40040 */ lh $a0,0x40($sp) +/* 10e04: 93a5003e */ lbu $a1,0x3e($sp) +/* 10e08: 93a8003d */ lbu $t0,0x3d($sp) +/* 10e0c: 93a9003f */ lbu $t1,0x3f($sp) +/* 10e10: 8faa0050 */ lw $t2,0x50($sp) +/* 10e14: 1040000b */ beqz $v0,.NB00010e44 +/* 10e18: c7a00034 */ lwc1 $f0,0x34($sp) +/* 10e1c: 97a5003a */ lhu $a1,0x3a($sp) +/* 10e20: 01003025 */ or $a2,$t0,$zero +/* 10e24: 0c0043a9 */ jal 0x10ea4 +/* 10e28: 00003825 */ or $a3,$zero,$zero +/* 10e2c: 8faa0050 */ lw $t2,0x50($sp) +/* 10e30: 11400002 */ beqz $t2,.NB00010e3c +/* 10e34: 00000000 */ sll $zero,$zero,0x0 +/* 10e38: ad400000 */ sw $zero,0x0($t2) +.NB00010e3c: +/* 10e3c: 10000015 */ beqz $zero,.NB00010e94 +/* 10e40: 00001025 */ or $v0,$zero,$zero +.NB00010e44: +/* 10e44: 3c188009 */ lui $t8,0x8009 +/* 10e48: 931830e0 */ lbu $t8,0x30e0($t8) +/* 10e4c: 24010001 */ addiu $at,$zero,0x1 +/* 10e50: 8fa40048 */ lw $a0,0x48($sp) +/* 10e54: 17010003 */ bne $t8,$at,.NB00010e64 +/* 10e58: 97a6003a */ lhu $a2,0x3a($sp) +/* 10e5c: 10000002 */ beqz $zero,.NB00010e68 +/* 10e60: 00001025 */ or $v0,$zero,$zero +.NB00010e64: +/* 10e64: 00a01025 */ or $v0,$a1,$zero +.NB00010e68: +/* 10e68: 00032c00 */ sll $a1,$v1,0x10 +/* 10e6c: 01003825 */ or $a3,$t0,$zero +/* 10e70: 30eb007f */ andi $t3,$a3,0x7f +/* 10e74: 0005cc03 */ sra $t9,$a1,0x10 +/* 10e78: 03202825 */ or $a1,$t9,$zero +/* 10e7c: 01603825 */ or $a3,$t3,$zero +/* 10e80: e7a00010 */ swc1 $f0,0x10($sp) +/* 10e84: afa90014 */ sw $t1,0x14($sp) +/* 10e88: afa20018 */ sw $v0,0x18($sp) +/* 10e8c: 0c00d36c */ jal 0x34db0 +/* 10e90: afaa001c */ sw $t2,0x1c($sp) +.NB00010e94: +/* 10e94: 8fbf0024 */ lw $ra,0x24($sp) +/* 10e98: 27bd0048 */ addiu $sp,$sp,0x48 +/* 10e9c: 03e00008 */ jr $ra +/* 10ea0: 00000000 */ sll $zero,$zero,0x0 +); +#endif GLOBAL_ASM( glabel func00010ae4 diff --git a/src/lib/lib_11420.c b/src/lib/lib_11420.c index c2f880e67..389cb1ba3 100644 --- a/src/lib/lib_11420.c +++ b/src/lib/lib_11420.c @@ -410,6 +410,7 @@ glabel func00011884 /* 118f0: 24020001 */ addiu $v0,$zero,0x1 ); +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func000118f4 /* 118f4: afa50004 */ sw $a1,0x4($sp) @@ -419,7 +420,9 @@ glabel func000118f4 /* 11904: 03e00008 */ jr $ra /* 11908: ac2e40e0 */ sw $t6,%lo(var800840e0)($at) ); +#endif +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func0001190c .late_rodata @@ -751,6 +754,339 @@ glabel var70053fec /* 11d7c: 03e00008 */ jr $ra /* 11d80: 27bd0048 */ addiu $sp,$sp,0x48 ); +#else +GLOBAL_ASM( +glabel func0001190c +.late_rodata +glabel var70053fdc +.word func0001190c+0x324 +glabel var70053fe0 +.word func0001190c+0x338 +glabel var70053fe4 +.word func0001190c+0x34c +glabel var70053fe8 +.word func0001190c+0x360 +glabel var70053fec +.word func0001190c+0x370 +.text +/* 11cb4: 27bdffa8 */ addiu $sp,$sp,-88 +/* 11cb8: 3c0e8006 */ lui $t6,0x8006 +/* 11cbc: 8dcef6c0 */ lw $t6,-0x940($t6) +/* 11cc0: afbf0034 */ sw $ra,0x34($sp) +/* 11cc4: afb60030 */ sw $s6,0x30($sp) +/* 11cc8: afb5002c */ sw $s5,0x2c($sp) +/* 11ccc: afb40028 */ sw $s4,0x28($sp) +/* 11cd0: afb30024 */ sw $s3,0x24($sp) +/* 11cd4: afb20020 */ sw $s2,0x20($sp) +/* 11cd8: afb1001c */ sw $s1,0x1c($sp) +/* 11cdc: 15c00106 */ bnez $t6,.NB000120f8 +/* 11ce0: afb00018 */ sw $s0,0x18($sp) +/* 11ce4: 3c168008 */ lui $s6,0x8008 +/* 11ce8: 3c10800b */ lui $s0,0x800b +/* 11cec: 3c157005 */ lui $s5,0x7005 +/* 11cf0: 3c138009 */ lui $s3,0x8009 +/* 11cf4: 26d66944 */ addiu $s6,$s6,0x6944 +/* 11cf8: 26737e58 */ addiu $s3,$s3,0x7e58 +/* 11cfc: 26b553b0 */ addiu $s5,$s5,0x53b0 +/* 11d00: 2610f2e8 */ addiu $s0,$s0,-3352 +/* 11d04: 00008825 */ or $s1,$zero,$zero +/* 11d08: 24140108 */ addiu $s4,$zero,0x108 +/* 11d0c: 24120001 */ addiu $s2,$zero,0x1 +.NB00011d10: +/* 11d10: 8e0f0004 */ lw $t7,0x4($s0) +/* 11d14: 55e00023 */ bnezl $t7,.NB00011da4 +/* 11d18: 26310001 */ addiu $s1,$s1,0x1 +/* 11d1c: 02340019 */ multu $s1,$s4 +/* 11d20: 0000c012 */ mflo $t8 +/* 11d24: 02781821 */ addu $v1,$s3,$t8 +/* 11d28: 8c6400f8 */ lw $a0,0xf8($v1) +/* 11d2c: 0c00e838 */ jal 0x3a0e0 +/* 11d30: afa30038 */ sw $v1,0x38($sp) +/* 11d34: 1452001a */ bne $v0,$s2,.NB00011da0 +/* 11d38: 8fa30038 */ lw $v1,0x38($sp) +/* 11d3c: 8c6400f8 */ lw $a0,0xf8($v1) +/* 11d40: 8e080000 */ lw $t0,0x0($s0) +/* 11d44: 8c990060 */ lw $t9,0x60($a0) +/* 11d48: 02a84821 */ addu $t1,$s5,$t0 +/* 11d4c: 912a0000 */ lbu $t2,0x0($t1) +/* 11d50: 9322000d */ lbu $v0,0xd($t9) +/* 11d54: 0142082a */ slt $at,$t2,$v0 +/* 11d58: 54200009 */ bnezl $at,.NB00011d80 +/* 11d5c: 8e0b000c */ lw $t3,0xc($s0) +/* 11d60: 0c00ecd0 */ jal 0x3b340 +/* 11d64: 00000000 */ sll $zero,$zero,0x0 +/* 11d68: ae000000 */ sw $zero,0x0($s0) +/* 11d6c: ae000004 */ sw $zero,0x4($s0) +/* 11d70: ae000008 */ sw $zero,0x8($s0) +/* 11d74: 1000000a */ beqz $zero,.NB00011da0 +/* 11d78: ae00000c */ sw $zero,0xc($s0) +/* 11d7c: 8e0b000c */ lw $t3,0xc($s0) +.NB00011d80: +/* 11d80: 544b0008 */ bnel $v0,$t3,.NB00011da4 +/* 11d84: 26310001 */ addiu $s1,$s1,0x1 +/* 11d88: 0c00ecd0 */ jal 0x3b340 +/* 11d8c: 00000000 */ sll $zero,$zero,0x0 +/* 11d90: ae000000 */ sw $zero,0x0($s0) +/* 11d94: ae000004 */ sw $zero,0x4($s0) +/* 11d98: ae000008 */ sw $zero,0x8($s0) +/* 11d9c: ae00000c */ sw $zero,0xc($s0) +.NB00011da0: +/* 11da0: 26310001 */ addiu $s1,$s1,0x1 +.NB00011da4: +/* 11da4: 2a210003 */ slti $at,$s1,0x3 +/* 11da8: 1420ffd9 */ bnez $at,.NB00011d10 +/* 11dac: 26100010 */ addiu $s0,$s0,0x10 +/* 11db0: 8ec60000 */ lw $a2,0x0($s6) +/* 11db4: 3c0d800b */ lui $t5,0x800b +/* 11db8: 25adee88 */ addiu $t5,$t5,-4472 +/* 11dbc: 24d1ffff */ addiu $s1,$a2,-1 +/* 11dc0: 0620003f */ bltz $s1,.NB00011ec0 +/* 11dc4: 001160c0 */ sll $t4,$s1,0x3 +/* 11dc8: 01916023 */ subu $t4,$t4,$s1 +/* 11dcc: 000c6080 */ sll $t4,$t4,0x2 +/* 11dd0: 3c06800b */ lui $a2,0x800b +/* 11dd4: 24c6ee88 */ addiu $a2,$a2,-4472 +/* 11dd8: 018d2821 */ addu $a1,$t4,$t5 +/* 11ddc: 24140004 */ addiu $s4,$zero,0x4 +/* 11de0: 24130002 */ addiu $s3,$zero,0x2 +/* 11de4: 24100003 */ addiu $s0,$zero,0x3 +.NB00011de8: +/* 11de8: 8cae0000 */ lw $t6,0x0($a1) +/* 11dec: 2627ffff */ addiu $a3,$s1,-1 +/* 11df0: 15c00003 */ bnez $t6,.NB00011e00 +/* 11df4: 00000000 */ sll $zero,$zero,0x0 +/* 11df8: 1000002d */ beqz $zero,.NB00011eb0 +/* 11dfc: 2627ffff */ addiu $a3,$s1,-1 +.NB00011e00: +/* 11e00: 04e0002b */ bltz $a3,.NB00011eb0 +/* 11e04: 00e01025 */ or $v0,$a3,$zero +/* 11e08: 000278c0 */ sll $t7,$v0,0x3 +/* 11e0c: 01e27823 */ subu $t7,$t7,$v0 +/* 11e10: 3c18800b */ lui $t8,0x800b +/* 11e14: 2718ee88 */ addiu $t8,$t8,-4472 +/* 11e18: 000f7880 */ sll $t7,$t7,0x2 +/* 11e1c: 01f82021 */ addu $a0,$t7,$t8 +/* 11e20: 94a30012 */ lhu $v1,0x12($a1) +.NB00011e24: +/* 11e24: 56830004 */ bnel $s4,$v1,.NB00011e38 +/* 11e28: 8c820000 */ lw $v0,0x0($a0) +/* 11e2c: 1000001c */ beqz $zero,.NB00011ea0 +/* 11e30: ac800000 */ sw $zero,0x0($a0) +/* 11e34: 8c820000 */ lw $v0,0x0($a0) +.NB00011e38: +/* 11e38: 5040001a */ beqzl $v0,.NB00011ea4 +/* 11e3c: 2484ffe4 */ addiu $a0,$a0,-28 +/* 11e40: 8cb90000 */ lw $t9,0x0($a1) +/* 11e44: 57220017 */ bnel $t9,$v0,.NB00011ea4 +/* 11e48: 2484ffe4 */ addiu $a0,$a0,-28 +/* 11e4c: 5072000a */ beql $v1,$s2,.NB00011e78 +/* 11e50: 94820012 */ lhu $v0,0x12($a0) +/* 11e54: 10730005 */ beq $v1,$s3,.NB00011e6c +/* 11e58: 00000000 */ sll $zero,$zero,0x0 +/* 11e5c: 5070000d */ beql $v1,$s0,.NB00011e94 +/* 11e60: 94880012 */ lhu $t0,0x12($a0) +/* 11e64: 1000000f */ beqz $zero,.NB00011ea4 +/* 11e68: 2484ffe4 */ addiu $a0,$a0,-28 +.NB00011e6c: +/* 11e6c: 1000000c */ beqz $zero,.NB00011ea0 +/* 11e70: ac800000 */ sw $zero,0x0($a0) +/* 11e74: 94820012 */ lhu $v0,0x12($a0) +.NB00011e78: +/* 11e78: 10520003 */ beq $v0,$s2,.NB00011e88 +/* 11e7c: 00000000 */ sll $zero,$zero,0x0 +/* 11e80: 54500008 */ bnel $v0,$s0,.NB00011ea4 +/* 11e84: 2484ffe4 */ addiu $a0,$a0,-28 +.NB00011e88: +/* 11e88: 10000005 */ beqz $zero,.NB00011ea0 +/* 11e8c: ac800000 */ sw $zero,0x0($a0) +/* 11e90: 94880012 */ lhu $t0,0x12($a0) +.NB00011e94: +/* 11e94: 56080003 */ bnel $s0,$t0,.NB00011ea4 +/* 11e98: 2484ffe4 */ addiu $a0,$a0,-28 +/* 11e9c: ac800000 */ sw $zero,0x0($a0) +.NB00011ea0: +/* 11ea0: 2484ffe4 */ addiu $a0,$a0,-28 +.NB00011ea4: +/* 11ea4: 0086082b */ sltu $at,$a0,$a2 +/* 11ea8: 5020ffde */ beqzl $at,.NB00011e24 +/* 11eac: 94a30012 */ lhu $v1,0x12($a1) +.NB00011eb0: +/* 11eb0: 00e08825 */ or $s1,$a3,$zero +/* 11eb4: 04e1ffcc */ bgez $a3,.NB00011de8 +/* 11eb8: 24a5ffe4 */ addiu $a1,$a1,-28 +/* 11ebc: 8ec60000 */ lw $a2,0x0($s6) +.NB00011ec0: +/* 11ec0: 24100003 */ addiu $s0,$zero,0x3 +/* 11ec4: 24130002 */ addiu $s3,$zero,0x2 +/* 11ec8: 24140004 */ addiu $s4,$zero,0x4 +/* 11ecc: 00008825 */ or $s1,$zero,$zero +/* 11ed0: 18c00020 */ blez $a2,.NB00011f54 +/* 11ed4: 00001025 */ or $v0,$zero,$zero +/* 11ed8: 3c05800b */ lui $a1,0x800b +/* 11edc: 3c15800b */ lui $s5,0x800b +/* 11ee0: 26b5ee88 */ addiu $s5,$s5,-4472 +/* 11ee4: 24a5ee88 */ addiu $a1,$a1,-4472 +/* 11ee8: 2403001c */ addiu $v1,$zero,0x1c +.NB00011eec: +/* 11eec: 8ca90000 */ lw $t1,0x0($a1) +/* 11ef0: 26310001 */ addiu $s1,$s1,0x1 +/* 11ef4: 51200015 */ beqzl $t1,.NB00011f4c +/* 11ef8: 0226082a */ slt $at,$s1,$a2 +/* 11efc: 00430019 */ multu $v0,$v1 +/* 11f00: 8ca10000 */ lw $at,0x0($a1) +/* 11f04: 24420001 */ addiu $v0,$v0,0x1 +/* 11f08: 00005012 */ mflo $t2 +/* 11f0c: 02aa5821 */ addu $t3,$s5,$t2 +/* 11f10: ad610000 */ sw $at,0x0($t3) +/* 11f14: 8cad0004 */ lw $t5,0x4($a1) +/* 11f18: ad6d0004 */ sw $t5,0x4($t3) +/* 11f1c: 8ca10008 */ lw $at,0x8($a1) +/* 11f20: ad610008 */ sw $at,0x8($t3) +/* 11f24: 8cad000c */ lw $t5,0xc($a1) +/* 11f28: ad6d000c */ sw $t5,0xc($t3) +/* 11f2c: 8ca10010 */ lw $at,0x10($a1) +/* 11f30: ad610010 */ sw $at,0x10($t3) +/* 11f34: 8cad0014 */ lw $t5,0x14($a1) +/* 11f38: ad6d0014 */ sw $t5,0x14($t3) +/* 11f3c: 8ca10018 */ lw $at,0x18($a1) +/* 11f40: ad610018 */ sw $at,0x18($t3) +/* 11f44: 8ec60000 */ lw $a2,0x0($s6) +/* 11f48: 0226082a */ slt $at,$s1,$a2 +.NB00011f4c: +/* 11f4c: 1420ffe7 */ bnez $at,.NB00011eec +/* 11f50: 24a5001c */ addiu $a1,$a1,0x1c +.NB00011f54: +/* 11f54: aec20000 */ sw $v0,0x0($s6) +/* 11f58: 3c038008 */ lui $v1,0x8008 +/* 11f5c: 8c63695c */ lw $v1,0x695c($v1) +/* 11f60: 3c15800b */ lui $s5,0x800b +/* 11f64: 26b5ee88 */ addiu $s5,$s5,-4472 +/* 11f68: 10600006 */ beqz $v1,.NB00011f84 +/* 11f6c: 3c0e8008 */ lui $t6,0x8008 +/* 11f70: 3c0f800a */ lui $t7,0x800a +/* 11f74: 8defe700 */ lw $t7,-0x1900($t7) +/* 11f78: 8dce6960 */ lw $t6,0x6960($t6) +/* 11f7c: 01cf082a */ slt $at,$t6,$t7 +/* 11f80: 10200052 */ beqz $at,.NB000120cc +.NB00011f84: +/* 11f84: 3c018008 */ lui $at,0x8008 +/* 11f88: ac236960 */ sw $v1,0x6960($at) +/* 11f8c: 8ed80000 */ lw $t8,0x0($s6) +/* 11f90: 1300004e */ beqz $t8,.NB000120cc +.NB00011f94: +/* 11f94: 3c19800b */ lui $t9,0x800b +/* 11f98: 9739eea0 */ lhu $t9,-0x1160($t9) +/* 11f9c: 3c01800b */ lui $at,0x800b +/* 11fa0: 3c02800b */ lui $v0,0x800b +/* 11fa4: 27280001 */ addiu $t0,$t9,0x1 +/* 11fa8: a428eea0 */ sh $t0,-0x1160($at) +/* 11fac: 9442ee9a */ lhu $v0,-0x1166($v0) +/* 11fb0: 00002025 */ or $a0,$zero,$zero +/* 11fb4: 00002825 */ or $a1,$zero,$zero +/* 11fb8: 10520009 */ beq $v0,$s2,.NB00011fe0 +/* 11fbc: 00000000 */ sll $zero,$zero,0x0 +/* 11fc0: 1053000b */ beq $v0,$s3,.NB00011ff0 +/* 11fc4: 00002825 */ or $a1,$zero,$zero +/* 11fc8: 1050000d */ beq $v0,$s0,.NB00012000 +/* 11fcc: 00002825 */ or $a1,$zero,$zero +/* 11fd0: 1054000f */ beq $v0,$s4,.NB00012010 +/* 11fd4: 00000000 */ sll $zero,$zero,0x0 +/* 11fd8: 10000010 */ beqz $zero,.NB0001201c +/* 11fdc: 00000000 */ sll $zero,$zero,0x0 +.NB00011fe0: +/* 11fe0: 0c0045f8 */ jal 0x117e0 +/* 11fe4: 02a02025 */ or $a0,$s5,$zero +/* 11fe8: 1000000c */ beqz $zero,.NB0001201c +/* 11fec: 00402025 */ or $a0,$v0,$zero +.NB00011ff0: +/* 11ff0: 0c0046b0 */ jal 0x11ac0 +/* 11ff4: 02a02025 */ or $a0,$s5,$zero +/* 11ff8: 10000008 */ beqz $zero,.NB0001201c +/* 11ffc: 00402025 */ or $a0,$v0,$zero +.NB00012000: +/* 12000: 0c0046d0 */ jal 0x11b40 +/* 12004: 02a02025 */ or $a0,$s5,$zero +/* 12008: 10000004 */ beqz $zero,.NB0001201c +/* 1200c: 00402025 */ or $a0,$v0,$zero +.NB00012010: +/* 12010: 0c004711 */ jal 0x11c44 +/* 12014: 00002025 */ or $a0,$zero,$zero +/* 12018: 00402025 */ or $a0,$v0,$zero +.NB0001201c: +/* 1201c: 10800024 */ beqz $a0,.NB000120b0 +/* 12020: 3c05800b */ lui $a1,0x800b +/* 12024: 8ec90000 */ lw $t1,0x0($s6) +/* 12028: 24a5ee88 */ addiu $a1,$a1,-4472 +/* 1202c: 3c0c800b */ lui $t4,0x800b +/* 12030: 252affff */ addiu $t2,$t1,-1 +/* 12034: aeca0000 */ sw $t2,0x0($s6) +/* 12038: 19400019 */ blez $t2,.NB000120a0 +/* 1203c: 01403025 */ or $a2,$t2,$zero +/* 12040: 000a58c0 */ sll $t3,$t2,0x3 +/* 12044: 016a5823 */ subu $t3,$t3,$t2 +/* 12048: 000b5880 */ sll $t3,$t3,0x2 +/* 1204c: 2582eea4 */ addiu $v0,$t4,-4444 +/* 12050: 01621821 */ addu $v1,$t3,$v0 +/* 12054: 8c410000 */ lw $at,0x0($v0) +.NB00012058: +/* 12058: 2442001c */ addiu $v0,$v0,0x1c +/* 1205c: 24a5001c */ addiu $a1,$a1,0x1c +/* 12060: aca1ffe4 */ sw $at,-0x1c($a1) +/* 12064: 8c4effe8 */ lw $t6,-0x18($v0) +/* 12068: acaeffe8 */ sw $t6,-0x18($a1) +/* 1206c: 8c41ffec */ lw $at,-0x14($v0) +/* 12070: aca1ffec */ sw $at,-0x14($a1) +/* 12074: 8c4efff0 */ lw $t6,-0x10($v0) +/* 12078: acaefff0 */ sw $t6,-0x10($a1) +/* 1207c: 8c41fff4 */ lw $at,-0xc($v0) +/* 12080: aca1fff4 */ sw $at,-0xc($a1) +/* 12084: 8c4efff8 */ lw $t6,-0x8($v0) +/* 12088: acaefff8 */ sw $t6,-0x8($a1) +/* 1208c: 8c41fffc */ lw $at,-0x4($v0) +/* 12090: aca1fffc */ sw $at,-0x4($a1) +/* 12094: 0043082b */ sltu $at,$v0,$v1 +/* 12098: 5420ffef */ bnezl $at,.NB00012058 +/* 1209c: 8c410000 */ lw $at,0x0($v0) +.NB000120a0: +/* 120a0: 14930006 */ bne $a0,$s3,.NB000120bc +/* 120a4: 3c038008 */ lui $v1,0x8008 +/* 120a8: 10000008 */ beqz $zero,.NB000120cc +/* 120ac: 8c63695c */ lw $v1,0x695c($v1) +.NB000120b0: +/* 120b0: 3c038008 */ lui $v1,0x8008 +/* 120b4: 10000005 */ beqz $zero,.NB000120cc +/* 120b8: 8c63695c */ lw $v1,0x695c($v1) +.NB000120bc: +/* 120bc: 14c0ffb5 */ bnez $a2,.NB00011f94 +/* 120c0: 00000000 */ sll $zero,$zero,0x0 +/* 120c4: 3c038008 */ lui $v1,0x8008 +/* 120c8: 8c63695c */ lw $v1,0x695c($v1) +.NB000120cc: +/* 120cc: 10600009 */ beqz $v1,.NB000120f4 +/* 120d0: 3c018008 */ lui $at,0x8008 +/* 120d4: 3c0f8008 */ lui $t7,0x8008 +/* 120d8: 3c18800a */ lui $t8,0x800a +/* 120dc: 8f18e700 */ lw $t8,-0x1900($t8) +/* 120e0: 8def6960 */ lw $t7,0x6960($t7) +/* 120e4: 3c018008 */ lui $at,0x8008 +/* 120e8: 01f8c823 */ subu $t9,$t7,$t8 +/* 120ec: 10000002 */ beqz $zero,.NB000120f8 +/* 120f0: ac396960 */ sw $t9,0x6960($at) +.NB000120f4: +/* 120f4: ac206960 */ sw $zero,0x6960($at) +.NB000120f8: +/* 120f8: 8fbf0034 */ lw $ra,0x34($sp) +/* 120fc: 8fb00018 */ lw $s0,0x18($sp) +/* 12100: 8fb1001c */ lw $s1,0x1c($sp) +/* 12104: 8fb20020 */ lw $s2,0x20($sp) +/* 12108: 8fb30024 */ lw $s3,0x24($sp) +/* 1210c: 8fb40028 */ lw $s4,0x28($sp) +/* 12110: 8fb5002c */ lw $s5,0x2c($sp) +/* 12114: 8fb60030 */ lw $s6,0x30($sp) +/* 12118: 03e00008 */ jr $ra +/* 1211c: 27bd0058 */ addiu $sp,$sp,0x58 +); +#endif #if VERSION >= VERSION_PAL_FINAL GLOBAL_ASM( @@ -1056,7 +1392,7 @@ glabel func00011d84 /* 121d0: 03e00008 */ jr $ra /* 121d4: 27bd0038 */ addiu $sp,$sp,0x38 ); -#else +#elif VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func00011d84 /* 11d84: 3c0e8006 */ lui $t6,%hi(g_Silent) @@ -1360,4 +1696,374 @@ glabel func00011d84 /* 121d0: 03e00008 */ jr $ra /* 121d4: 27bd0038 */ addiu $sp,$sp,0x38 ); +#else +GLOBAL_ASM( +glabel func00011d84 +/* 12120: 3c0e8006 */ lui $t6,0x8006 +/* 12124: 8dcef6c0 */ lw $t6,-0x940($t6) +/* 12128: 27bdffd8 */ addiu $sp,$sp,-40 +/* 1212c: afbf0014 */ sw $ra,0x14($sp) +/* 12130: 15c000e0 */ bnez $t6,.NB000124b4 +/* 12134: afa00020 */ sw $zero,0x20($sp) +/* 12138: 3c038008 */ lui $v1,0x8008 +/* 1213c: 24636968 */ addiu $v1,$v1,0x6968 +/* 12140: 8c620000 */ lw $v0,0x0($v1) +/* 12144: 3c0a800a */ lui $t2,0x800a +/* 12148: 254ae6c0 */ addiu $t2,$t2,-6464 +/* 1214c: 18400044 */ blez $v0,.NB00012260 +/* 12150: 00000000 */ sll $zero,$zero,0x0 +/* 12154: 8d4f0318 */ lw $t7,0x318($t2) +/* 12158: 3c048008 */ lui $a0,0x8008 +/* 1215c: 55e00014 */ bnezl $t7,.NB000121b0 +/* 12160: 8d590034 */ lw $t9,0x34($t2) +/* 12164: 8d58029c */ lw $t8,0x29c($t2) +/* 12168: 07020006 */ bltzl $t8,.NB00012184 +/* 1216c: 8d4c0298 */ lw $t4,0x298($t2) +/* 12170: 8d5902a0 */ lw $t9,0x2a0($t2) +/* 12174: 8f2b00d8 */ lw $t3,0xd8($t9) +/* 12178: 5160000d */ beqzl $t3,.NB000121b0 +/* 1217c: 8d590034 */ lw $t9,0x34($t2) +/* 12180: 8d4c0298 */ lw $t4,0x298($t2) +.NB00012184: +/* 12184: 05800036 */ bltz $t4,.NB00012260 +/* 12188: 00000000 */ sll $zero,$zero,0x0 +/* 1218c: 8d4d02a0 */ lw $t5,0x2a0($t2) +/* 12190: 8dae00d8 */ lw $t6,0xd8($t5) +/* 12194: 51c00006 */ beqzl $t6,.NB000121b0 +/* 12198: 8d590034 */ lw $t9,0x34($t2) +/* 1219c: 8d4f02a4 */ lw $t7,0x2a4($t2) +/* 121a0: 8df800d8 */ lw $t8,0xd8($t7) +/* 121a4: 1700002e */ bnez $t8,.NB00012260 +/* 121a8: 00000000 */ sll $zero,$zero,0x0 +/* 121ac: 8d590034 */ lw $t9,0x34($t2) +.NB000121b0: +/* 121b0: 24846974 */ addiu $a0,$a0,0x6974 +/* 121b4: ac800000 */ sw $zero,0x0($a0) +/* 121b8: 00595823 */ subu $t3,$v0,$t9 +/* 121bc: 1d600023 */ bgtz $t3,.NB0001224c +/* 121c0: ac6b0000 */ sw $t3,0x0($v1) +/* 121c4: 0fc5a26c */ jal 0xf1689b0 +/* 121c8: 00000000 */ sll $zero,$zero,0x0 +/* 121cc: 3c0d8009 */ lui $t5,0x8009 +/* 121d0: 8dad99e4 */ lw $t5,-0x661c($t5) +/* 121d4: 3c0e800a */ lui $t6,0x800a +/* 121d8: 11a0001c */ beqz $t5,.NB0001224c +/* 121dc: 00000000 */ sll $zero,$zero,0x0 +/* 121e0: 8dcee9d8 */ lw $t6,-0x1628($t6) +/* 121e4: 3c058008 */ lui $a1,0x8008 +/* 121e8: 24a5696c */ addiu $a1,$a1,0x696c +/* 121ec: 11c00017 */ beqz $t6,.NB0001224c +/* 121f0: 3c0f8008 */ lui $t7,0x8008 +/* 121f4: 8def6970 */ lw $t7,0x6970($t7) +/* 121f8: 8cb80000 */ lw $t8,0x0($a1) +/* 121fc: 24040003 */ addiu $a0,$zero,0x3 +/* 12200: 01f8082a */ slt $at,$t7,$t8 +/* 12204: 10200011 */ beqz $at,.NB0001224c +/* 12208: 00000000 */ sll $zero,$zero,0x0 +/* 1220c: 0fc59fed */ jal 0xf167fb4 +/* 12210: aca00000 */ sw $zero,0x0($a1) +/* 12214: 0fc59fed */ jal 0xf167fb4 +/* 12218: 24040004 */ addiu $a0,$zero,0x4 +/* 1221c: 0fc59fed */ jal 0xf167fb4 +/* 12220: 24040001 */ addiu $a0,$zero,0x1 +/* 12224: 3c04800b */ lui $a0,0x800b +/* 12228: 0fc5c638 */ jal 0xf1718e0 +/* 1222c: 8c84ee80 */ lw $a0,-0x1180($a0) +/* 12230: 0fc59f54 */ jal 0xf167d50 +/* 12234: afa20018 */ sw $v0,0x18($sp) +/* 12238: 24040001 */ addiu $a0,$zero,0x1 +/* 1223c: 8fa50018 */ lw $a1,0x18($sp) +/* 12240: 24060000 */ addiu $a2,$zero,0x0 +/* 12244: 0fc59fcc */ jal 0xf167f30 +/* 12248: 3047ffff */ andi $a3,$v0,0xffff +.NB0001224c: +/* 1224c: 3c0a800a */ lui $t2,0x800a +/* 12250: 3c028009 */ lui $v0,0x8009 +/* 12254: 8c4299e4 */ lw $v0,-0x661c($v0) +/* 12258: 1000001d */ beqz $zero,.NB000122d0 +/* 1225c: 254ae6c0 */ addiu $t2,$t2,-6464 +.NB00012260: +/* 12260: 3c028009 */ lui $v0,0x8009 +/* 12264: 8c4299e4 */ lw $v0,-0x661c($v0) +/* 12268: 3c0a800a */ lui $t2,0x800a +/* 1226c: 254ae6c0 */ addiu $t2,$t2,-6464 +/* 12270: 10400017 */ beqz $v0,.NB000122d0 +/* 12274: 00000000 */ sll $zero,$zero,0x0 +/* 12278: 8d590318 */ lw $t9,0x318($t2) +/* 1227c: 3c0b8008 */ lui $t3,0x8008 +/* 12280: 3c0c8008 */ lui $t4,0x8008 +/* 12284: 13200012 */ beqz $t9,.NB000122d0 +/* 12288: 00000000 */ sll $zero,$zero,0x0 +/* 1228c: 8d6b6970 */ lw $t3,0x6970($t3) +/* 12290: 8d8c696c */ lw $t4,0x696c($t4) +/* 12294: 24040001 */ addiu $a0,$zero,0x1 +/* 12298: 3c054000 */ lui $a1,0x4000 +/* 1229c: 016c082a */ slt $at,$t3,$t4 +/* 122a0: 1020000b */ beqz $at,.NB000122d0 +/* 122a4: 24060001 */ addiu $a2,$zero,0x1 +/* 122a8: 3c018008 */ lui $at,0x8008 +/* 122ac: 0fc5a008 */ jal 0xf168020 +/* 122b0: ac20696c */ sw $zero,0x696c($at) +/* 122b4: 240d0078 */ addiu $t5,$zero,0x78 +/* 122b8: 3c018008 */ lui $at,0x8008 +/* 122bc: 3c028009 */ lui $v0,0x8009 +/* 122c0: 3c0a800a */ lui $t2,0x800a +/* 122c4: 254ae6c0 */ addiu $t2,$t2,-6464 +/* 122c8: 8c4299e4 */ lw $v0,-0x661c($v0) +/* 122cc: ac2d6974 */ sw $t5,0x6974($at) +.NB000122d0: +/* 122d0: 3c048008 */ lui $a0,0x8008 +/* 122d4: 3c058008 */ lui $a1,0x8008 +/* 122d8: 24a5696c */ addiu $a1,$a1,0x696c +/* 122dc: 1040001f */ beqz $v0,.NB0001235c +/* 122e0: 24846974 */ addiu $a0,$a0,0x6974 +/* 122e4: 8d4e0318 */ lw $t6,0x318($t2) +/* 122e8: 11c0001c */ beqz $t6,.NB0001235c +/* 122ec: 00000000 */ sll $zero,$zero,0x0 +/* 122f0: 8d420000 */ lw $v0,0x0($t2) +/* 122f4: 8caf0000 */ lw $t7,0x0($a1) +/* 122f8: 8c830000 */ lw $v1,0x0($a0) +/* 122fc: 01e2c021 */ addu $t8,$t7,$v0 +/* 12300: 18600016 */ blez $v1,.NB0001235c +/* 12304: acb80000 */ sw $t8,0x0($a1) +/* 12308: 0062c823 */ subu $t9,$v1,$v0 +/* 1230c: 1f200013 */ bgtz $t9,.NB0001235c +/* 12310: ac990000 */ sw $t9,0x0($a0) +/* 12314: 0fc59fed */ jal 0xf167fb4 +/* 12318: 24040003 */ addiu $a0,$zero,0x3 +/* 1231c: 0fc59fed */ jal 0xf167fb4 +/* 12320: 24040004 */ addiu $a0,$zero,0x4 +/* 12324: 0fc59fed */ jal 0xf167fb4 +/* 12328: 24040001 */ addiu $a0,$zero,0x1 +/* 1232c: 3c04800b */ lui $a0,0x800b +/* 12330: 0fc5c638 */ jal 0xf1718e0 +/* 12334: 8c84ee80 */ lw $a0,-0x1180($a0) +/* 12338: 0fc59f54 */ jal 0xf167d50 +/* 1233c: afa20018 */ sw $v0,0x18($sp) +/* 12340: 24040001 */ addiu $a0,$zero,0x1 +/* 12344: 8fa50018 */ lw $a1,0x18($sp) +/* 12348: 24060000 */ addiu $a2,$zero,0x0 +/* 1234c: 0fc59fcc */ jal 0xf167f30 +/* 12350: 3047ffff */ andi $a3,$v0,0xffff +/* 12354: 3c0a800a */ lui $t2,0x800a +/* 12358: 254ae6c0 */ addiu $t2,$t2,-6464 +.NB0001235c: +/* 1235c: 3c06800b */ lui $a2,0x800b +/* 12360: 3c04800b */ lui $a0,0x800b +/* 12364: 3c09800b */ lui $t1,0x800b +/* 12368: 2529f338 */ addiu $t1,$t1,-3272 +/* 1236c: 2484f328 */ addiu $a0,$a0,-3288 +/* 12370: 24c6f318 */ addiu $a2,$a2,-3304 +/* 12374: 8d470034 */ lw $a3,0x34($t2) +/* 12378: 00004025 */ or $t0,$zero,$zero +.NB0001237c: +/* 1237c: 8cc50000 */ lw $a1,0x0($a2) +/* 12380: 54a00005 */ bnezl $a1,.NB00012398 +/* 12384: 8c820000 */ lw $v0,0x0($a0) +/* 12388: 8c8c0000 */ lw $t4,0x0($a0) +/* 1238c: 5980001f */ blezl $t4,.NB0001240c +/* 12390: 24840004 */ addiu $a0,$a0,0x4 +/* 12394: 8c820000 */ lw $v0,0x0($a0) +.NB00012398: +/* 12398: 3c0d800b */ lui $t5,0x800b +/* 1239c: 25adf338 */ addiu $t5,$t5,-3272 +/* 123a0: 0047082a */ slt $at,$v0,$a3 +/* 123a4: 14200004 */ bnez $at,.NB000123b8 +/* 123a8: 010d1821 */ addu $v1,$t0,$t5 +/* 123ac: 00477023 */ subu $t6,$v0,$a3 +/* 123b0: 10000002 */ beqz $zero,.NB000123bc +/* 123b4: ac8e0000 */ sw $t6,0x0($a0) +.NB000123b8: +/* 123b8: ac800000 */ sw $zero,0x0($a0) +.NB000123bc: +/* 123bc: 8c620000 */ lw $v0,0x0($v1) +/* 123c0: 10400011 */ beqz $v0,.NB00012408 +/* 123c4: 0047082a */ slt $at,$v0,$a3 +/* 123c8: 14200003 */ bnez $at,.NB000123d8 +/* 123cc: 00477823 */ subu $t7,$v0,$a3 +/* 123d0: 10000002 */ beqz $zero,.NB000123dc +/* 123d4: ac6f0000 */ sw $t7,0x0($v1) +.NB000123d8: +/* 123d8: ac600000 */ sw $zero,0x0($v1) +.NB000123dc: +/* 123dc: 8c780000 */ lw $t8,0x0($v1) +/* 123e0: 53000009 */ beqzl $t8,.NB00012408 +/* 123e4: acc00000 */ sw $zero,0x0($a2) +/* 123e8: 14a00004 */ bnez $a1,.NB000123fc +/* 123ec: 240b0001 */ addiu $t3,$zero,0x1 +/* 123f0: 8c990000 */ lw $t9,0x0($a0) +/* 123f4: 53200005 */ beqzl $t9,.NB0001240c +/* 123f8: 24840004 */ addiu $a0,$a0,0x4 +.NB000123fc: +/* 123fc: 10000002 */ beqz $zero,.NB00012408 +/* 12400: afab0020 */ sw $t3,0x20($sp) +/* 12404: acc00000 */ sw $zero,0x0($a2) +.NB00012408: +/* 12408: 24840004 */ addiu $a0,$a0,0x4 +.NB0001240c: +/* 1240c: 25080004 */ addiu $t0,$t0,0x4 +/* 12410: 1489ffda */ bne $a0,$t1,.NB0001237c +/* 12414: 24c60004 */ addiu $a2,$a2,0x4 +/* 12418: 10e00013 */ beqz $a3,.NB00012468 +/* 1241c: 24040002 */ addiu $a0,$zero,0x2 +/* 12420: 0fc59f87 */ jal 0xf167e1c +/* 12424: 24050001 */ addiu $a1,$zero,0x1 +/* 12428: 10400008 */ beqz $v0,.NB0001244c +/* 1242c: 8fad0020 */ lw $t5,0x20($sp) +/* 12430: 8fac0020 */ lw $t4,0x20($sp) +/* 12434: 1580000c */ bnez $t4,.NB00012468 +/* 12438: 00000000 */ sll $zero,$zero,0x0 +/* 1243c: 0fc5a1d1 */ jal 0xf168744 +/* 12440: 00000000 */ sll $zero,$zero,0x0 +/* 12444: 10000008 */ beqz $zero,.NB00012468 +/* 12448: 00000000 */ sll $zero,$zero,0x0 +.NB0001244c: +/* 1244c: 11a00006 */ beqz $t5,.NB00012468 +/* 12450: 3c0e800a */ lui $t6,0x800a +/* 12454: 8dceeb88 */ lw $t6,-0x1478($t6) +/* 12458: 15c00003 */ bnez $t6,.NB00012468 +/* 1245c: 00000000 */ sll $zero,$zero,0x0 +/* 12460: 0fc5a1b6 */ jal 0xf1686d8 +/* 12464: 00000000 */ sll $zero,$zero,0x0 +.NB00012468: +/* 12468: 3c038006 */ lui $v1,0x8006 +/* 1246c: 3c0a800a */ lui $t2,0x800a +/* 12470: 254ae6c0 */ addiu $t2,$t2,-6464 +/* 12474: 24630670 */ addiu $v1,$v1,0x670 +/* 12478: 8c620000 */ lw $v0,0x0($v1) +/* 1247c: 8d470034 */ lw $a3,0x34($t2) +/* 12480: 0047082a */ slt $at,$v0,$a3 +/* 12484: 10200008 */ beqz $at,.NB000124a8 +/* 12488: 0047c023 */ subu $t8,$v0,$a3 +/* 1248c: 0fc5a33b */ jal 0xf168cec +/* 12490: 00000000 */ sll $zero,$zero,0x0 +/* 12494: 3c038006 */ lui $v1,0x8006 +/* 12498: 24630670 */ addiu $v1,$v1,0x670 +/* 1249c: 240f003c */ addiu $t7,$zero,0x3c +/* 124a0: 10000002 */ beqz $zero,.NB000124ac +/* 124a4: ac6f0000 */ sw $t7,0x0($v1) +.NB000124a8: +/* 124a8: ac780000 */ sw $t8,0x0($v1) +.NB000124ac: +/* 124ac: 0c00472d */ jal 0x11cb4 +/* 124b0: 00000000 */ sll $zero,$zero,0x0 +.NB000124b4: +/* 124b4: 8fbf0014 */ lw $ra,0x14($sp) +/* 124b8: 27bd0028 */ addiu $sp,$sp,0x28 +/* 124bc: 03e00008 */ jr $ra +/* 124c0: 00000000 */ sll $zero,$zero,0x0 +/* 124c4: 27bdffc8 */ addiu $sp,$sp,-56 +/* 124c8: afb30024 */ sw $s3,0x24($sp) +/* 124cc: afb1001c */ sw $s1,0x1c($sp) +/* 124d0: afb60030 */ sw $s6,0x30($sp) +/* 124d4: afb5002c */ sw $s5,0x2c($sp) +/* 124d8: afb40028 */ sw $s4,0x28($sp) +/* 124dc: afb20020 */ sw $s2,0x20($sp) +/* 124e0: afb00018 */ sw $s0,0x18($sp) +/* 124e4: 3c11800b */ lui $s1,0x800b +/* 124e8: 3c138009 */ lui $s3,0x8009 +/* 124ec: 00809025 */ or $s2,$a0,$zero +/* 124f0: afbf0034 */ sw $ra,0x34($sp) +/* 124f4: 26737e58 */ addiu $s3,$s3,0x7e58 +/* 124f8: 2631f2e8 */ addiu $s1,$s1,-3352 +/* 124fc: 00008025 */ or $s0,$zero,$zero +/* 12500: 24140108 */ addiu $s4,$zero,0x108 +/* 12504: 24150001 */ addiu $s5,$zero,0x1 +/* 12508: 24160003 */ addiu $s6,$zero,0x3 +.NB0001250c: +/* 1250c: 8e2e0000 */ lw $t6,0x0($s1) +/* 12510: 564e000b */ bnel $s2,$t6,.NB00012540 +/* 12514: 26100001 */ addiu $s0,$s0,0x1 +/* 12518: 02140019 */ multu $s0,$s4 +/* 1251c: 00007812 */ mflo $t7 +/* 12520: 026fc021 */ addu $t8,$s3,$t7 +/* 12524: 0c00e838 */ jal 0x3a0e0 +/* 12528: 8f0400f8 */ lw $a0,0xf8($t8) +/* 1252c: 54550004 */ bnel $v0,$s5,.NB00012540 +/* 12530: 26100001 */ addiu $s0,$s0,0x1 +/* 12534: 10000005 */ beqz $zero,.NB0001254c +/* 12538: 24020001 */ addiu $v0,$zero,0x1 +/* 1253c: 26100001 */ addiu $s0,$s0,0x1 +.NB00012540: +/* 12540: 1616fff2 */ bne $s0,$s6,.NB0001250c +/* 12544: 26310010 */ addiu $s1,$s1,0x10 +/* 12548: 00001025 */ or $v0,$zero,$zero +.NB0001254c: +/* 1254c: 8fbf0034 */ lw $ra,0x34($sp) +/* 12550: 8fb00018 */ lw $s0,0x18($sp) +/* 12554: 8fb1001c */ lw $s1,0x1c($sp) +/* 12558: 8fb20020 */ lw $s2,0x20($sp) +/* 1255c: 8fb30024 */ lw $s3,0x24($sp) +/* 12560: 8fb40028 */ lw $s4,0x28($sp) +/* 12564: 8fb5002c */ lw $s5,0x2c($sp) +/* 12568: 8fb60030 */ lw $s6,0x30($sp) +/* 1256c: 03e00008 */ jr $ra +/* 12570: 27bd0038 */ addiu $sp,$sp,0x38 +); +#endif + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func00012574nb +/* 12574: 308e00ff */ andi $t6,$a0,0xff +/* 12578: 27bdffe0 */ addiu $sp,$sp,-32 +/* 1257c: 31cf0001 */ andi $t7,$t6,0x1 +/* 12580: afbf0014 */ sw $ra,0x14($sp) +/* 12584: afa40020 */ sw $a0,0x20($sp) +/* 12588: 11e00008 */ beqz $t7,.NB000125ac +/* 1258c: 01c01825 */ or $v1,$t6,$zero +/* 12590: 24040001 */ addiu $a0,$zero,0x1 +/* 12594: 0c004931 */ jal 0x124c4 +/* 12598: afae001c */ sw $t6,0x1c($sp) +/* 1259c: 14400003 */ bnez $v0,.NB000125ac +/* 125a0: 8fa3001c */ lw $v1,0x1c($sp) +/* 125a4: 10000026 */ beqz $zero,.NB00012640 +/* 125a8: 00001025 */ or $v0,$zero,$zero +.NB000125ac: +/* 125ac: 30780002 */ andi $t8,$v1,0x2 +/* 125b0: 13000007 */ beqz $t8,.NB000125d0 +/* 125b4: 24040002 */ addiu $a0,$zero,0x2 +/* 125b8: 0c004931 */ jal 0x124c4 +/* 125bc: afa3001c */ sw $v1,0x1c($sp) +/* 125c0: 14400003 */ bnez $v0,.NB000125d0 +/* 125c4: 8fa3001c */ lw $v1,0x1c($sp) +/* 125c8: 1000001d */ beqz $zero,.NB00012640 +/* 125cc: 00001025 */ or $v0,$zero,$zero +.NB000125d0: +/* 125d0: 30790004 */ andi $t9,$v1,0x4 +/* 125d4: 13200007 */ beqz $t9,.NB000125f4 +/* 125d8: 24040003 */ addiu $a0,$zero,0x3 +/* 125dc: 0c004931 */ jal 0x124c4 +/* 125e0: afa3001c */ sw $v1,0x1c($sp) +/* 125e4: 14400003 */ bnez $v0,.NB000125f4 +/* 125e8: 8fa3001c */ lw $v1,0x1c($sp) +/* 125ec: 10000014 */ beqz $zero,.NB00012640 +/* 125f0: 00001025 */ or $v0,$zero,$zero +.NB000125f4: +/* 125f4: 30680008 */ andi $t0,$v1,0x8 +/* 125f8: 11000007 */ beqz $t0,.NB00012618 +/* 125fc: 24040004 */ addiu $a0,$zero,0x4 +/* 12600: 0c004931 */ jal 0x124c4 +/* 12604: afa3001c */ sw $v1,0x1c($sp) +/* 12608: 14400003 */ bnez $v0,.NB00012618 +/* 1260c: 8fa3001c */ lw $v1,0x1c($sp) +/* 12610: 1000000b */ beqz $zero,.NB00012640 +/* 12614: 00001025 */ or $v0,$zero,$zero +.NB00012618: +/* 12618: 30690010 */ andi $t1,$v1,0x10 +/* 1261c: 51200008 */ beqzl $t1,.NB00012640 +/* 12620: 24020001 */ addiu $v0,$zero,0x1 +/* 12624: 0c004931 */ jal 0x124c4 +/* 12628: 24040005 */ addiu $a0,$zero,0x5 +/* 1262c: 54400004 */ bnezl $v0,.NB00012640 +/* 12630: 24020001 */ addiu $v0,$zero,0x1 +/* 12634: 10000002 */ beqz $zero,.NB00012640 +/* 12638: 00001025 */ or $v0,$zero,$zero +/* 1263c: 24020001 */ addiu $v0,$zero,0x1 +.NB00012640: +/* 12640: 8fbf0014 */ lw $ra,0x14($sp) +/* 12644: 27bd0020 */ addiu $sp,$sp,0x20 +/* 12648: 03e00008 */ jr $ra +/* 1264c: 00000000 */ sll $zero,$zero,0x0 +); #endif diff --git a/src/lib/lib_126b0.c b/src/lib/lib_126b0.c index 0e67e6311..686cf211e 100644 --- a/src/lib/lib_126b0.c +++ b/src/lib/lib_126b0.c @@ -283,6 +283,7 @@ void func00012a0c(void) // empty } +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func00012a14 /* 12a14: 3c03800a */ lui $v1,%hi(var80099478) @@ -317,7 +318,43 @@ glabel func00012a14 /* 12a84: 03e00008 */ jr $ra /* 12a88: ac650010 */ sw $a1,0x10($v1) ); +#else +GLOBAL_ASM( +glabel func00012a14 +/* 12fb4: 3c03800a */ lui $v1,0x800a +/* 12fb8: 2463c3f8 */ addiu $v1,$v1,-15368 +/* 12fbc: 2406ffff */ addiu $a2,$zero,-1 +/* 12fc0: ac6603ec */ sw $a2,0x3ec($v1) +/* 12fc4: ac6603f4 */ sw $a2,0x3f4($v1) +/* 12fc8: 240effff */ addiu $t6,$zero,-1 +/* 12fcc: 3c06800a */ lui $a2,0x800a +/* 12fd0: 3c02800a */ lui $v0,0x800a +/* 12fd4: ac600000 */ sw $zero,0x0($v1) +/* 12fd8: ac600004 */ sw $zero,0x4($v1) +/* 12fdc: ac600008 */ sw $zero,0x8($v1) +/* 12fe0: ac6003f0 */ sw $zero,0x3f0($v1) +/* 12fe4: ac6e03f8 */ sw $t6,0x3f8($v1) +/* 12fe8: 2442c404 */ addiu $v0,$v0,-15356 +/* 12fec: 24c6c7dc */ addiu $a2,$a2,-14372 +.NB00012ff0: +/* 12ff0: 24420008 */ addiu $v0,$v0,0x8 +/* 12ff4: 00c2082b */ sltu $at,$a2,$v0 +/* 12ff8: ac40fff8 */ sw $zero,-0x8($v0) +/* 12ffc: 1020fffc */ beqz $at,.NB00012ff0 +/* 13000: ac40fffc */ sw $zero,-0x4($v0) +/* 13004: 3c02800a */ lui $v0,0x800a +/* 13008: 3c06800a */ lui $a2,0x800a +/* 1300c: 24c6c3f4 */ addiu $a2,$a2,-15372 +/* 13010: 2442c3f0 */ addiu $v0,$v0,-15376 +/* 13014: ac440000 */ sw $a0,0x0($v0) +/* 13018: ac64000c */ sw $a0,0xc($v1) +/* 1301c: acc50000 */ sw $a1,0x0($a2) +/* 13020: 03e00008 */ jr $ra +/* 13024: ac650010 */ sw $a1,0x10($v1) +); +#endif +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func00012a8c /* 12a8c: 27bdffe8 */ addiu $sp,$sp,-24 @@ -330,7 +367,207 @@ glabel func00012a8c /* 12aa8: 03e00008 */ jr $ra /* 12aac: 00000000 */ nop ); +#else +GLOBAL_ASM( +glabel func00012a8c +/* 13028: 27bdff48 */ addiu $sp,$sp,-184 +/* 1302c: afbf001c */ sw $ra,0x1c($sp) +/* 13030: 3c04800a */ lui $a0,0x800a +/* 13034: afb00018 */ sw $s0,0x18($sp) +/* 13038: 0c004b24 */ jal 0x12c90 +/* 1303c: 2484c3f8 */ addiu $a0,$a0,-15368 +/* 13040: 0fc466e4 */ jal 0xf119b90 +/* 13044: 00000000 */ sll $zero,$zero,0x0 +/* 13048: 104000b1 */ beqz $v0,.NB00013310 +/* 1304c: 240400ff */ addiu $a0,$zero,0xff +/* 13050: 240500ff */ addiu $a1,$zero,0xff +/* 13054: 240600ff */ addiu $a2,$zero,0xff +/* 13058: 0c005106 */ jal 0x14418 +/* 1305c: 240700ff */ addiu $a3,$zero,0xff +/* 13060: 00002025 */ or $a0,$zero,$zero +/* 13064: 00002825 */ or $a1,$zero,$zero +/* 13068: 00003025 */ or $a2,$zero,$zero +/* 1306c: 0c005115 */ jal 0x14454 +/* 13070: 240700ff */ addiu $a3,$zero,0xff +/* 13074: 2404001e */ addiu $a0,$zero,0x1e +/* 13078: 0c0050df */ jal 0x1437c +/* 1307c: 24050001 */ addiu $a1,$zero,0x1 +/* 13080: 3c047005 */ lui $a0,0x7005 +/* 13084: 0c005175 */ jal 0x145d4 +/* 13088: 24845730 */ addiu $a0,$a0,0x5730 +/* 1308c: 24100002 */ addiu $s0,$zero,0x2 +/* 13090: 02002825 */ or $a1,$s0,$zero +/* 13094: 0c0050df */ jal 0x1437c +/* 13098: 2404001e */ addiu $a0,$zero,0x1e +/* 1309c: 3c047005 */ lui $a0,0x7005 +/* 130a0: 0c005175 */ jal 0x145d4 +/* 130a4: 2484573c */ addiu $a0,$a0,0x573c +/* 130a8: 26100001 */ addiu $s0,$s0,0x1 +/* 130ac: 24040004 */ addiu $a0,$zero,0x4 +/* 130b0: 0c004a7c */ jal 0x129f0 +/* 130b4: 00002825 */ or $a1,$zero,$zero +/* 130b8: afa200b4 */ sw $v0,0xb4($sp) +/* 130bc: 24040004 */ addiu $a0,$zero,0x4 +/* 130c0: 0c004a7c */ jal 0x129f0 +/* 130c4: 24050001 */ addiu $a1,$zero,0x1 +/* 130c8: 3c057005 */ lui $a1,0x7005 +/* 130cc: 24a5574c */ addiu $a1,$a1,0x574c +/* 130d0: 27a4002c */ addiu $a0,$sp,0x2c +/* 130d4: 8fa600b4 */ lw $a2,0xb4($sp) +/* 130d8: 0c004fc1 */ jal 0x13f04 +/* 130dc: 00403825 */ or $a3,$v0,$zero +/* 130e0: 2404001f */ addiu $a0,$zero,0x1f +/* 130e4: 0c0050df */ jal 0x1437c +/* 130e8: 02002825 */ or $a1,$s0,$zero +/* 130ec: 0c005175 */ jal 0x145d4 +/* 130f0: 27a4002c */ addiu $a0,$sp,0x2c +/* 130f4: 26100001 */ addiu $s0,$s0,0x1 +/* 130f8: 24040004 */ addiu $a0,$zero,0x4 +/* 130fc: 0c004a91 */ jal 0x12a44 +/* 13100: 00002825 */ or $a1,$zero,$zero +/* 13104: afa200b4 */ sw $v0,0xb4($sp) +/* 13108: 24040004 */ addiu $a0,$zero,0x4 +/* 1310c: 0c004a91 */ jal 0x12a44 +/* 13110: 24050001 */ addiu $a1,$zero,0x1 +/* 13114: 3c057005 */ lui $a1,0x7005 +/* 13118: 24a55758 */ addiu $a1,$a1,0x5758 +/* 1311c: 27a4002c */ addiu $a0,$sp,0x2c +/* 13120: 8fa600b4 */ lw $a2,0xb4($sp) +/* 13124: 0c004fc1 */ jal 0x13f04 +/* 13128: 00403825 */ or $a3,$v0,$zero +/* 1312c: 2404001f */ addiu $a0,$zero,0x1f +/* 13130: 0c0050df */ jal 0x1437c +/* 13134: 02002825 */ or $a1,$s0,$zero +/* 13138: 0c005175 */ jal 0x145d4 +/* 1313c: 27a4002c */ addiu $a0,$sp,0x2c +/* 13140: 26100001 */ addiu $s0,$s0,0x1 +/* 13144: 24040004 */ addiu $a0,$zero,0x4 +/* 13148: 0c004a7c */ jal 0x129f0 +/* 1314c: 24050001 */ addiu $a1,$zero,0x1 +/* 13150: afa20024 */ sw $v0,0x24($sp) +/* 13154: 24040004 */ addiu $a0,$zero,0x4 +/* 13158: 0c004a91 */ jal 0x12a44 +/* 1315c: 24050001 */ addiu $a1,$zero,0x1 +/* 13160: afa20028 */ sw $v0,0x28($sp) +/* 13164: 24040004 */ addiu $a0,$zero,0x4 +/* 13168: 0c004a7c */ jal 0x129f0 +/* 1316c: 00002825 */ or $a1,$zero,$zero +/* 13170: 8fae0028 */ lw $t6,0x28($sp) +/* 13174: 8faf0024 */ lw $t7,0x24($sp) +/* 13178: 01cfc023 */ subu $t8,$t6,$t7 +/* 1317c: 03021823 */ subu $v1,$t8,$v0 +/* 13180: 04600008 */ bltz $v1,.NB000131a4 +/* 13184: 00603825 */ or $a3,$v1,$zero +/* 13188: 3c057005 */ lui $a1,0x7005 +/* 1318c: 24a55764 */ addiu $a1,$a1,0x5764 +/* 13190: 27a4002c */ addiu $a0,$sp,0x2c +/* 13194: 0c004fc1 */ jal 0x13f04 +/* 13198: 00603025 */ or $a2,$v1,$zero +/* 1319c: 10000007 */ beqz $zero,.NB000131bc +/* 131a0: 2404001f */ addiu $a0,$zero,0x1f +.NB000131a4: +/* 131a4: 3c057005 */ lui $a1,0x7005 +/* 131a8: 24a55770 */ addiu $a1,$a1,0x5770 +/* 131ac: 27a4002c */ addiu $a0,$sp,0x2c +/* 131b0: 0c004fc1 */ jal 0x13f04 +/* 131b4: 00073023 */ negu $a2,$a3 +/* 131b8: 2404001f */ addiu $a0,$zero,0x1f +.NB000131bc: +/* 131bc: 0c0050df */ jal 0x1437c +/* 131c0: 02002825 */ or $a1,$s0,$zero +/* 131c4: 0c005175 */ jal 0x145d4 +/* 131c8: 27a4002c */ addiu $a0,$sp,0x2c +/* 131cc: 26100001 */ addiu $s0,$s0,0x1 +/* 131d0: 02002825 */ or $a1,$s0,$zero +/* 131d4: 0c0050df */ jal 0x1437c +/* 131d8: 2404001e */ addiu $a0,$zero,0x1e +/* 131dc: 3c047005 */ lui $a0,0x7005 +/* 131e0: 0c005175 */ jal 0x145d4 +/* 131e4: 2484577c */ addiu $a0,$a0,0x577c +/* 131e8: 26100001 */ addiu $s0,$s0,0x1 +/* 131ec: 24040006 */ addiu $a0,$zero,0x6 +/* 131f0: 0c004a7c */ jal 0x129f0 +/* 131f4: 00002825 */ or $a1,$zero,$zero +/* 131f8: afa200b4 */ sw $v0,0xb4($sp) +/* 131fc: 24040006 */ addiu $a0,$zero,0x6 +/* 13200: 0c004a7c */ jal 0x129f0 +/* 13204: 24050001 */ addiu $a1,$zero,0x1 +/* 13208: 3c057005 */ lui $a1,0x7005 +/* 1320c: 24a55790 */ addiu $a1,$a1,0x5790 +/* 13210: 27a4002c */ addiu $a0,$sp,0x2c +/* 13214: 8fa600b4 */ lw $a2,0xb4($sp) +/* 13218: 0c004fc1 */ jal 0x13f04 +/* 1321c: 00403825 */ or $a3,$v0,$zero +/* 13220: 2404001f */ addiu $a0,$zero,0x1f +/* 13224: 0c0050df */ jal 0x1437c +/* 13228: 02002825 */ or $a1,$s0,$zero +/* 1322c: 0c005175 */ jal 0x145d4 +/* 13230: 27a4002c */ addiu $a0,$sp,0x2c +/* 13234: 26100001 */ addiu $s0,$s0,0x1 +/* 13238: 24040006 */ addiu $a0,$zero,0x6 +/* 1323c: 0c004a91 */ jal 0x12a44 +/* 13240: 00002825 */ or $a1,$zero,$zero +/* 13244: afa200b4 */ sw $v0,0xb4($sp) +/* 13248: 24040006 */ addiu $a0,$zero,0x6 +/* 1324c: 0c004a91 */ jal 0x12a44 +/* 13250: 24050001 */ addiu $a1,$zero,0x1 +/* 13254: 3c057005 */ lui $a1,0x7005 +/* 13258: 24a5579c */ addiu $a1,$a1,0x579c +/* 1325c: 27a4002c */ addiu $a0,$sp,0x2c +/* 13260: 8fa600b4 */ lw $a2,0xb4($sp) +/* 13264: 0c004fc1 */ jal 0x13f04 +/* 13268: 00403825 */ or $a3,$v0,$zero +/* 1326c: 2404001f */ addiu $a0,$zero,0x1f +/* 13270: 0c0050df */ jal 0x1437c +/* 13274: 02002825 */ or $a1,$s0,$zero +/* 13278: 0c005175 */ jal 0x145d4 +/* 1327c: 27a4002c */ addiu $a0,$sp,0x2c +/* 13280: 26100001 */ addiu $s0,$s0,0x1 +/* 13284: 02002825 */ or $a1,$s0,$zero +/* 13288: 0c0050df */ jal 0x1437c +/* 1328c: 2404001e */ addiu $a0,$zero,0x1e +/* 13290: 3c047005 */ lui $a0,0x7005 +/* 13294: 0c005175 */ jal 0x145d4 +/* 13298: 248457a8 */ addiu $a0,$a0,0x57a8 +/* 1329c: 0c004d4e */ jal 0x13538 +/* 132a0: 26100001 */ addiu $s0,$s0,0x1 +/* 132a4: 3c057005 */ lui $a1,0x7005 +/* 132a8: 24a557b0 */ addiu $a1,$a1,0x57b0 +/* 132ac: 27a4002c */ addiu $a0,$sp,0x2c +/* 132b0: 0c004fc1 */ jal 0x13f04 +/* 132b4: 00403025 */ or $a2,$v0,$zero +/* 132b8: 2404001f */ addiu $a0,$zero,0x1f +/* 132bc: 0c0050df */ jal 0x1437c +/* 132c0: 02002825 */ or $a1,$s0,$zero +/* 132c4: 0c005175 */ jal 0x145d4 +/* 132c8: 27a4002c */ addiu $a0,$sp,0x2c +/* 132cc: 3c02800a */ lui $v0,0x800a +/* 132d0: 24428170 */ addiu $v0,$v0,-32400 +/* 132d4: 8c590008 */ lw $t9,0x8($v0) +/* 132d8: 8c480004 */ lw $t0,0x4($v0) +/* 132dc: 8c4a0000 */ lw $t2,0x0($v0) +/* 132e0: 3c057005 */ lui $a1,0x7005 +/* 132e4: 03284823 */ subu $t1,$t9,$t0 +/* 132e8: 26100001 */ addiu $s0,$s0,0x1 +/* 132ec: 24a557b8 */ addiu $a1,$a1,0x57b8 +/* 132f0: 27a4002c */ addiu $a0,$sp,0x2c +/* 132f4: 0c004fc1 */ jal 0x13f04 +/* 132f8: 012a3021 */ addu $a2,$t1,$t2 +/* 132fc: 2404001e */ addiu $a0,$zero,0x1e +/* 13300: 0c0050df */ jal 0x1437c +/* 13304: 02002825 */ or $a1,$s0,$zero +/* 13308: 0c005175 */ jal 0x145d4 +/* 1330c: 27a4002c */ addiu $a0,$sp,0x2c +.NB00013310: +/* 13310: 8fbf001c */ lw $ra,0x1c($sp) +/* 13314: 8fb00018 */ lw $s0,0x18($sp) +/* 13318: 27bd00b8 */ addiu $sp,$sp,0xb8 +/* 1331c: 03e00008 */ jr $ra +/* 13320: 00000000 */ sll $zero,$zero,0x0 +); +#endif +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func00012ab0 /* 12ab0: 27bdffd0 */ addiu $sp,$sp,-48 @@ -445,6 +682,116 @@ glabel func00012ab0 /* 12c34: 03e00008 */ jr $ra /* 12c38: 27bd0030 */ addiu $sp,$sp,0x30 ); +#else +GLOBAL_ASM( +glabel func00012ab0 +/* 13324: 27bdffd0 */ addiu $sp,$sp,-48 +/* 13328: afb2001c */ sw $s2,0x1c($sp) +/* 1332c: afb10018 */ sw $s1,0x18($sp) +/* 13330: 00809025 */ or $s2,$a0,$zero +/* 13334: afb50028 */ sw $s5,0x28($sp) +/* 13338: afb00014 */ sw $s0,0x14($sp) +/* 1333c: 3c11800a */ lui $s1,0x800a +/* 13340: afbf002c */ sw $ra,0x2c($sp) +/* 13344: afb40024 */ sw $s4,0x24($sp) +/* 13348: afb30020 */ sw $s3,0x20($sp) +/* 1334c: 2631c404 */ addiu $s1,$s1,-15356 +/* 13350: 2404ffff */ addiu $a0,$zero,-1 +/* 13354: 00002825 */ or $a1,$zero,$zero +/* 13358: 00008025 */ or $s0,$zero,$zero +/* 1335c: 2415ffff */ addiu $s5,$zero,-1 +/* 13360: 24060010 */ addiu $a2,$zero,0x10 +.NB00013364: +/* 13364: 8e230004 */ lw $v1,0x4($s1) +/* 13368: 26100001 */ addiu $s0,$s0,0x1 +/* 1336c: 0072082b */ sltu $at,$v1,$s2 +/* 13370: 1420000e */ bnez $at,.NB000133ac +/* 13374: 00721023 */ subu $v0,$v1,$s2 +/* 13378: 8e2e0000 */ lw $t6,0x0($s1) +/* 1337c: 0044082b */ sltu $at,$v0,$a0 +/* 13380: 00127882 */ srl $t7,$s2,0x2 +/* 13384: 12ae000b */ beq $s5,$t6,.NB000133b4 +/* 13388: 00000000 */ sll $zero,$zero,0x0 +/* 1338c: 10200007 */ beqz $at,.NB000133ac +/* 13390: 2c410040 */ sltiu $at,$v0,0x40 +/* 13394: 00402025 */ or $a0,$v0,$zero +/* 13398: 14200006 */ bnez $at,.NB000133b4 +/* 1339c: 02202825 */ or $a1,$s1,$zero +/* 133a0: 004f082b */ sltu $at,$v0,$t7 +/* 133a4: 14200003 */ bnez $at,.NB000133b4 +/* 133a8: 00000000 */ sll $zero,$zero,0x0 +.NB000133ac: +/* 133ac: 1606ffed */ bne $s0,$a2,.NB00013364 +/* 133b0: 26310008 */ addiu $s1,$s1,0x8 +.NB000133b4: +/* 133b4: 54a00027 */ bnezl $a1,.NB00013454 +/* 133b8: 8ca30000 */ lw $v1,0x0($a1) +/* 133bc: 8e380004 */ lw $t8,0x4($s1) +/* 133c0: 00008025 */ or $s0,$zero,$zero +/* 133c4: 24140008 */ addiu $s4,$zero,0x8 +/* 133c8: 0312082b */ sltu $at,$t8,$s2 +/* 133cc: 10200006 */ beqz $at,.NB000133e8 +/* 133d0: 3c13800a */ lui $s3,0x800a +/* 133d4: 8e39000c */ lw $t9,0xc($s1) +.NB000133d8: +/* 133d8: 26310008 */ addiu $s1,$s1,0x8 +/* 133dc: 0332082b */ sltu $at,$t9,$s2 +/* 133e0: 5420fffd */ bnezl $at,.NB000133d8 +/* 133e4: 8e39000c */ lw $t9,0xc($s1) +.NB000133e8: +/* 133e8: 8e280000 */ lw $t0,0x0($s1) +/* 133ec: 2673c3f8 */ addiu $s3,$s3,-15368 +/* 133f0: 56a80017 */ bnel $s5,$t0,.NB00013450 +/* 133f4: 02202825 */ or $a1,$s1,$zero +/* 133f8: 3c11800a */ lui $s1,0x800a +/* 133fc: 2631c404 */ addiu $s1,$s1,-15356 +.NB00013400: +/* 13400: 0c004b24 */ jal 0x12c90 +/* 13404: 02602025 */ or $a0,$s3,$zero +/* 13408: 26100001 */ addiu $s0,$s0,0x1 +/* 1340c: 1614fffc */ bne $s0,$s4,.NB00013400 +/* 13410: 00000000 */ sll $zero,$zero,0x0 +/* 13414: 8e690010 */ lw $t1,0x10($s3) +/* 13418: 0132082b */ sltu $at,$t1,$s2 +/* 1341c: 50200007 */ beqzl $at,.NB0001343c +/* 13420: 8e2b0000 */ lw $t3,0x0($s1) +/* 13424: 8e2a000c */ lw $t2,0xc($s1) +.NB00013428: +/* 13428: 26310008 */ addiu $s1,$s1,0x8 +/* 1342c: 0152082b */ sltu $at,$t2,$s2 +/* 13430: 5420fffd */ bnezl $at,.NB00013428 +/* 13434: 8e2a000c */ lw $t2,0xc($s1) +/* 13438: 8e2b0000 */ lw $t3,0x0($s1) +.NB0001343c: +/* 1343c: 56ab0004 */ bnel $s5,$t3,.NB00013450 +/* 13440: 02202825 */ or $a1,$s1,$zero +/* 13444: 1000000b */ beqz $zero,.NB00013474 +/* 13448: 00001025 */ or $v0,$zero,$zero +/* 1344c: 02202825 */ or $a1,$s1,$zero +.NB00013450: +/* 13450: 8ca30000 */ lw $v1,0x0($a1) +.NB00013454: +/* 13454: 8cad0004 */ lw $t5,0x4($a1) +/* 13458: 00726021 */ addu $t4,$v1,$s2 +/* 1345c: 01b27023 */ subu $t6,$t5,$s2 +/* 13460: acac0000 */ sw $t4,0x0($a1) +/* 13464: 15c00002 */ bnez $t6,.NB00013470 +/* 13468: acae0004 */ sw $t6,0x4($a1) +/* 1346c: aca00000 */ sw $zero,0x0($a1) +.NB00013470: +/* 13470: 00601025 */ or $v0,$v1,$zero +.NB00013474: +/* 13474: 8fbf002c */ lw $ra,0x2c($sp) +/* 13478: 8fb00014 */ lw $s0,0x14($sp) +/* 1347c: 8fb10018 */ lw $s1,0x18($sp) +/* 13480: 8fb2001c */ lw $s2,0x1c($sp) +/* 13484: 8fb30020 */ lw $s3,0x20($sp) +/* 13488: 8fb40024 */ lw $s4,0x24($sp) +/* 1348c: 8fb50028 */ lw $s5,0x28($sp) +/* 13490: 03e00008 */ jr $ra +/* 13494: 27bd0030 */ addiu $sp,$sp,0x30 +); +#endif GLOBAL_ASM( glabel func00012c3c diff --git a/src/lib/lib_13790.c b/src/lib/lib_13790.c index ecddd761e..e27383353 100644 --- a/src/lib/lib_13790.c +++ b/src/lib/lib_13790.c @@ -5,6 +5,9 @@ #include "data.h" #include "types.h" +#if VERSION >= VERSION_NTSC_1_0 +// These are likely some of the same functions as ntsc-beta below, +// but it's not easy to tell which are which so leaving them separate for now. void func00013790(void) { // empty @@ -24,43 +27,803 @@ void func000137a8(void) { // empty } +#endif +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func00013fe0nb +/* 13fe0: afa40000 */ sw $a0,0x0($sp) +/* 13fe4: afa50004 */ sw $a1,0x4($sp) +/* 13fe8: 03e00008 */ jr $ra +/* 13fec: 00001025 */ or $v0,$zero,$zero +); +#endif + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func00013ff0nb +/* 13ff0: afa40000 */ sw $a0,0x0($sp) +/* 13ff4: afa50004 */ sw $a1,0x4($sp) +/* 13ff8: 03e00008 */ jr $ra +/* 13ffc: 00001025 */ or $v0,$zero,$zero +); +#endif + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func00014000nb +/* 14000: 03e00008 */ jr $ra +/* 14004: 00000000 */ sll $zero,$zero,0x0 +); +#endif + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func00014008nb +/* 14008: 3c0e8006 */ lui $t6,0x8006 +/* 1400c: 25ce1238 */ addiu $t6,$t6,0x1238 +/* 14010: 8dc10000 */ lw $at,0x0($t6) +/* 14014: 27bdffe0 */ addiu $sp,$sp,-32 +/* 14018: 27a50008 */ addiu $a1,$sp,0x8 +/* 1401c: aca10000 */ sw $at,0x0($a1) +/* 14020: 8dd90004 */ lw $t9,0x4($t6) +/* 14024: 3c068006 */ lui $a2,0x8006 +/* 14028: 3c078006 */ lui $a3,0x8006 +/* 1402c: 3c088006 */ lui $t0,0x8006 +/* 14030: 3c0a800a */ lui $t2,0x800a +/* 14034: 3c0b800a */ lui $t3,0x800a +/* 14038: 3c0c800a */ lui $t4,0x800a +/* 1403c: 25081210 */ addiu $t0,$t0,0x1210 +/* 14040: 24e7120c */ addiu $a3,$a3,0x120c +/* 14044: 24c61208 */ addiu $a2,$a2,0x1208 +/* 14048: 254ac9e0 */ addiu $t2,$t2,-13856 +/* 1404c: 256bdfc0 */ addiu $t3,$t3,-8256 +/* 14050: 258ce0c0 */ addiu $t4,$t4,-8000 +/* 14054: acca0000 */ sw $t2,0x0($a2) +/* 14058: aceb0000 */ sw $t3,0x0($a3) +/* 1405c: ad0c0000 */ sw $t4,0x0($t0) +/* 14060: 3c018006 */ lui $at,0x8006 +/* 14064: 240d0001 */ addiu $t5,$zero,0x1 +/* 14068: acb90004 */ sw $t9,0x4($a1) +/* 1406c: ac2d117c */ sw $t5,0x117c($at) +/* 14070: 00001025 */ or $v0,$zero,$zero +/* 14074: 24090046 */ addiu $t1,$zero,0x46 +/* 14078: 00002025 */ or $a0,$zero,$zero +.NB0001407c: +/* 1407c: 000278c0 */ sll $t7,$v0,0x3 +/* 14080: 01e27821 */ addu $t7,$t7,$v0 +/* 14084: 8cd80000 */ lw $t8,0x0($a2) +/* 14088: 000f7880 */ sll $t7,$t7,0x2 +/* 1408c: 01e27823 */ subu $t7,$t7,$v0 +/* 14090: 000f7840 */ sll $t7,$t7,0x1 +/* 14094: 030f7021 */ addu $t6,$t8,$t7 +/* 14098: 01c4c821 */ addu $t9,$t6,$a0 +/* 1409c: 000258c0 */ sll $t3,$v0,0x3 +/* 140a0: a3200000 */ sb $zero,0x0($t9) +/* 140a4: 01625821 */ addu $t3,$t3,$v0 +/* 140a8: 8cca0000 */ lw $t2,0x0($a2) +/* 140ac: 000b5880 */ sll $t3,$t3,0x2 +/* 140b0: 01625823 */ subu $t3,$t3,$v0 +/* 140b4: 000b5840 */ sll $t3,$t3,0x1 +/* 140b8: 014b6021 */ addu $t4,$t2,$t3 +/* 140bc: 01846821 */ addu $t5,$t4,$a0 +/* 140c0: 24840002 */ addiu $a0,$a0,0x2 +/* 140c4: 1489ffed */ bne $a0,$t1,.NB0001407c +/* 140c8: a1a00001 */ sb $zero,0x1($t5) +/* 140cc: 24420001 */ addiu $v0,$v0,0x1 +/* 140d0: 28410050 */ slti $at,$v0,0x50 +/* 140d4: 5420ffe9 */ bnezl $at,.NB0001407c +/* 140d8: 00002025 */ or $a0,$zero,$zero +/* 140dc: 00001825 */ or $v1,$zero,$zero +/* 140e0: 24020100 */ addiu $v0,$zero,0x100 +.NB000140e4: +/* 140e4: 8cf80000 */ lw $t8,0x0($a3) +/* 140e8: 8ca10000 */ lw $at,0x0($a1) +/* 140ec: 03037821 */ addu $t7,$t8,$v1 +/* 140f0: ade10000 */ sw $at,0x0($t7) +/* 140f4: 8cb90004 */ lw $t9,0x4($a1) +/* 140f8: adf90004 */ sw $t9,0x4($t7) +/* 140fc: 8d0a0000 */ lw $t2,0x0($t0) +/* 14100: 8ca10000 */ lw $at,0x0($a1) +/* 14104: 01435821 */ addu $t3,$t2,$v1 +/* 14108: ad610000 */ sw $at,0x0($t3) +/* 1410c: 8cad0004 */ lw $t5,0x4($a1) +/* 14110: 24630008 */ addiu $v1,$v1,0x8 +/* 14114: 1462fff3 */ bne $v1,$v0,.NB000140e4 +/* 14118: ad6d0004 */ sw $t5,0x4($t3) +/* 1411c: 03e00008 */ jr $ra +/* 14120: 27bd0020 */ addiu $sp,$sp,0x20 +); +#endif + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func00014124nb +/* 14124: 3c0e8006 */ lui $t6,0x8006 +/* 14128: 8dce117c */ lw $t6,0x117c($t6) +/* 1412c: 27bdffe8 */ addiu $sp,$sp,-24 +/* 14130: afbf0014 */ sw $ra,0x14($sp) +/* 14134: 51c00004 */ beqzl $t6,.NB00014148 +/* 14138: 8fbf0014 */ lw $ra,0x14($sp) +/* 1413c: 0c0050b5 */ jal 0x142d4 +/* 14140: 00000000 */ sll $zero,$zero,0x0 +/* 14144: 8fbf0014 */ lw $ra,0x14($sp) +.NB00014148: +/* 14148: 27bd0018 */ addiu $sp,$sp,0x18 +/* 1414c: 03e00008 */ jr $ra +/* 14150: 00000000 */ sll $zero,$zero,0x0 +); +#endif + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func00014154nb +/* 14154: 3c078006 */ lui $a3,0x8006 +/* 14158: 8ce7120c */ lw $a3,0x120c($a3) +/* 1415c: afa60008 */ sw $a2,0x8($sp) +/* 14160: 30ce00ff */ andi $t6,$a2,0xff +/* 14164: 3c038006 */ lui $v1,0x8006 +/* 14168: 3c0b8006 */ lui $t3,0x8006 +/* 1416c: 3c0a8006 */ lui $t2,0x8006 +/* 14170: 01c03025 */ or $a2,$t6,$zero +/* 14174: 254a1230 */ addiu $t2,$t2,0x1230 +/* 14178: 256b1210 */ addiu $t3,$t3,0x1210 +/* 1417c: 8c63122c */ lw $v1,0x122c($v1) +/* 14180: 00001025 */ or $v0,$zero,$zero +/* 14184: 00004025 */ or $t0,$zero,$zero +/* 14188: 00e04825 */ or $t1,$a3,$zero +.NB0001418c: +/* 1418c: 8d2f0004 */ lw $t7,0x4($t1) +/* 14190: 25290008 */ addiu $t1,$t1,0x8 +/* 14194: 546f0008 */ bnel $v1,$t7,.NB000141b8 +/* 14198: 24420001 */ addiu $v0,$v0,0x1 +/* 1419c: 8d790000 */ lw $t9,0x0($t3) +/* 141a0: 8d580004 */ lw $t8,0x4($t2) +/* 141a4: 03286021 */ addu $t4,$t9,$t0 +/* 141a8: 8d8d0004 */ lw $t5,0x4($t4) +/* 141ac: 130d0021 */ beq $t8,$t5,.NB00014234 +/* 141b0: 00000000 */ sll $zero,$zero,0x0 +/* 141b4: 24420001 */ addiu $v0,$v0,0x1 +.NB000141b8: +/* 141b8: 28410020 */ slti $at,$v0,0x20 +/* 141bc: 1420fff3 */ bnez $at,.NB0001418c +/* 141c0: 25080008 */ addiu $t0,$t0,0x8 +/* 141c4: 3c038006 */ lui $v1,0x8006 +/* 141c8: 24631214 */ addiu $v1,$v1,0x1214 +/* 141cc: 8c6e0000 */ lw $t6,0x0($v1) +/* 141d0: 3c0c8006 */ lui $t4,0x8006 +/* 141d4: 258c1228 */ addiu $t4,$t4,0x1228 +/* 141d8: 8d810000 */ lw $at,0x0($t4) +/* 141dc: 000e78c0 */ sll $t7,$t6,0x3 +/* 141e0: 00efc821 */ addu $t9,$a3,$t7 +/* 141e4: af210000 */ sw $at,0x0($t9) +/* 141e8: 8d8d0004 */ lw $t5,0x4($t4) +/* 141ec: af2d0004 */ sw $t5,0x4($t9) +/* 141f0: 8c6f0000 */ lw $t7,0x0($v1) +/* 141f4: 8d6e0000 */ lw $t6,0x0($t3) +/* 141f8: 8d410000 */ lw $at,0x0($t2) +/* 141fc: 000fc0c0 */ sll $t8,$t7,0x3 +/* 14200: 01d8c821 */ addu $t9,$t6,$t8 +/* 14204: af210000 */ sw $at,0x0($t9) +/* 14208: 8d4d0004 */ lw $t5,0x4($t2) +/* 1420c: af2d0004 */ sw $t5,0x4($t9) +/* 14210: 8c6f0000 */ lw $t7,0x0($v1) +/* 14214: 25ee0001 */ addiu $t6,$t7,0x1 +/* 14218: 05c10004 */ bgez $t6,.NB0001422c +/* 1421c: 31d8001f */ andi $t8,$t6,0x1f +/* 14220: 13000002 */ beqz $t8,.NB0001422c +/* 14224: 00000000 */ sll $zero,$zero,0x0 +/* 14228: 2718ffe0 */ addiu $t8,$t8,-32 +.NB0001422c: +/* 1422c: ac780000 */ sw $t8,0x0($v1) +/* 14230: 03001025 */ or $v0,$t8,$zero +.NB00014234: +/* 14234: 3c078006 */ lui $a3,0x8006 +/* 14238: 0004c8c0 */ sll $t9,$a0,0x3 +/* 1423c: 24e71208 */ addiu $a3,$a3,0x1208 +/* 14240: 0324c821 */ addu $t9,$t9,$a0 +/* 14244: 8cec0000 */ lw $t4,0x0($a3) +/* 14248: 0019c880 */ sll $t9,$t9,0x2 +/* 1424c: 0324c823 */ subu $t9,$t9,$a0 +/* 14250: 0019c840 */ sll $t9,$t9,0x1 +/* 14254: 00051840 */ sll $v1,$a1,0x1 +/* 14258: 01996821 */ addu $t5,$t4,$t9 +/* 1425c: 01a37821 */ addu $t7,$t5,$v1 +/* 14260: 0004c0c0 */ sll $t8,$a0,0x3 +/* 14264: a1e60000 */ sb $a2,0x0($t7) +/* 14268: 0304c021 */ addu $t8,$t8,$a0 +/* 1426c: 8cee0000 */ lw $t6,0x0($a3) +/* 14270: 0018c080 */ sll $t8,$t8,0x2 +/* 14274: 0304c023 */ subu $t8,$t8,$a0 +/* 14278: 0018c040 */ sll $t8,$t8,0x1 +/* 1427c: 01d86021 */ addu $t4,$t6,$t8 +/* 14280: 0183c821 */ addu $t9,$t4,$v1 +/* 14284: 10c00003 */ beqz $a2,.NB00014294 +/* 14288: a3220001 */ sb $v0,0x1($t9) +/* 1428c: 3c018006 */ lui $at,0x8006 +/* 14290: ac201178 */ sw $zero,0x1178($at) +.NB00014294: +/* 14294: 03e00008 */ jr $ra +/* 14298: 00000000 */ sll $zero,$zero,0x0 +); +#endif + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func0001429cnb +/* 1429c: 3c0e8006 */ lui $t6,0x8006 +/* 142a0: 8dce117c */ lw $t6,0x117c($t6) +/* 142a4: 3c0f8006 */ lui $t7,0x8006 +/* 142a8: 3c018006 */ lui $at,0x8006 +/* 142ac: 11c00007 */ beqz $t6,.NB000142cc +/* 142b0: 00000000 */ sll $zero,$zero,0x0 +/* 142b4: 8def1168 */ lw $t7,0x1168($t7) +/* 142b8: 3c188006 */ lui $t8,0x8006 +/* 142bc: 8f18116c */ lw $t8,0x116c($t8) +/* 142c0: ac2f1170 */ sw $t7,0x1170($at) +/* 142c4: 3c018006 */ lui $at,0x8006 +/* 142c8: ac381174 */ sw $t8,0x1174($at) +.NB000142cc: +/* 142cc: 03e00008 */ jr $ra +/* 142d0: 00000000 */ sll $zero,$zero,0x0 +); +#endif + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func000142d4nb +/* 142d4: 27bdffd8 */ addiu $sp,$sp,-40 +/* 142d8: 3c0e8006 */ lui $t6,0x8006 +/* 142dc: 8dce117c */ lw $t6,0x117c($t6) +/* 142e0: afbf0024 */ sw $ra,0x24($sp) +/* 142e4: afb30020 */ sw $s3,0x20($sp) +/* 142e8: afb2001c */ sw $s2,0x1c($sp) +/* 142ec: afb10018 */ sw $s1,0x18($sp) +/* 142f0: 11c0001b */ beqz $t6,.NB00014360 +/* 142f4: afb00014 */ sw $s0,0x14($sp) +/* 142f8: 3c0f8006 */ lui $t7,0x8006 +/* 142fc: 8def1178 */ lw $t7,0x1178($t7) +/* 14300: 24010001 */ addiu $at,$zero,0x1 +/* 14304: 00009025 */ or $s2,$zero,$zero +/* 14308: 11e10015 */ beq $t7,$at,.NB00014360 +/* 1430c: 24130023 */ addiu $s3,$zero,0x23 +/* 14310: 24110050 */ addiu $s1,$zero,0x50 +/* 14314: 00008025 */ or $s0,$zero,$zero +.NB00014318: +/* 14318: 02002025 */ or $a0,$s0,$zero +.NB0001431c: +/* 1431c: 02402825 */ or $a1,$s2,$zero +/* 14320: 0c005055 */ jal 0x14154 +/* 14324: 00003025 */ or $a2,$zero,$zero +/* 14328: 26100001 */ addiu $s0,$s0,0x1 +/* 1432c: 5611fffb */ bnel $s0,$s1,.NB0001431c +/* 14330: 02002025 */ or $a0,$s0,$zero +/* 14334: 26520001 */ addiu $s2,$s2,0x1 +/* 14338: 5653fff7 */ bnel $s2,$s3,.NB00014318 +/* 1433c: 00008025 */ or $s0,$zero,$zero +/* 14340: 24180001 */ addiu $t8,$zero,0x1 +/* 14344: 3c018006 */ lui $at,0x8006 +/* 14348: 0c0050a7 */ jal 0x1429c +/* 1434c: ac381178 */ sw $t8,0x1178($at) +/* 14350: 0c005000 */ jal 0x14000 +/* 14354: 00000000 */ sll $zero,$zero,0x0 +/* 14358: 3c018006 */ lui $at,0x8006 +/* 1435c: ac201214 */ sw $zero,0x1214($at) +.NB00014360: +/* 14360: 8fbf0024 */ lw $ra,0x24($sp) +/* 14364: 8fb00014 */ lw $s0,0x14($sp) +/* 14368: 8fb10018 */ lw $s1,0x18($sp) +/* 1436c: 8fb2001c */ lw $s2,0x1c($sp) +/* 14370: 8fb30020 */ lw $s3,0x20($sp) +/* 14374: 03e00008 */ jr $ra +/* 14378: 27bd0028 */ addiu $sp,$sp,0x28 +); +#endif + +#if VERSION >= VERSION_NTSC_1_0 void func000137b0(s32 arg0, s32 arg1) { // empty } +#else +GLOBAL_ASM( +glabel func000137b0 +/* 1437c: 3c0e8006 */ lui $t6,0x8006 +/* 14380: 8dce117c */ lw $t6,0x117c($t6) +/* 14384: 27bdffe8 */ addiu $sp,$sp,-24 +/* 14388: afbf0014 */ sw $ra,0x14($sp) +/* 1438c: 11c0001e */ beqz $t6,.NB00014408 +/* 14390: 3c0f8006 */ lui $t7,0x8006 +/* 14394: 3c188006 */ lui $t8,0x8006 +/* 14398: 8def1168 */ lw $t7,0x1168($t7) +/* 1439c: 8f18116c */ lw $t8,0x116c($t8) +/* 143a0: 008f2021 */ addu $a0,$a0,$t7 +/* 143a4: 00b82821 */ addu $a1,$a1,$t8 +/* 143a8: afa5001c */ sw $a1,0x1c($sp) +/* 143ac: 0c002f7b */ jal 0xbdec +/* 143b0: afa40018 */ sw $a0,0x18($sp) +/* 143b4: 2459fff6 */ addiu $t9,$v0,-10 +/* 143b8: 24010007 */ addiu $at,$zero,0x7 +/* 143bc: 0321001a */ div $zero,$t9,$at +/* 143c0: 8fa5001c */ lw $a1,0x1c($sp) +/* 143c4: 00004012 */ mflo $t0 +/* 143c8: 00a8082a */ slt $at,$a1,$t0 +/* 143cc: 5420000a */ bnezl $at,.NB000143f8 +/* 143d0: 8faa0018 */ lw $t2,0x18($sp) +/* 143d4: 0c002f7b */ jal 0xbdec +/* 143d8: 00000000 */ sll $zero,$zero,0x0 +/* 143dc: 2445fff6 */ addiu $a1,$v0,-10 +/* 143e0: 24010007 */ addiu $at,$zero,0x7 +/* 143e4: 00a1001a */ div $zero,$a1,$at +/* 143e8: 00004812 */ mflo $t1 +/* 143ec: 2525ffff */ addiu $a1,$t1,-1 +/* 143f0: 00000000 */ sll $zero,$zero,0x0 +/* 143f4: 8faa0018 */ lw $t2,0x18($sp) +.NB000143f8: +/* 143f8: 3c018006 */ lui $at,0x8006 +/* 143fc: ac2a1170 */ sw $t2,0x1170($at) +/* 14400: 3c018006 */ lui $at,0x8006 +/* 14404: ac251174 */ sw $a1,0x1174($at) +.NB00014408: +/* 14408: 8fbf0014 */ lw $ra,0x14($sp) +/* 1440c: 27bd0018 */ addiu $sp,$sp,0x18 +/* 14410: 03e00008 */ jr $ra +/* 14414: 00000000 */ sll $zero,$zero,0x0 +); +#endif +#if VERSION >= VERSION_NTSC_1_0 void func000137bc(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { // empty } +#else +GLOBAL_ASM( +glabel func000137bc +/* 14418: 3c0e8006 */ lui $t6,0x8006 +/* 1441c: 8dce117c */ lw $t6,0x117c($t6) +/* 14420: 00047e00 */ sll $t7,$a0,0x18 +/* 14424: 0005c400 */ sll $t8,$a1,0x10 +/* 14428: 11c00008 */ beqz $t6,.NB0001444c +/* 1442c: 01f8c825 */ or $t9,$t7,$t8 +/* 14430: 00064200 */ sll $t0,$a2,0x8 +/* 14434: 240a00ff */ addiu $t2,$zero,0xff +/* 14438: 01475823 */ subu $t3,$t2,$a3 +/* 1443c: 03284825 */ or $t1,$t9,$t0 +/* 14440: 012b6025 */ or $t4,$t1,$t3 +/* 14444: 3c018006 */ lui $at,0x8006 +/* 14448: ac2c122c */ sw $t4,0x122c($at) +.NB0001444c: +/* 1444c: 03e00008 */ jr $ra +/* 14450: 00000000 */ sll $zero,$zero,0x0 +); +#endif +#if VERSION >= VERSION_NTSC_1_0 void func000137d0(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { // empty } +#else +GLOBAL_ASM( +glabel func000137d0 +/* 14454: 3c0e8006 */ lui $t6,0x8006 +/* 14458: 8dce117c */ lw $t6,0x117c($t6) +/* 1445c: 00047e00 */ sll $t7,$a0,0x18 +/* 14460: 0005c400 */ sll $t8,$a1,0x10 +/* 14464: 11c00008 */ beqz $t6,.NB00014488 +/* 14468: 01f8c825 */ or $t9,$t7,$t8 +/* 1446c: 00064200 */ sll $t0,$a2,0x8 +/* 14470: 240a00ff */ addiu $t2,$zero,0xff +/* 14474: 01475823 */ subu $t3,$t2,$a3 +/* 14478: 03284825 */ or $t1,$t9,$t0 +/* 1447c: 012b6025 */ or $t4,$t1,$t3 +/* 14480: 3c018006 */ lui $at,0x8006 +/* 14484: ac2c1234 */ sw $t4,0x1234($at) +.NB00014488: +/* 14488: 03e00008 */ jr $ra +/* 1448c: 00000000 */ sll $zero,$zero,0x0 +); +#endif +#if VERSION >= VERSION_NTSC_1_0 void func000137e4(s32 arg0) { // empty } +#else +GLOBAL_ASM( +glabel func000137e4 +/* 14490: 27bdffd8 */ addiu $sp,$sp,-40 +/* 14494: afbf0014 */ sw $ra,0x14($sp) +/* 14498: 0c002f77 */ jal 0xbddc +/* 1449c: afa40028 */ sw $a0,0x28($sp) +/* 144a0: 244efff3 */ addiu $t6,$v0,-13 +/* 144a4: 05c10003 */ bgez $t6,.NB000144b4 +/* 144a8: 000e7883 */ sra $t7,$t6,0x2 +/* 144ac: 25c10003 */ addiu $at,$t6,0x3 +/* 144b0: 00017883 */ sra $t7,$at,0x2 +.NB000144b4: +/* 144b4: 0c002f7b */ jal 0xbdec +/* 144b8: afaf0024 */ sw $t7,0x24($sp) +/* 144bc: 2448fff6 */ addiu $t0,$v0,-10 +/* 144c0: 24010007 */ addiu $at,$zero,0x7 +/* 144c4: 0101001a */ div $zero,$t0,$at +/* 144c8: 3c198006 */ lui $t9,0x8006 +/* 144cc: 8f39117c */ lw $t9,0x117c($t9) +/* 144d0: 00004012 */ mflo $t0 +/* 144d4: 93a6002b */ lbu $a2,0x2b($sp) +/* 144d8: 5320002d */ beqzl $t9,.NB00014590 +/* 144dc: 8fbf0014 */ lw $ra,0x14($sp) +/* 144e0: 10c00005 */ beqz $a2,.NB000144f8 +/* 144e4: 00c01025 */ or $v0,$a2,$zero +/* 144e8: 28410020 */ slti $at,$v0,0x20 +/* 144ec: 1420000d */ bnez $at,.NB00014524 +/* 144f0: 2841007f */ slti $at,$v0,0x7f +/* 144f4: 1020000b */ beqz $at,.NB00014524 +.NB000144f8: +/* 144f8: 3c038006 */ lui $v1,0x8006 +/* 144fc: 3c078006 */ lui $a3,0x8006 +/* 14500: 24e71174 */ addiu $a3,$a3,0x1174 +/* 14504: 24631170 */ addiu $v1,$v1,0x1170 +/* 14508: 8c640000 */ lw $a0,0x0($v1) +/* 1450c: 8ce50000 */ lw $a1,0x0($a3) +/* 14510: afa2001c */ sw $v0,0x1c($sp) +/* 14514: 0c005055 */ jal 0x14154 +/* 14518: afa80020 */ sw $t0,0x20($sp) +/* 1451c: 8fa2001c */ lw $v0,0x1c($sp) +/* 14520: 8fa80020 */ lw $t0,0x20($sp) +.NB00014524: +/* 14524: 3c038006 */ lui $v1,0x8006 +/* 14528: 24631170 */ addiu $v1,$v1,0x1170 +/* 1452c: 8c690000 */ lw $t1,0x0($v1) +/* 14530: 3c078006 */ lui $a3,0x8006 +/* 14534: 2401000d */ addiu $at,$zero,0xd +/* 14538: 252a0001 */ addiu $t2,$t1,0x1 +/* 1453c: 24e71174 */ addiu $a3,$a3,0x1174 +/* 14540: 10410007 */ beq $v0,$at,.NB00014560 +/* 14544: ac6a0000 */ sw $t2,0x0($v1) +/* 14548: 2401000a */ addiu $at,$zero,0xa +/* 1454c: 10410004 */ beq $v0,$at,.NB00014560 +/* 14550: 8fac0024 */ lw $t4,0x24($sp) +/* 14554: 014c082a */ slt $at,$t2,$t4 +/* 14558: 5420000d */ bnezl $at,.NB00014590 +/* 1455c: 8fbf0014 */ lw $ra,0x14($sp) +.NB00014560: +/* 14560: 8cee0000 */ lw $t6,0x0($a3) +/* 14564: 3c0d8006 */ lui $t5,0x8006 +/* 14568: 8dad1168 */ lw $t5,0x1168($t5) +/* 1456c: 25cf0001 */ addiu $t7,$t6,0x1 +/* 14570: 01e8082a */ slt $at,$t7,$t0 +/* 14574: acef0000 */ sw $t7,0x0($a3) +/* 14578: 14200004 */ bnez $at,.NB0001458c +/* 1457c: ac6d0000 */ sw $t5,0x0($v1) +/* 14580: 3c198006 */ lui $t9,0x8006 +/* 14584: 8f39116c */ lw $t9,0x116c($t9) +/* 14588: acf90000 */ sw $t9,0x0($a3) +.NB0001458c: +/* 1458c: 8fbf0014 */ lw $ra,0x14($sp) +.NB00014590: +/* 14590: 27bd0028 */ addiu $sp,$sp,0x28 +/* 14594: 03e00008 */ jr $ra +/* 14598: 00000000 */ sll $zero,$zero,0x0 +); +#endif +#if VERSION >= VERSION_NTSC_1_0 void func000137ec(s32 arg0, s32 arg1, s32 arg2) { // empty } +#else +GLOBAL_ASM( +glabel func000137ec +/* 1459c: 3c0e8006 */ lui $t6,0x8006 +/* 145a0: 8dce117c */ lw $t6,0x117c($t6) +/* 145a4: 27bdffe8 */ addiu $sp,$sp,-24 +/* 145a8: afbf0014 */ sw $ra,0x14($sp) +/* 145ac: 11c00005 */ beqz $t6,.NB000145c4 +/* 145b0: afa60020 */ sw $a2,0x20($sp) +/* 145b4: 0c0050df */ jal 0x1437c +/* 145b8: 00000000 */ sll $zero,$zero,0x0 +/* 145bc: 0c005124 */ jal 0x14490 +/* 145c0: 93a40023 */ lbu $a0,0x23($sp) +.NB000145c4: +/* 145c4: 8fbf0014 */ lw $ra,0x14($sp) +/* 145c8: 27bd0018 */ addiu $sp,$sp,0x18 +/* 145cc: 03e00008 */ jr $ra +/* 145d0: 00000000 */ sll $zero,$zero,0x0 +); +#endif +#if VERSION >= VERSION_NTSC_1_0 void func000137fc(s32 arg0) { // empty } +#else +GLOBAL_ASM( +glabel func000137fc +/* 145d4: 3c0e8006 */ lui $t6,0x8006 +/* 145d8: 8dce117c */ lw $t6,0x117c($t6) +/* 145dc: 27bdffe0 */ addiu $sp,$sp,-32 +/* 145e0: afb10018 */ sw $s1,0x18($sp) +/* 145e4: 00808825 */ or $s1,$a0,$zero +/* 145e8: afbf001c */ sw $ra,0x1c($sp) +/* 145ec: 11c00009 */ beqz $t6,.NB00014614 +/* 145f0: afb00014 */ sw $s0,0x14($sp) +/* 145f4: 90900000 */ lbu $s0,0x0($a0) +/* 145f8: 12000006 */ beqz $s0,.NB00014614 +/* 145fc: 320400ff */ andi $a0,$s0,0xff +.NB00014600: +/* 14600: 0c005124 */ jal 0x14490 +/* 14604: 26310001 */ addiu $s1,$s1,0x1 +/* 14608: 92300000 */ lbu $s0,0x0($s1) +/* 1460c: 5600fffc */ bnezl $s0,.NB00014600 +/* 14610: 320400ff */ andi $a0,$s0,0xff +.NB00014614: +/* 14614: 8fbf001c */ lw $ra,0x1c($sp) +/* 14618: 8fb00014 */ lw $s0,0x14($sp) +/* 1461c: 8fb10018 */ lw $s1,0x18($sp) +/* 14620: 03e00008 */ jr $ra +/* 14624: 27bd0020 */ addiu $sp,$sp,0x20 +); +#endif +#if VERSION >= VERSION_NTSC_1_0 void func00013804(s32 arg0, s32 arg1, s32 arg2) { // empty } +#else +GLOBAL_ASM( +glabel func00013804 +/* 14628: 3c0e8006 */ lui $t6,0x8006 +/* 1462c: 8dce117c */ lw $t6,0x117c($t6) +/* 14630: 27bdffe0 */ addiu $sp,$sp,-32 +/* 14634: afb10018 */ sw $s1,0x18($sp) +/* 14638: 00c08825 */ or $s1,$a2,$zero +/* 1463c: afbf001c */ sw $ra,0x1c($sp) +/* 14640: 11c0000b */ beqz $t6,.NB00014670 +/* 14644: afb00014 */ sw $s0,0x14($sp) +/* 14648: 0c0050df */ jal 0x1437c +/* 1464c: 00000000 */ sll $zero,$zero,0x0 +/* 14650: 92300000 */ lbu $s0,0x0($s1) +/* 14654: 12000006 */ beqz $s0,.NB00014670 +/* 14658: 320400ff */ andi $a0,$s0,0xff +.NB0001465c: +/* 1465c: 0c005124 */ jal 0x14490 +/* 14660: 26310001 */ addiu $s1,$s1,0x1 +/* 14664: 92300000 */ lbu $s0,0x0($s1) +/* 14668: 5600fffc */ bnezl $s0,.NB0001465c +/* 1466c: 320400ff */ andi $a0,$s0,0xff +.NB00014670: +/* 14670: 8fbf001c */ lw $ra,0x1c($sp) +/* 14674: 8fb00014 */ lw $s0,0x14($sp) +/* 14678: 8fb10018 */ lw $s1,0x18($sp) +/* 1467c: 03e00008 */ jr $ra +/* 14680: 27bd0020 */ addiu $sp,$sp,0x20 +); +#endif -s32 func00013814(s32 arg0) +#if VERSION >= VERSION_NTSC_1_0 +Gfx *func00013814(Gfx *gdl) { - return arg0; + return gdl; } +#else +GLOBAL_ASM( +glabel func00013814 +/* 14684: 27bdff78 */ addiu $sp,$sp,-136 +/* 14688: 3c0e8006 */ lui $t6,0x8006 +/* 1468c: 8dce117c */ lw $t6,0x117c($t6) +/* 14690: afb00018 */ sw $s0,0x18($sp) +/* 14694: 00808025 */ or $s0,$a0,$zero +/* 14698: afbf003c */ sw $ra,0x3c($sp) +/* 1469c: afbe0038 */ sw $s8,0x38($sp) +/* 146a0: afb70034 */ sw $s7,0x34($sp) +/* 146a4: afb60030 */ sw $s6,0x30($sp) +/* 146a8: afb5002c */ sw $s5,0x2c($sp) +/* 146ac: afb40028 */ sw $s4,0x28($sp) +/* 146b0: afb30024 */ sw $s3,0x24($sp) +/* 146b4: afb20020 */ sw $s2,0x20($sp) +/* 146b8: 15c00003 */ bnez $t6,.NB000146c8 +/* 146bc: afb1001c */ sw $s1,0x1c($sp) +/* 146c0: 100000a5 */ beqz $zero,.NB00014958 +/* 146c4: 00801025 */ or $v0,$a0,$zero +.NB000146c8: +/* 146c8: 3c0f8006 */ lui $t7,0x8006 +/* 146cc: 8def1178 */ lw $t7,0x1178($t7) +/* 146d0: 02008825 */ or $s1,$s0,$zero +/* 146d4: 2406ffff */ addiu $a2,$zero,-1 +/* 146d8: 15e0009e */ bnez $t7,.NB00014954 +/* 146dc: 0000a025 */ or $s4,$zero,$zero +/* 146e0: 3c078006 */ lui $a3,0x8006 +/* 146e4: 8ce71208 */ lw $a3,0x1208($a3) +/* 146e8: 00004025 */ or $t0,$zero,$zero +/* 146ec: 24090050 */ addiu $t1,$zero,0x50 +/* 146f0: 00002825 */ or $a1,$zero,$zero +.NB000146f4: +/* 146f4: 00e82021 */ addu $a0,$a3,$t0 +.NB000146f8: +/* 146f8: 90820000 */ lbu $v0,0x0($a0) +/* 146fc: 24a50001 */ addiu $a1,$a1,0x1 +/* 14700: 90830001 */ lbu $v1,0x1($a0) +/* 14704: 10400006 */ beqz $v0,.NB00014720 +/* 14708: 00000000 */ sll $zero,$zero,0x0 +/* 1470c: 50660004 */ beql $v1,$a2,.NB00014720 +/* 14710: 26310018 */ addiu $s1,$s1,0x18 +/* 14714: 26310010 */ addiu $s1,$s1,0x10 +/* 14718: 00603025 */ or $a2,$v1,$zero +/* 1471c: 26310018 */ addiu $s1,$s1,0x18 +.NB00014720: +/* 14720: 14a9fff5 */ bne $a1,$t1,.NB000146f8 +/* 14724: 24840046 */ addiu $a0,$a0,0x46 +/* 14728: 25080002 */ addiu $t0,$t0,0x2 +/* 1472c: 29010046 */ slti $at,$t0,0x46 +/* 14730: 5420fff0 */ bnezl $at,.NB000146f4 +/* 14734: 00002825 */ or $a1,$zero,$zero +/* 14738: 0fc588f2 */ jal 0xf1623c8 +/* 1473c: 02002025 */ or $a0,$s0,$zero +/* 14740: 02302023 */ subu $a0,$s1,$s0 +/* 14744: 1c800003 */ bgtz $a0,.NB00014754 +/* 14748: 24090050 */ addiu $t1,$zero,0x50 +/* 1474c: 10000082 */ beqz $zero,.NB00014958 +/* 14750: 02001025 */ or $v0,$s0,$zero +.NB00014754: +/* 14754: 2443f800 */ addiu $v1,$v0,-2048 +/* 14758: 1c600004 */ bgtz $v1,.NB0001476c +/* 1475c: 2413ffff */ addiu $s3,$zero,-1 +/* 14760: 3c018006 */ lui $at,0x8006 +/* 14764: 10000017 */ beqz $zero,.NB000147c4 +/* 14768: ac201240 */ sw $zero,0x1240($at) +.NB0001476c: +/* 1476c: 0064082a */ slt $at,$v1,$a0 +/* 14770: 10200011 */ beqz $at,.NB000147b8 +/* 14774: 0003c200 */ sll $t8,$v1,0x8 +/* 14778: 0303c023 */ subu $t8,$t8,$v1 +/* 1477c: 0304001a */ div $zero,$t8,$a0 +/* 14780: 14800002 */ bnez $a0,.NB0001478c +/* 14784: 00000000 */ sll $zero,$zero,0x0 +/* 14788: 0007000d */ break 0x7 +.NB0001478c: +/* 1478c: 2401ffff */ addiu $at,$zero,-1 +/* 14790: 14810004 */ bne $a0,$at,.NB000147a4 +/* 14794: 3c018000 */ lui $at,0x8000 +/* 14798: 17010002 */ bne $t8,$at,.NB000147a4 +/* 1479c: 00000000 */ sll $zero,$zero,0x0 +/* 147a0: 0006000d */ break 0x6 +.NB000147a4: +/* 147a4: 3c018006 */ lui $at,0x8006 +/* 147a8: 0000c812 */ mflo $t9 +/* 147ac: ac391240 */ sw $t9,0x1240($at) +/* 147b0: 10000005 */ beqz $zero,.NB000147c8 +/* 147b4: 02001025 */ or $v0,$s0,$zero +.NB000147b8: +/* 147b8: 240a0100 */ addiu $t2,$zero,0x100 +/* 147bc: 3c018006 */ lui $at,0x8006 +/* 147c0: ac2a1240 */ sw $t2,0x1240($at) +.NB000147c4: +/* 147c4: 02001025 */ or $v0,$s0,$zero +.NB000147c8: +/* 147c8: 3c0c8006 */ lui $t4,0x8006 +/* 147cc: 258c1180 */ addiu $t4,$t4,0x1180 +/* 147d0: 3c0b0600 */ lui $t3,0x600 +/* 147d4: 3c178006 */ lui $s7,0x8006 +/* 147d8: 3c168006 */ lui $s6,0x8006 +/* 147dc: 3c158006 */ lui $s5,0x8006 +/* 147e0: ac4b0000 */ sw $t3,0x0($v0) +/* 147e4: ac4c0004 */ sw $t4,0x4($v0) +/* 147e8: 26100008 */ addiu $s0,$s0,0x8 +/* 147ec: 26b51208 */ addiu $s5,$s5,0x1208 +/* 147f0: 26d6120c */ addiu $s6,$s6,0x120c +/* 147f4: 26f71210 */ addiu $s7,$s7,0x1210 +/* 147f8: 0000a025 */ or $s4,$zero,$zero +/* 147fc: 00004025 */ or $t0,$zero,$zero +/* 14800: 3c1ee400 */ lui $s8,0xe400 +.NB00014804: +/* 14804: 00008825 */ or $s1,$zero,$zero +/* 14808: 001170c0 */ sll $t6,$s1,0x3 +.NB0001480c: +/* 1480c: 01d17021 */ addu $t6,$t6,$s1 +/* 14810: 8ead0000 */ lw $t5,0x0($s5) +/* 14814: 000e7080 */ sll $t6,$t6,0x2 +/* 14818: 01d17023 */ subu $t6,$t6,$s1 +/* 1481c: 000e7040 */ sll $t6,$t6,0x1 +/* 14820: 01ae7821 */ addu $t7,$t5,$t6 +/* 14824: 01e81021 */ addu $v0,$t7,$t0 +/* 14828: 90520000 */ lbu $s2,0x0($v0) +/* 1482c: 90430001 */ lbu $v1,0x1($v0) +/* 14830: 52400042 */ beqzl $s2,.NB0001493c +/* 14834: 26310001 */ addiu $s1,$s1,0x1 +/* 14838: 50730011 */ beql $v1,$s3,.NB00014880 +/* 1483c: 02002025 */ or $a0,$s0,$zero +/* 14840: 8ed80000 */ lw $t8,0x0($s6) +/* 14844: 000310c0 */ sll $v0,$v1,0x3 +/* 14848: 26100010 */ addiu $s0,$s0,0x10 +/* 1484c: 0302c821 */ addu $t9,$t8,$v0 +/* 14850: 8f210000 */ lw $at,0x0($t9) +/* 14854: 00609825 */ or $s3,$v1,$zero +/* 14858: ae01fff0 */ sw $at,-0x10($s0) +/* 1485c: 8f2b0004 */ lw $t3,0x4($t9) +/* 14860: ae0bfff4 */ sw $t3,-0xc($s0) +/* 14864: 8eec0000 */ lw $t4,0x0($s7) +/* 14868: 01826821 */ addu $t5,$t4,$v0 +/* 1486c: 8da10000 */ lw $at,0x0($t5) +/* 14870: ae01fff8 */ sw $at,-0x8($s0) +/* 14874: 8daf0004 */ lw $t7,0x4($t5) +/* 14878: ae0ffffc */ sw $t7,-0x4($s0) +/* 1487c: 02002025 */ or $a0,$s0,$zero +.NB00014880: +/* 14880: 0fc588f2 */ jal 0xf1623c8 +/* 14884: afa80040 */ sw $t0,0x40($sp) +/* 14888: 28410400 */ slti $at,$v0,0x400 +/* 1488c: 8fa80040 */ lw $t0,0x40($sp) +/* 14890: 14200029 */ bnez $at,.NB00014938 +/* 14894: 24090050 */ addiu $t1,$zero,0x50 +/* 14898: 00111900 */ sll $v1,$s1,0x4 +/* 1489c: 24780010 */ addiu $t8,$v1,0x10 +/* 148a0: 330a0fff */ andi $t2,$t8,0xfff +/* 148a4: 001420c0 */ sll $a0,$s4,0x3 +/* 148a8: 00942023 */ subu $a0,$a0,$s4 +/* 148ac: 000acb00 */ sll $t9,$t2,0xc +/* 148b0: 00042080 */ sll $a0,$a0,0x2 +/* 148b4: 306f0fff */ andi $t7,$v1,0xfff +/* 148b8: 000fc300 */ sll $t8,$t7,0xc +/* 148bc: 308a0fff */ andi $t2,$a0,0xfff +/* 148c0: 033e5825 */ or $t3,$t9,$s8 +/* 148c4: 030ac825 */ or $t9,$t8,$t2 +/* 148c8: 248c001c */ addiu $t4,$a0,0x1c +/* 148cc: 02001025 */ or $v0,$s0,$zero +/* 148d0: 2646ffe0 */ addiu $a2,$s2,-32 +/* 148d4: 0006c143 */ sra $t8,$a2,0x5 +/* 148d8: 318e0fff */ andi $t6,$t4,0xfff +/* 148dc: 016e6825 */ or $t5,$t3,$t6 +/* 148e0: 001850c0 */ sll $t2,$t8,0x3 +/* 148e4: 26100008 */ addiu $s0,$s0,0x8 +/* 148e8: 02002825 */ or $a1,$s0,$zero +/* 148ec: 01585023 */ subu $t2,$t2,$t8 +/* 148f0: ac4d0000 */ sw $t5,0x0($v0) +/* 148f4: ac590004 */ sw $t9,0x4($v0) +/* 148f8: 30cd001f */ andi $t5,$a2,0x1f +/* 148fc: 000a5140 */ sll $t2,$t2,0x5 +/* 14900: 3c0cb400 */ lui $t4,0xb400 +/* 14904: acac0000 */ sw $t4,0x0($a1) +/* 14908: 3159ffff */ andi $t9,$t2,0xffff +/* 1490c: 000d7dc0 */ sll $t7,$t5,0x17 +/* 14910: 26100008 */ addiu $s0,$s0,0x8 +/* 14914: 02003825 */ or $a3,$s0,$zero +/* 14918: 01f96025 */ or $t4,$t7,$t9 +/* 1491c: acac0004 */ sw $t4,0x4($a1) +/* 14920: 3c0e0400 */ lui $t6,0x400 +/* 14924: 35ce0400 */ ori $t6,$t6,0x400 +/* 14928: 3c0bb300 */ lui $t3,0xb300 +/* 1492c: aceb0000 */ sw $t3,0x0($a3) +/* 14930: acee0004 */ sw $t6,0x4($a3) +/* 14934: 26100008 */ addiu $s0,$s0,0x8 +.NB00014938: +/* 14938: 26310001 */ addiu $s1,$s1,0x1 +.NB0001493c: +/* 1493c: 5629ffb3 */ bnel $s1,$t1,.NB0001480c +/* 14940: 001170c0 */ sll $t6,$s1,0x3 +/* 14944: 26940001 */ addiu $s4,$s4,0x1 +/* 14948: 24010023 */ addiu $at,$zero,0x23 +/* 1494c: 1681ffad */ bne $s4,$at,.NB00014804 +/* 14950: 25080002 */ addiu $t0,$t0,0x2 +.NB00014954: +/* 14954: 02001025 */ or $v0,$s0,$zero +.NB00014958: +/* 14958: 8fbf003c */ lw $ra,0x3c($sp) +/* 1495c: 8fb00018 */ lw $s0,0x18($sp) +/* 14960: 8fb1001c */ lw $s1,0x1c($sp) +/* 14964: 8fb20020 */ lw $s2,0x20($sp) +/* 14968: 8fb30024 */ lw $s3,0x24($sp) +/* 1496c: 8fb40028 */ lw $s4,0x28($sp) +/* 14970: 8fb5002c */ lw $s5,0x2c($sp) +/* 14974: 8fb60030 */ lw $s6,0x30($sp) +/* 14978: 8fb70034 */ lw $s7,0x34($sp) +/* 1497c: 8fbe0038 */ lw $s8,0x38($sp) +/* 14980: 03e00008 */ jr $ra +/* 14984: 27bd0088 */ addiu $sp,$sp,0x88 +); +#endif diff --git a/src/lib/lib_16110.c b/src/lib/lib_16110.c index b8db456dc..f57d90eaf 100644 --- a/src/lib/lib_16110.c +++ b/src/lib/lib_16110.c @@ -9,8 +9,6 @@ #include "data.h" #include "types.h" -u32 var8005ef20 = 0xfe000000; - const u32 var70054200[] = {0x42652ee0}; GLOBAL_ASM( @@ -109,6 +107,52 @@ void func00016248(struct coord *coord, f32 angle, f32 *matrix) matrix[15] = 1; } +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func000171d8nb +/* 171d8: 27bdffe0 */ addiu $sp,$sp,-32 +/* 171dc: afbf0014 */ sw $ra,0x14($sp) +/* 171e0: afa50024 */ sw $a1,0x24($sp) +/* 171e4: afa40020 */ sw $a0,0x20($sp) +/* 171e8: c7ac0024 */ lwc1 $f12,0x24($sp) +/* 171ec: 0c006d52 */ jal 0x1b548 +/* 171f0: afa60028 */ sw $a2,0x28($sp) +/* 171f4: c7ac0024 */ lwc1 $f12,0x24($sp) +/* 171f8: 0c006d55 */ jal 0x1b554 +/* 171fc: e7a0001c */ swc1 $f0,0x1c($sp) +/* 17200: 8fa60028 */ lw $a2,0x28($sp) +/* 17204: 8fa20020 */ lw $v0,0x20($sp) +/* 17208: c7ae001c */ lwc1 $f14,0x1c($sp) +/* 1720c: 44801000 */ mtc1 $zero,$f2 +/* 17210: 3c013f80 */ lui $at,0x3f80 +/* 17214: 44816000 */ mtc1 $at,$f12 +/* 17218: 46000107 */ neg.s $f4,$f0 +/* 1721c: e4c00018 */ swc1 $f0,0x18($a2) +/* 17220: e4c40024 */ swc1 $f4,0x24($a2) +/* 17224: e4ce0014 */ swc1 $f14,0x14($a2) +/* 17228: e4ce0028 */ swc1 $f14,0x28($a2) +/* 1722c: e4c20004 */ swc1 $f2,0x4($a2) +/* 17230: e4c20008 */ swc1 $f2,0x8($a2) +/* 17234: e4c2000c */ swc1 $f2,0xc($a2) +/* 17238: e4c20010 */ swc1 $f2,0x10($a2) +/* 1723c: e4c2001c */ swc1 $f2,0x1c($a2) +/* 17240: e4c20020 */ swc1 $f2,0x20($a2) +/* 17244: e4c2002c */ swc1 $f2,0x2c($a2) +/* 17248: e4cc0000 */ swc1 $f12,0x0($a2) +/* 1724c: c4460000 */ lwc1 $f6,0x0($v0) +/* 17250: e4c60030 */ swc1 $f6,0x30($a2) +/* 17254: c4480004 */ lwc1 $f8,0x4($v0) +/* 17258: e4c80034 */ swc1 $f8,0x34($a2) +/* 1725c: c44a0008 */ lwc1 $f10,0x8($v0) +/* 17260: e4cc003c */ swc1 $f12,0x3c($a2) +/* 17264: e4ca0038 */ swc1 $f10,0x38($a2) +/* 17268: 8fbf0014 */ lw $ra,0x14($sp) +/* 1726c: 27bd0020 */ addiu $sp,$sp,0x20 +/* 17270: 03e00008 */ jr $ra +/* 17274: 00000000 */ sll $zero,$zero,0x0 +); +#endif + void func000162e8(f32 angle, Mtxf *matrix) { f32 cos = cosf(angle); @@ -974,6 +1018,69 @@ glabel func00017028 /* 1706c: 00000000 */ nop ); +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func00018000nb +/* 18000: 27bdffb8 */ addiu $sp,$sp,-72 +/* 18004: afbe0040 */ sw $s8,0x40($sp) +/* 18008: afb40030 */ sw $s4,0x30($sp) +/* 1800c: afb3002c */ sw $s3,0x2c($sp) +/* 18010: afb20028 */ sw $s2,0x28($sp) +/* 18014: afb7003c */ sw $s7,0x3c($sp) +/* 18018: afb60038 */ sw $s6,0x38($sp) +/* 1801c: afb50034 */ sw $s5,0x34($sp) +/* 18020: 3c127005 */ lui $s2,0x7005 +/* 18024: 3c137005 */ lui $s3,0x7005 +/* 18028: 3c147005 */ lui $s4,0x7005 +/* 1802c: 3c1e7005 */ lui $s8,0x7005 +/* 18030: afbf0044 */ sw $ra,0x44($sp) +/* 18034: afb10024 */ sw $s1,0x24($sp) +/* 18038: afb00020 */ sw $s0,0x20($sp) +/* 1803c: 27de5980 */ addiu $s8,$s8,0x5980 +/* 18040: 26945994 */ addiu $s4,$s4,0x5994 +/* 18044: 26735990 */ addiu $s3,$s3,0x5990 +/* 18048: 26525984 */ addiu $s2,$s2,0x5984 +/* 1804c: 24150010 */ addiu $s5,$zero,0x10 +/* 18050: 0000b025 */ or $s6,$zero,$zero +/* 18054: 0080b825 */ or $s7,$a0,$zero +.NB00018058: +/* 18058: 0c00c47d */ jal 0x311f4 +/* 1805c: 03c02025 */ or $a0,$s8,$zero +/* 18060: 00008025 */ or $s0,$zero,$zero +/* 18064: 02e08825 */ or $s1,$s7,$zero +.NB00018068: +/* 18068: c6240000 */ lwc1 $f4,0x0($s1) +/* 1806c: 02402025 */ or $a0,$s2,$zero +/* 18070: 02602825 */ or $a1,$s3,$zero +/* 18074: 460021a1 */ cvt.d.s $f6,$f4 +/* 18078: 02803025 */ or $a2,$s4,$zero +/* 1807c: 0c00c47d */ jal 0x311f4 +/* 18080: f7a60010 */ sdc1 $f6,0x10($sp) +/* 18084: 26100004 */ addiu $s0,$s0,0x4 +/* 18088: 1615fff7 */ bne $s0,$s5,.NB00018068 +/* 1808c: 26310004 */ addiu $s1,$s1,0x4 +/* 18090: 3c047005 */ lui $a0,0x7005 +/* 18094: 0c00c47d */ jal 0x311f4 +/* 18098: 24845998 */ addiu $a0,$a0,0x5998 +/* 1809c: 26d60001 */ addiu $s6,$s6,0x1 +/* 180a0: 24010004 */ addiu $at,$zero,0x4 +/* 180a4: 16c1ffec */ bne $s6,$at,.NB00018058 +/* 180a8: 26f70010 */ addiu $s7,$s7,0x10 +/* 180ac: 8fbf0044 */ lw $ra,0x44($sp) +/* 180b0: 8fb00020 */ lw $s0,0x20($sp) +/* 180b4: 8fb10024 */ lw $s1,0x24($sp) +/* 180b8: 8fb20028 */ lw $s2,0x28($sp) +/* 180bc: 8fb3002c */ lw $s3,0x2c($sp) +/* 180c0: 8fb40030 */ lw $s4,0x30($sp) +/* 180c4: 8fb50034 */ lw $s5,0x34($sp) +/* 180c8: 8fb60038 */ lw $s6,0x38($sp) +/* 180cc: 8fb7003c */ lw $s7,0x3c($sp) +/* 180d0: 8fbe0040 */ lw $s8,0x40($sp) +/* 180d4: 03e00008 */ jr $ra +/* 180d8: 27bd0048 */ addiu $sp,$sp,0x48 +); +#endif + GLOBAL_ASM( glabel func00017070 /* 17070: c4840000 */ lwc1 $f4,0x0($a0) @@ -1808,569 +1915,3 @@ glabel func00017cbc /* 17cd8: 03e00008 */ jr $ra /* 17cdc: 460a3001 */ sub.s $f0,$f6,$f10 ); - -GLOBAL_ASM( -glabel func00017ce0 -/* 17ce0: 3c03800a */ lui $v1,%hi(g_BgPortals) -/* 17ce4: 8c634cc8 */ lw $v1,%lo(g_BgPortals)($v1) -/* 17ce8: 000470c0 */ sll $t6,$a0,0x3 -/* 17cec: 3c013f80 */ lui $at,0x3f80 -/* 17cf0: 006e7821 */ addu $t7,$v1,$t6 -/* 17cf4: 95f80000 */ lhu $t8,0x0($t7) -/* 17cf8: 44815000 */ mtc1 $at,$f10 -/* 17cfc: 3c014f80 */ lui $at,0x4f80 -/* 17d00: 03031021 */ addu $v0,$t8,$v1 -/* 17d04: c4440004 */ lwc1 $f4,0x4($v0) -/* 17d08: 2443000c */ addiu $v1,$v0,0xc -/* 17d0c: 24070001 */ addiu $a3,$zero,0x1 -/* 17d10: e4a40000 */ swc1 $f4,0x0($a1) -/* 17d14: c4460008 */ lwc1 $f6,0x8($v0) -/* 17d18: e4a60004 */ swc1 $f6,0x4($a1) -/* 17d1c: c448000c */ lwc1 $f8,0xc($v0) -/* 17d20: e4a80008 */ swc1 $f8,0x8($a1) -/* 17d24: 90460000 */ lbu $a2,0x0($v0) -/* 17d28: 44868000 */ mtc1 $a2,$f16 -/* 17d2c: 04c10004 */ bgez $a2,.L00017d40 -/* 17d30: 468084a0 */ cvt.s.w $f18,$f16 -/* 17d34: 44812000 */ mtc1 $at,$f4 -/* 17d38: 00000000 */ nop -/* 17d3c: 46049480 */ add.s $f18,$f18,$f4 -.L00017d40: -/* 17d40: 28c10002 */ slti $at,$a2,0x2 -/* 17d44: 14200013 */ bnez $at,.L00017d94 -/* 17d48: 46125003 */ div.s $f0,$f10,$f18 -/* 17d4c: c4a60000 */ lwc1 $f6,0x0($a1) -.L00017d50: -/* 17d50: c4680004 */ lwc1 $f8,0x4($v1) -/* 17d54: c4a40004 */ lwc1 $f4,0x4($a1) -/* 17d58: 24e70001 */ addiu $a3,$a3,0x1 -/* 17d5c: 46083400 */ add.s $f16,$f6,$f8 -/* 17d60: c4a60008 */ lwc1 $f6,0x8($a1) -/* 17d64: 2463000c */ addiu $v1,$v1,12 -/* 17d68: e4b00000 */ swc1 $f16,0x0($a1) -/* 17d6c: c46afffc */ lwc1 $f10,-0x4($v1) -/* 17d70: 460a2480 */ add.s $f18,$f4,$f10 -/* 17d74: e4b20004 */ swc1 $f18,0x4($a1) -/* 17d78: c4680000 */ lwc1 $f8,0x0($v1) -/* 17d7c: 46083400 */ add.s $f16,$f6,$f8 -/* 17d80: e4b00008 */ swc1 $f16,0x8($a1) -/* 17d84: 90590000 */ lbu $t9,0x0($v0) -/* 17d88: 00f9082a */ slt $at,$a3,$t9 -/* 17d8c: 5420fff0 */ bnezl $at,.L00017d50 -/* 17d90: c4a60000 */ lwc1 $f6,0x0($a1) -.L00017d94: -/* 17d94: c4a40000 */ lwc1 $f4,0x0($a1) -/* 17d98: c4b20004 */ lwc1 $f18,0x4($a1) -/* 17d9c: c4a80008 */ lwc1 $f8,0x8($a1) -/* 17da0: 46002282 */ mul.s $f10,$f4,$f0 -/* 17da4: 00000000 */ nop -/* 17da8: 46009182 */ mul.s $f6,$f18,$f0 -/* 17dac: 00000000 */ nop -/* 17db0: 46004402 */ mul.s $f16,$f8,$f0 -/* 17db4: e4aa0000 */ swc1 $f10,0x0($a1) -/* 17db8: e4a60004 */ swc1 $f6,0x4($a1) -/* 17dbc: 03e00008 */ jr $ra -/* 17dc0: e4b00008 */ swc1 $f16,0x8($a1) -); - -GLOBAL_ASM( -glabel func00017dc4 -/* 17dc4: afa50004 */ sw $a1,0x4($sp) -/* 17dc8: 848f0000 */ lh $t7,0x0($a0) -/* 17dcc: 00053400 */ sll $a2,$a1,0x10 -/* 17dd0: 00067403 */ sra $t6,$a2,0x10 -/* 17dd4: 2407ffff */ addiu $a3,$zero,-1 -/* 17dd8: 01c03025 */ or $a2,$t6,$zero -/* 17ddc: 10ef000c */ beq $a3,$t7,.L00017e10 -/* 17de0: 00001025 */ or $v0,$zero,$zero -/* 17de4: 0000c040 */ sll $t8,$zero,0x1 -/* 17de8: 00981821 */ addu $v1,$a0,$t8 -/* 17dec: 84650000 */ lh $a1,0x0($v1) -.L00017df0: -/* 17df0: 10c5000d */ beq $a2,$a1,.L00017e28 -/* 17df4: 24420001 */ addiu $v0,$v0,0x1 -/* 17df8: 28410010 */ slti $at,$v0,0x10 -/* 17dfc: 10200004 */ beqz $at,.L00017e10 -/* 17e00: 24630002 */ addiu $v1,$v1,0x2 -/* 17e04: 84650000 */ lh $a1,0x0($v1) -/* 17e08: 14e5fff9 */ bne $a3,$a1,.L00017df0 -/* 17e0c: 00000000 */ nop -.L00017e10: -/* 17e10: 2841000f */ slti $at,$v0,0xf -/* 17e14: 10200004 */ beqz $at,.L00017e28 -/* 17e18: 0002c840 */ sll $t9,$v0,0x1 -/* 17e1c: 00991821 */ addu $v1,$a0,$t9 -/* 17e20: a4660000 */ sh $a2,0x0($v1) -/* 17e24: a4670002 */ sh $a3,0x2($v1) -.L00017e28: -/* 17e28: 03e00008 */ jr $ra -/* 17e2c: 00000000 */ nop -); - -GLOBAL_ASM( -glabel func00017e30 -/* 17e30: 3c0e800a */ lui $t6,%hi(var800a4ccc) -/* 17e34: 8dce4ccc */ lw $t6,%lo(var800a4ccc)($t6) -/* 17e38: 00046880 */ sll $t5,$a0,0x2 -/* 17e3c: 01a46821 */ addu $t5,$t5,$a0 -/* 17e40: 000d6880 */ sll $t5,$t5,0x2 -/* 17e44: 01ae4021 */ addu $t0,$t5,$t6 -/* 17e48: c50e0000 */ lwc1 $f14,0x0($t0) -/* 17e4c: c4ac0000 */ lwc1 $f12,0x0($a1) -/* 17e50: c5100004 */ lwc1 $f16,0x4($t0) -/* 17e54: c4a40004 */ lwc1 $f4,0x4($a1) -/* 17e58: 460e6282 */ mul.s $f10,$f12,$f14 -/* 17e5c: c5020008 */ lwc1 $f2,0x8($t0) -/* 17e60: 3c07800a */ lui $a3,%hi(g_BgPortals) -/* 17e64: 46102182 */ mul.s $f6,$f4,$f16 -/* 17e68: c4a40008 */ lwc1 $f4,0x8($a1) -/* 17e6c: 8ce74cc8 */ lw $a3,%lo(g_BgPortals)($a3) -/* 17e70: 000478c0 */ sll $t7,$a0,0x3 -/* 17e74: 27bdff90 */ addiu $sp,$sp,-112 -/* 17e78: 00efc021 */ addu $t8,$a3,$t7 -/* 17e7c: 97190000 */ lhu $t9,0x0($t8) -/* 17e80: 46065200 */ add.s $f8,$f10,$f6 -/* 17e84: 46041282 */ mul.s $f10,$f2,$f4 -/* 17e88: c4c60000 */ lwc1 $f6,0x0($a2) -/* 17e8c: 00001025 */ or $v0,$zero,$zero -/* 17e90: 03271821 */ addu $v1,$t9,$a3 -/* 17e94: e7a60014 */ swc1 $f6,0x14($sp) -/* 17e98: c7a40014 */ lwc1 $f4,0x14($sp) -/* 17e9c: 46085000 */ add.s $f0,$f10,$f8 -/* 17ea0: 460e2282 */ mul.s $f10,$f4,$f14 -/* 17ea4: c4c80004 */ lwc1 $f8,0x4($a2) -/* 17ea8: 46104182 */ mul.s $f6,$f8,$f16 -/* 17eac: c4c80008 */ lwc1 $f8,0x8($a2) -/* 17eb0: 46065100 */ add.s $f4,$f10,$f6 -/* 17eb4: c506000c */ lwc1 $f6,0xc($t0) -/* 17eb8: 46081282 */ mul.s $f10,$f2,$f8 -/* 17ebc: e7a60010 */ swc1 $f6,0x10($sp) -/* 17ec0: c7a80010 */ lwc1 $f8,0x10($sp) -/* 17ec4: 4608003c */ c.lt.s $f0,$f8 -/* 17ec8: 46045480 */ add.s $f18,$f10,$f4 -/* 17ecc: 45020008 */ bc1fl .L00017ef0 -/* 17ed0: c5020010 */ lwc1 $f2,0x10($t0) -/* 17ed4: 4608903c */ c.lt.s $f18,$f8 -/* 17ed8: 00000000 */ nop -/* 17edc: 4502000f */ bc1fl .L00017f1c -/* 17ee0: c7aa0014 */ lwc1 $f10,0x14($sp) -/* 17ee4: 10000096 */ b .L00018140 -/* 17ee8: 00001025 */ or $v0,$zero,$zero -/* 17eec: c5020010 */ lwc1 $f2,0x10($t0) -.L00017ef0: -/* 17ef0: 4600103c */ c.lt.s $f2,$f0 -/* 17ef4: 00000000 */ nop -/* 17ef8: 45020008 */ bc1fl .L00017f1c -/* 17efc: c7aa0014 */ lwc1 $f10,0x14($sp) -/* 17f00: 4612103c */ c.lt.s $f2,$f18 -/* 17f04: 00000000 */ nop -/* 17f08: 45020004 */ bc1fl .L00017f1c -/* 17f0c: c7aa0014 */ lwc1 $f10,0x14($sp) -/* 17f10: 1000008b */ b .L00018140 -/* 17f14: 00001025 */ or $v0,$zero,$zero -/* 17f18: c7aa0014 */ lwc1 $f10,0x14($sp) -.L00017f1c: -/* 17f1c: 3c013f00 */ lui $at,0x3f00 -/* 17f20: 24670004 */ addiu $a3,$v1,0x4 -/* 17f24: 460c5101 */ sub.s $f4,$f10,$f12 -/* 17f28: 00e02025 */ or $a0,$a3,$zero -/* 17f2c: 24690010 */ addiu $t1,$v1,0x10 -/* 17f30: 00005025 */ or $t2,$zero,$zero -/* 17f34: e7a40060 */ swc1 $f4,0x60($sp) -/* 17f38: c4a80004 */ lwc1 $f8,0x4($a1) -/* 17f3c: c4c60004 */ lwc1 $f6,0x4($a2) -/* 17f40: 240c0001 */ addiu $t4,$zero,0x1 -/* 17f44: 46083281 */ sub.s $f10,$f6,$f8 -/* 17f48: e7aa0064 */ swc1 $f10,0x64($sp) -/* 17f4c: c4a60008 */ lwc1 $f6,0x8($a1) -/* 17f50: c4c40008 */ lwc1 $f4,0x8($a2) -/* 17f54: 46120280 */ add.s $f10,$f0,$f18 -/* 17f58: 46062201 */ sub.s $f8,$f4,$f6 -/* 17f5c: 44812000 */ mtc1 $at,$f4 -/* 17f60: 3c018008 */ lui $at,%hi(var8007fcb4) -/* 17f64: 46045182 */ mul.s $f6,$f10,$f4 -/* 17f68: e7a80068 */ swc1 $f8,0x68($sp) -/* 17f6c: c508000c */ lwc1 $f8,0xc($t0) -/* 17f70: 46083281 */ sub.s $f10,$f6,$f8 -/* 17f74: e42afcb4 */ swc1 $f10,%lo(var8007fcb4)($at) -/* 17f78: 906b0000 */ lbu $t3,0x0($v1) -/* 17f7c: 59600068 */ blezl $t3,.L00018120 -/* 17f80: c506000c */ lwc1 $f6,0xc($t0) -/* 17f84: 44806000 */ mtc1 $zero,$f12 -/* 17f88: 24060002 */ addiu $a2,$zero,0x2 -.L00017f8c: -/* 17f8c: 254f0001 */ addiu $t7,$t2,0x1 -/* 17f90: 55eb0003 */ bnel $t7,$t3,.L00017fa0 -/* 17f94: c5240000 */ lwc1 $f4,0x0($t1) -/* 17f98: 00e04825 */ or $t1,$a3,$zero -/* 17f9c: c5240000 */ lwc1 $f4,0x0($t1) -.L00017fa0: -/* 17fa0: c4860000 */ lwc1 $f6,0x0($a0) -/* 17fa4: 46062201 */ sub.s $f8,$f4,$f6 -/* 17fa8: e7a80048 */ swc1 $f8,0x48($sp) -/* 17fac: c4840004 */ lwc1 $f4,0x4($a0) -/* 17fb0: c52a0004 */ lwc1 $f10,0x4($t1) -/* 17fb4: 46045181 */ sub.s $f6,$f10,$f4 -/* 17fb8: e7a6004c */ swc1 $f6,0x4c($sp) -/* 17fbc: c48a0008 */ lwc1 $f10,0x8($a0) -/* 17fc0: c5280008 */ lwc1 $f8,0x8($t1) -/* 17fc4: c7a6004c */ lwc1 $f6,0x4c($sp) -/* 17fc8: 460a4101 */ sub.s $f4,$f8,$f10 -/* 17fcc: c7a80068 */ lwc1 $f8,0x68($sp) -/* 17fd0: e7a60000 */ swc1 $f6,0x0($sp) -/* 17fd4: e7a40050 */ swc1 $f4,0x50($sp) -/* 17fd8: 46083282 */ mul.s $f10,$f6,$f8 -/* 17fdc: c7a60050 */ lwc1 $f6,0x50($sp) -/* 17fe0: c7a40064 */ lwc1 $f4,0x64($sp) -/* 17fe4: e7a80004 */ swc1 $f8,0x4($sp) -/* 17fe8: 46062202 */ mul.s $f8,$f4,$f6 -/* 17fec: e7a40008 */ swc1 $f4,0x8($sp) -/* 17ff0: c7a40004 */ lwc1 $f4,0x4($sp) -/* 17ff4: 46085281 */ sub.s $f10,$f10,$f8 -/* 17ff8: c7a80060 */ lwc1 $f8,0x60($sp) -/* 17ffc: e7aa0034 */ swc1 $f10,0x34($sp) -/* 18000: e7aa0004 */ swc1 $f10,0x4($sp) -/* 18004: 46083182 */ mul.s $f6,$f6,$f8 -/* 18008: c7aa0048 */ lwc1 $f10,0x48($sp) -/* 1800c: 460a2102 */ mul.s $f4,$f4,$f10 -/* 18010: 46043181 */ sub.s $f6,$f6,$f4 -/* 18014: c7a40008 */ lwc1 $f4,0x8($sp) -/* 18018: 46045282 */ mul.s $f10,$f10,$f4 -/* 1801c: c7a40000 */ lwc1 $f4,0x0($sp) -/* 18020: e7a60038 */ swc1 $f6,0x38($sp) -/* 18024: 46044202 */ mul.s $f8,$f8,$f4 -/* 18028: 46085101 */ sub.s $f4,$f10,$f8 -/* 1802c: c7aa0004 */ lwc1 $f10,0x4($sp) -/* 18030: 460a5202 */ mul.s $f8,$f10,$f10 -/* 18034: e7a4003c */ swc1 $f4,0x3c($sp) -/* 18038: 46063282 */ mul.s $f10,$f6,$f6 -/* 1803c: 460a4180 */ add.s $f6,$f8,$f10 -/* 18040: 46042202 */ mul.s $f8,$f4,$f4 -/* 18044: c7aa0034 */ lwc1 $f10,0x34($sp) -/* 18048: 46064080 */ add.s $f2,$f8,$f6 -/* 1804c: 460c1032 */ c.eq.s $f2,$f12 -/* 18050: 00000000 */ nop -/* 18054: 45020004 */ bc1fl .L00018068 -/* 18058: c4840000 */ lwc1 $f4,0x0($a0) -/* 1805c: 10000038 */ b .L00018140 -/* 18060: 00001025 */ or $v0,$zero,$zero -/* 18064: c4840000 */ lwc1 $f4,0x0($a0) -.L00018068: -/* 18068: c7a60038 */ lwc1 $f6,0x38($sp) -/* 1806c: 46045202 */ mul.s $f8,$f10,$f4 -/* 18070: c4840004 */ lwc1 $f4,0x4($a0) -/* 18074: 46043102 */ mul.s $f4,$f6,$f4 -/* 18078: 46044200 */ add.s $f8,$f8,$f4 -/* 1807c: c4840008 */ lwc1 $f4,0x8($a0) -/* 18080: e7aa0008 */ swc1 $f10,0x8($sp) -/* 18084: c7aa003c */ lwc1 $f10,0x3c($sp) -/* 18088: 460a2102 */ mul.s $f4,$f4,$f10 -/* 1808c: 46082100 */ add.s $f4,$f4,$f8 -/* 18090: c7a80008 */ lwc1 $f8,0x8($sp) -/* 18094: e7a60008 */ swc1 $f6,0x8($sp) -/* 18098: e7a40040 */ swc1 $f4,0x40($sp) -/* 1809c: c4a60000 */ lwc1 $f6,0x0($a1) -/* 180a0: 46064202 */ mul.s $f8,$f8,$f6 -/* 180a4: c7a60008 */ lwc1 $f6,0x8($sp) -/* 180a8: e7aa0008 */ swc1 $f10,0x8($sp) -/* 180ac: c4aa0004 */ lwc1 $f10,0x4($a1) -/* 180b0: 460a3182 */ mul.s $f6,$f6,$f10 -/* 180b4: 46064280 */ add.s $f10,$f8,$f6 -/* 180b8: c7a60008 */ lwc1 $f6,0x8($sp) -/* 180bc: c4a80008 */ lwc1 $f8,0x8($a1) -/* 180c0: 46064202 */ mul.s $f8,$f8,$f6 -/* 180c4: 460a4080 */ add.s $f2,$f8,$f10 -/* 180c8: 4604103c */ c.lt.s $f2,$f4 -/* 180cc: 00000000 */ nop -/* 180d0: 45000007 */ bc1f .L000180f0 -/* 180d4: 00000000 */ nop -/* 180d8: 14c20003 */ bne $a2,$v0,.L000180e8 -/* 180dc: 00000000 */ nop -/* 180e0: 10000017 */ b .L00018140 -/* 180e4: 00001025 */ or $v0,$zero,$zero -.L000180e8: -/* 180e8: 10000006 */ b .L00018104 -/* 180ec: 24020001 */ addiu $v0,$zero,0x1 -.L000180f0: -/* 180f0: 55820004 */ bnel $t4,$v0,.L00018104 -/* 180f4: 24020002 */ addiu $v0,$zero,0x2 -/* 180f8: 10000011 */ b .L00018140 -/* 180fc: 00001025 */ or $v0,$zero,$zero -/* 18100: 24020002 */ addiu $v0,$zero,0x2 -.L00018104: -/* 18104: 906b0000 */ lbu $t3,0x0($v1) -/* 18108: 254a0001 */ addiu $t2,$t2,0x1 -/* 1810c: 2484000c */ addiu $a0,$a0,0xc -/* 18110: 014b082a */ slt $at,$t2,$t3 -/* 18114: 1420ff9d */ bnez $at,.L00017f8c -/* 18118: 2529000c */ addiu $t1,$t1,0xc -/* 1811c: c506000c */ lwc1 $f6,0xc($t0) -.L00018120: -/* 18120: 24030002 */ addiu $v1,$zero,0x2 -/* 18124: 4606003c */ c.lt.s $f0,$f6 -/* 18128: 00000000 */ nop -/* 1812c: 45000003 */ bc1f .L0001813c -/* 18130: 00000000 */ nop -/* 18134: 10000001 */ b .L0001813c -/* 18138: 24030001 */ addiu $v1,$zero,0x1 -.L0001813c: -/* 1813c: 00601025 */ or $v0,$v1,$zero -.L00018140: -/* 18140: 03e00008 */ jr $ra -/* 18144: 27bd0070 */ addiu $sp,$sp,0x70 -); - -GLOBAL_ASM( -glabel func00018148 -/* 18148: 27bdff30 */ addiu $sp,$sp,-208 -/* 1814c: afa400d0 */ sw $a0,0xd0($sp) -/* 18150: afa500d4 */ sw $a1,0xd4($sp) -/* 18154: afbf003c */ sw $ra,0x3c($sp) -/* 18158: afbe0038 */ sw $s8,0x38($sp) -/* 1815c: afb70034 */ sw $s7,0x34($sp) -/* 18160: afb60030 */ sw $s6,0x30($sp) -/* 18164: afb5002c */ sw $s5,0x2c($sp) -/* 18168: afb40028 */ sw $s4,0x28($sp) -/* 1816c: afb30024 */ sw $s3,0x24($sp) -/* 18170: afb20020 */ sw $s2,0x20($sp) -/* 18174: afb1001c */ sw $s1,0x1c($sp) -/* 18178: afb00018 */ sw $s0,0x18($sp) -/* 1817c: afa700dc */ sw $a3,0xdc($sp) -/* 18180: 27a5006c */ addiu $a1,$sp,0x6c -/* 18184: 2404ffff */ addiu $a0,$zero,-1 -/* 18188: 27a8009c */ addiu $t0,$sp,0x9c -/* 1818c: 27a2005c */ addiu $v0,$sp,0x5c -/* 18190: 00c01825 */ or $v1,$a2,$zero -.L00018194: -/* 18194: 846e0000 */ lh $t6,0x0($v1) -/* 18198: 24420002 */ addiu $v0,$v0,0x2 -/* 1819c: 0045082b */ sltu $at,$v0,$a1 -/* 181a0: a50e0000 */ sh $t6,0x0($t0) -/* 181a4: 846f0000 */ lh $t7,0x0($v1) -/* 181a8: 25080002 */ addiu $t0,$t0,0x2 -/* 181ac: a44ffffe */ sh $t7,-0x2($v0) -/* 181b0: 84780000 */ lh $t8,0x0($v1) -/* 181b4: 14980003 */ bne $a0,$t8,.L000181c4 -/* 181b8: 00000000 */ nop -/* 181bc: 10000004 */ b .L000181d0 -/* 181c0: 0000b825 */ or $s7,$zero,$zero -.L000181c4: -/* 181c4: 1420fff3 */ bnez $at,.L00018194 -/* 181c8: 24630002 */ addiu $v1,$v1,0x2 -/* 181cc: 0000b825 */ or $s7,$zero,$zero -.L000181d0: -/* 181d0: 3c198006 */ lui $t9,%hi(var8005ef20) -/* 181d4: 9339ef20 */ lbu $t9,%lo(var8005ef20)($t9) -/* 181d8: 3c018006 */ lui $at,%hi(var8005ef20) -/* 181dc: 27be007c */ addiu $s8,$sp,0x7c -/* 181e0: 27290001 */ addiu $t1,$t9,0x1 -/* 181e4: a029ef20 */ sb $t1,%lo(var8005ef20)($at) -/* 181e8: 240100ff */ addiu $at,$zero,0xff -/* 181ec: 312a00ff */ andi $t2,$t1,0xff -/* 181f0: 15410010 */ bne $t2,$at,.L00018234 -/* 181f4: 3c14800a */ lui $s4,%hi(g_BgPortals) -/* 181f8: 3c038008 */ lui $v1,%hi(g_NumPortalThings) -/* 181fc: 8c63fc40 */ lw $v1,%lo(g_NumPortalThings)($v1) -/* 18200: 3c0b800a */ lui $t3,%hi(g_Vars+0x520) -/* 18204: 2562a4e0 */ addiu $v0,$t3,%lo(g_Vars+0x520) -/* 18208: 18600008 */ blez $v1,.L0001822c -/* 1820c: 00036040 */ sll $t4,$v1,0x1 -/* 18210: 01822821 */ addu $a1,$t4,$v0 -/* 18214: 240300ff */ addiu $v1,$zero,0xff -.L00018218: -/* 18218: 24420002 */ addiu $v0,$v0,0x2 -/* 1821c: 0045082b */ sltu $at,$v0,$a1 -/* 18220: 1420fffd */ bnez $at,.L00018218 -/* 18224: a043fffe */ sb $v1,-0x2($v0) -/* 18228: 0000b825 */ or $s7,$zero,$zero -.L0001822c: -/* 1822c: 3c018006 */ lui $at,%hi(var8005ef20) -/* 18230: a020ef20 */ sb $zero,%lo(var8005ef20)($at) -.L00018234: -/* 18234: 26944cc8 */ addiu $s4,$s4,%lo(g_BgPortals) -/* 18238: 87b5009c */ lh $s5,0x9c($sp) -.L0001823c: -/* 1823c: a7a4007c */ sh $a0,0x7c($sp) -/* 18240: 00006840 */ sll $t5,$zero,0x1 -/* 18244: 12a40058 */ beq $s5,$a0,.L000183a8 -/* 18248: 27ae009c */ addiu $t6,$sp,0x9c -/* 1824c: 01ae7821 */ addu $t7,$t5,$t6 -/* 18250: afaf0044 */ sw $t7,0x44($sp) -/* 18254: 0015c8c0 */ sll $t9,$s5,0x3 -.L00018258: -/* 18258: 0335c821 */ addu $t9,$t9,$s5 -/* 1825c: 3c18800a */ lui $t8,%hi(g_Rooms) -/* 18260: 8f184928 */ lw $t8,%lo(g_Rooms)($t8) -/* 18264: 0019c880 */ sll $t9,$t9,0x2 -/* 18268: 0335c823 */ subu $t9,$t9,$s5 -/* 1826c: 0019c880 */ sll $t9,$t9,0x2 -/* 18270: 03191021 */ addu $v0,$t8,$t9 -/* 18274: 8449000e */ lh $t1,0xe($v0) -/* 18278: 80560005 */ lb $s6,0x5($v0) -/* 1827c: 3c0c800a */ lui $t4,%hi(g_RoomPortals) -/* 18280: 8d8c4ce0 */ lw $t4,%lo(g_RoomPortals)($t4) -/* 18284: 00095040 */ sll $t2,$t1,0x1 -/* 18288: 1ac0003e */ blez $s6,.L00018384 -/* 1828c: 014c9821 */ addu $s3,$t2,$t4 -.L00018290: -/* 18290: 86720000 */ lh $s2,0x0($s3) -/* 18294: 3c0d800a */ lui $t5,%hi(g_Vars+0x520) -/* 18298: 25ada4e0 */ addiu $t5,$t5,%lo(g_Vars+0x520) -/* 1829c: 00125840 */ sll $t3,$s2,0x1 -/* 182a0: 016d8821 */ addu $s1,$t3,$t5 -/* 182a4: 3c028006 */ lui $v0,%hi(var8005ef20) -/* 182a8: 9042ef20 */ lbu $v0,%lo(var8005ef20)($v0) -/* 182ac: 922e0000 */ lbu $t6,0x0($s1) -/* 182b0: 02402025 */ or $a0,$s2,$zero -/* 182b4: 504e0007 */ beql $v0,$t6,.L000182d4 -/* 182b8: 92230001 */ lbu $v1,0x1($s1) -/* 182bc: a2220000 */ sb $v0,0x0($s1) -/* 182c0: 8fa500d0 */ lw $a1,0xd0($sp) -/* 182c4: 0c005f8c */ jal func00017e30 -/* 182c8: 8fa600d4 */ lw $a2,0xd4($sp) -/* 182cc: a2220001 */ sb $v0,0x1($s1) -/* 182d0: 92230001 */ lbu $v1,0x1($s1) -.L000182d4: -/* 182d4: 24010001 */ addiu $at,$zero,0x1 -/* 182d8: 50600026 */ beqzl $v1,.L00018374 -/* 182dc: 26f70001 */ addiu $s7,$s7,0x1 -/* 182e0: 54610012 */ bnel $v1,$at,.L0001832c -/* 182e4: 24010002 */ addiu $at,$zero,0x2 -/* 182e8: 8e8f0000 */ lw $t7,0x0($s4) -/* 182ec: 001280c0 */ sll $s0,$s2,0x3 -/* 182f0: 03c02025 */ or $a0,$s8,$zero -/* 182f4: 01f01021 */ addu $v0,$t7,$s0 -/* 182f8: 84580002 */ lh $t8,0x2($v0) -/* 182fc: 56b8000b */ bnel $s5,$t8,.L0001832c -/* 18300: 24010002 */ addiu $at,$zero,0x2 -/* 18304: 0c005f71 */ jal func00017dc4 -/* 18308: 84450004 */ lh $a1,0x4($v0) -/* 1830c: 8e990000 */ lw $t9,0x0($s4) -/* 18310: 27a4005c */ addiu $a0,$sp,0x5c -/* 18314: 03304821 */ addu $t1,$t9,$s0 -/* 18318: 0c005f71 */ jal func00017dc4 -/* 1831c: 85250004 */ lh $a1,0x4($t1) -/* 18320: a2200001 */ sb $zero,0x1($s1) -/* 18324: 300300ff */ andi $v1,$zero,0xff -/* 18328: 24010002 */ addiu $at,$zero,0x2 -.L0001832c: -/* 1832c: 54610011 */ bnel $v1,$at,.L00018374 -/* 18330: 26f70001 */ addiu $s7,$s7,0x1 -/* 18334: 8e8a0000 */ lw $t2,0x0($s4) -/* 18338: 001280c0 */ sll $s0,$s2,0x3 -/* 1833c: 03c02025 */ or $a0,$s8,$zero -/* 18340: 01501021 */ addu $v0,$t2,$s0 -/* 18344: 844c0004 */ lh $t4,0x4($v0) -/* 18348: 56ac000a */ bnel $s5,$t4,.L00018374 -/* 1834c: 26f70001 */ addiu $s7,$s7,0x1 -/* 18350: 0c005f71 */ jal func00017dc4 -/* 18354: 84450002 */ lh $a1,0x2($v0) -/* 18358: 8e8b0000 */ lw $t3,0x0($s4) -/* 1835c: 27a4005c */ addiu $a0,$sp,0x5c -/* 18360: 01706821 */ addu $t5,$t3,$s0 -/* 18364: 0c005f71 */ jal func00017dc4 -/* 18368: 85a50002 */ lh $a1,0x2($t5) -/* 1836c: a2200001 */ sb $zero,0x1($s1) -/* 18370: 26f70001 */ addiu $s7,$s7,0x1 -.L00018374: -/* 18374: 16f6ffc6 */ bne $s7,$s6,.L00018290 -/* 18378: 26730002 */ addiu $s3,$s3,0x2 -/* 1837c: 0000b825 */ or $s7,$zero,$zero -/* 18380: 2404ffff */ addiu $a0,$zero,-1 -.L00018384: -/* 18384: 8fae0044 */ lw $t6,0x44($sp) -/* 18388: 27b800bc */ addiu $t8,$sp,0xbc -/* 1838c: 25cf0002 */ addiu $t7,$t6,0x2 -/* 18390: afaf0044 */ sw $t7,0x44($sp) -/* 18394: 85f50000 */ lh $s5,0x0($t7) -/* 18398: 52a40004 */ beql $s5,$a0,.L000183ac -/* 1839c: 87b9007c */ lh $t9,0x7c($sp) -/* 183a0: 55f8ffad */ bnel $t7,$t8,.L00018258 -/* 183a4: 0015c8c0 */ sll $t9,$s5,0x3 -.L000183a8: -/* 183a8: 87b9007c */ lh $t9,0x7c($sp) -.L000183ac: -/* 183ac: 27a8009c */ addiu $t0,$sp,0x9c -/* 183b0: 27a3007c */ addiu $v1,$sp,0x7c -/* 183b4: 5099000f */ beql $a0,$t9,.L000183f4 -/* 183b8: 87ac009c */ lh $t4,0x9c($sp) -.L000183bc: -/* 183bc: 84620000 */ lh $v0,0x0($v1) -/* 183c0: 24630002 */ addiu $v1,$v1,0x2 -/* 183c4: 27a9009c */ addiu $t1,$sp,0x9c -/* 183c8: 14820003 */ bne $a0,$v0,.L000183d8 -/* 183cc: a5020000 */ sh $v0,0x0($t0) -/* 183d0: 10000004 */ b .L000183e4 -/* 183d4: 0000b825 */ or $s7,$zero,$zero -.L000183d8: -/* 183d8: 1469fff8 */ bne $v1,$t1,.L000183bc -/* 183dc: 25080002 */ addiu $t0,$t0,0x2 -/* 183e0: 0000b825 */ or $s7,$zero,$zero -.L000183e4: -/* 183e4: 87aa007c */ lh $t2,0x7c($sp) -/* 183e8: 548aff94 */ bnel $a0,$t2,.L0001823c -/* 183ec: 87b5009c */ lh $s5,0x9c($sp) -/* 183f0: 87ac009c */ lh $t4,0x9c($sp) -.L000183f4: -/* 183f4: 27ab009c */ addiu $t3,$sp,0x9c -/* 183f8: 8fad00dc */ lw $t5,0xdc($sp) -/* 183fc: 508c0010 */ beql $a0,$t4,.L00018440 -/* 18400: 8fae00dc */ lw $t6,0xdc($sp) -/* 18404: 00172040 */ sll $a0,$s7,0x1 -/* 18408: 008b4021 */ addu $t0,$a0,$t3 -/* 1840c: 01a41821 */ addu $v1,$t5,$a0 -/* 18410: 2404ffff */ addiu $a0,$zero,-1 -/* 18414: 85020000 */ lh $v0,0x0($t0) -/* 18418: 26f70001 */ addiu $s7,$s7,0x1 -.L0001841c: -/* 1841c: 2ae10007 */ slti $at,$s7,0x7 -/* 18420: 25080002 */ addiu $t0,$t0,0x2 -/* 18424: 24630002 */ addiu $v1,$v1,0x2 -/* 18428: 10200004 */ beqz $at,.L0001843c -/* 1842c: a462fffe */ sh $v0,-0x2($v1) -/* 18430: 85020000 */ lh $v0,0x0($t0) -/* 18434: 5482fff9 */ bnel $a0,$v0,.L0001841c -/* 18438: 26f70001 */ addiu $s7,$s7,0x1 -.L0001843c: -/* 1843c: 8fae00dc */ lw $t6,0xdc($sp) -.L00018440: -/* 18440: 8fa600e0 */ lw $a2,0xe0($sp) -/* 18444: 00177840 */ sll $t7,$s7,0x1 -/* 18448: 01cfc021 */ addu $t8,$t6,$t7 -/* 1844c: 10c00013 */ beqz $a2,.L0001849c -/* 18450: a7040000 */ sh $a0,0x0($t8) -/* 18454: 8fa500e4 */ lw $a1,0xe4($sp) -/* 18458: 0000b825 */ or $s7,$zero,$zero -/* 1845c: 27a2005c */ addiu $v0,$sp,0x5c -/* 18460: 18a0000b */ blez $a1,.L00018490 -/* 18464: 00c01825 */ or $v1,$a2,$zero -/* 18468: 2404ffff */ addiu $a0,$zero,-1 -.L0001846c: -/* 1846c: 84590000 */ lh $t9,0x0($v0) -/* 18470: 24420002 */ addiu $v0,$v0,0x2 -/* 18474: a4790000 */ sh $t9,0x0($v1) -/* 18478: 8449fffe */ lh $t1,-0x2($v0) -/* 1847c: 50890005 */ beql $a0,$t1,.L00018494 -/* 18480: 00175040 */ sll $t2,$s7,0x1 -/* 18484: 26f70001 */ addiu $s7,$s7,0x1 -/* 18488: 16e5fff8 */ bne $s7,$a1,.L0001846c -/* 1848c: 24630002 */ addiu $v1,$v1,0x2 -.L00018490: -/* 18490: 00175040 */ sll $t2,$s7,0x1 -.L00018494: -/* 18494: 00ca6021 */ addu $t4,$a2,$t2 -/* 18498: a5840000 */ sh $a0,0x0($t4) -.L0001849c: -/* 1849c: 8fbf003c */ lw $ra,0x3c($sp) -/* 184a0: 8fb00018 */ lw $s0,0x18($sp) -/* 184a4: 8fb1001c */ lw $s1,0x1c($sp) -/* 184a8: 8fb20020 */ lw $s2,0x20($sp) -/* 184ac: 8fb30024 */ lw $s3,0x24($sp) -/* 184b0: 8fb40028 */ lw $s4,0x28($sp) -/* 184b4: 8fb5002c */ lw $s5,0x2c($sp) -/* 184b8: 8fb60030 */ lw $s6,0x30($sp) -/* 184bc: 8fb70034 */ lw $s7,0x34($sp) -/* 184c0: 8fbe0038 */ lw $s8,0x38($sp) -/* 184c4: 03e00008 */ jr $ra -/* 184c8: 27bd00d0 */ addiu $sp,$sp,0xd0 -); diff --git a/src/lib/lib_17ce0.c b/src/lib/lib_17ce0.c new file mode 100644 index 000000000..15c2eaa0d --- /dev/null +++ b/src/lib/lib_17ce0.c @@ -0,0 +1,608 @@ +#include +#include "constants.h" +#include "game/atan2f.h" +#include "game/padhalllv.h" +#include "bss.h" +#include "lib/lib_159b0.h" +#include "lib/lib_16110.h" +#include "lib/lib_4f5e0.h" +#include "data.h" +#include "types.h" + +u32 var8005ef20 = 0xfe000000; + +GLOBAL_ASM( +glabel func00017ce0 +/* 17ce0: 3c03800a */ lui $v1,%hi(g_BgPortals) +/* 17ce4: 8c634cc8 */ lw $v1,%lo(g_BgPortals)($v1) +/* 17ce8: 000470c0 */ sll $t6,$a0,0x3 +/* 17cec: 3c013f80 */ lui $at,0x3f80 +/* 17cf0: 006e7821 */ addu $t7,$v1,$t6 +/* 17cf4: 95f80000 */ lhu $t8,0x0($t7) +/* 17cf8: 44815000 */ mtc1 $at,$f10 +/* 17cfc: 3c014f80 */ lui $at,0x4f80 +/* 17d00: 03031021 */ addu $v0,$t8,$v1 +/* 17d04: c4440004 */ lwc1 $f4,0x4($v0) +/* 17d08: 2443000c */ addiu $v1,$v0,0xc +/* 17d0c: 24070001 */ addiu $a3,$zero,0x1 +/* 17d10: e4a40000 */ swc1 $f4,0x0($a1) +/* 17d14: c4460008 */ lwc1 $f6,0x8($v0) +/* 17d18: e4a60004 */ swc1 $f6,0x4($a1) +/* 17d1c: c448000c */ lwc1 $f8,0xc($v0) +/* 17d20: e4a80008 */ swc1 $f8,0x8($a1) +/* 17d24: 90460000 */ lbu $a2,0x0($v0) +/* 17d28: 44868000 */ mtc1 $a2,$f16 +/* 17d2c: 04c10004 */ bgez $a2,.L00017d40 +/* 17d30: 468084a0 */ cvt.s.w $f18,$f16 +/* 17d34: 44812000 */ mtc1 $at,$f4 +/* 17d38: 00000000 */ nop +/* 17d3c: 46049480 */ add.s $f18,$f18,$f4 +.L00017d40: +/* 17d40: 28c10002 */ slti $at,$a2,0x2 +/* 17d44: 14200013 */ bnez $at,.L00017d94 +/* 17d48: 46125003 */ div.s $f0,$f10,$f18 +/* 17d4c: c4a60000 */ lwc1 $f6,0x0($a1) +.L00017d50: +/* 17d50: c4680004 */ lwc1 $f8,0x4($v1) +/* 17d54: c4a40004 */ lwc1 $f4,0x4($a1) +/* 17d58: 24e70001 */ addiu $a3,$a3,0x1 +/* 17d5c: 46083400 */ add.s $f16,$f6,$f8 +/* 17d60: c4a60008 */ lwc1 $f6,0x8($a1) +/* 17d64: 2463000c */ addiu $v1,$v1,12 +/* 17d68: e4b00000 */ swc1 $f16,0x0($a1) +/* 17d6c: c46afffc */ lwc1 $f10,-0x4($v1) +/* 17d70: 460a2480 */ add.s $f18,$f4,$f10 +/* 17d74: e4b20004 */ swc1 $f18,0x4($a1) +/* 17d78: c4680000 */ lwc1 $f8,0x0($v1) +/* 17d7c: 46083400 */ add.s $f16,$f6,$f8 +/* 17d80: e4b00008 */ swc1 $f16,0x8($a1) +/* 17d84: 90590000 */ lbu $t9,0x0($v0) +/* 17d88: 00f9082a */ slt $at,$a3,$t9 +/* 17d8c: 5420fff0 */ bnezl $at,.L00017d50 +/* 17d90: c4a60000 */ lwc1 $f6,0x0($a1) +.L00017d94: +/* 17d94: c4a40000 */ lwc1 $f4,0x0($a1) +/* 17d98: c4b20004 */ lwc1 $f18,0x4($a1) +/* 17d9c: c4a80008 */ lwc1 $f8,0x8($a1) +/* 17da0: 46002282 */ mul.s $f10,$f4,$f0 +/* 17da4: 00000000 */ nop +/* 17da8: 46009182 */ mul.s $f6,$f18,$f0 +/* 17dac: 00000000 */ nop +/* 17db0: 46004402 */ mul.s $f16,$f8,$f0 +/* 17db4: e4aa0000 */ swc1 $f10,0x0($a1) +/* 17db8: e4a60004 */ swc1 $f6,0x4($a1) +/* 17dbc: 03e00008 */ jr $ra +/* 17dc0: e4b00008 */ swc1 $f16,0x8($a1) +); + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func00018e34nb +/* 18e34: 3c0e800b */ lui $t6,0x800b +/* 18e38: 8dce9448 */ lw $t6,-0x6bb8($t6) +/* 18e3c: 000478c0 */ sll $t7,$a0,0x3 +/* 18e40: 01cfc021 */ addu $t8,$t6,$t7 +/* 18e44: 93020006 */ lbu $v0,0x6($t8) +/* 18e48: 30590002 */ andi $t9,$v0,0x2 +/* 18e4c: 03e00008 */ jr $ra +/* 18e50: 03201025 */ or $v0,$t9,$zero +/* 18e54: 3c0e800b */ lui $t6,0x800b +/* 18e58: 8dce9448 */ lw $t6,-0x6bb8($t6) +/* 18e5c: 000478c0 */ sll $t7,$a0,0x3 +/* 18e60: 01cf1021 */ addu $v0,$t6,$t7 +/* 18e64: 90580006 */ lbu $t8,0x6($v0) +/* 18e68: 37190002 */ ori $t9,$t8,0x2 +/* 18e6c: 03e00008 */ jr $ra +/* 18e70: a0590006 */ sb $t9,0x6($v0) +/* 18e74: 3c0e800b */ lui $t6,0x800b +/* 18e78: 8dce9448 */ lw $t6,-0x6bb8($t6) +/* 18e7c: 000478c0 */ sll $t7,$a0,0x3 +/* 18e80: 01cf1021 */ addu $v0,$t6,$t7 +/* 18e84: 90580006 */ lbu $t8,0x6($v0) +/* 18e88: 331900fd */ andi $t9,$t8,0xfd +/* 18e8c: 03e00008 */ jr $ra +/* 18e90: a0590006 */ sb $t9,0x6($v0) +); +#endif + +GLOBAL_ASM( +glabel func00017dc4 +/* 17dc4: afa50004 */ sw $a1,0x4($sp) +/* 17dc8: 848f0000 */ lh $t7,0x0($a0) +/* 17dcc: 00053400 */ sll $a2,$a1,0x10 +/* 17dd0: 00067403 */ sra $t6,$a2,0x10 +/* 17dd4: 2407ffff */ addiu $a3,$zero,-1 +/* 17dd8: 01c03025 */ or $a2,$t6,$zero +/* 17ddc: 10ef000c */ beq $a3,$t7,.L00017e10 +/* 17de0: 00001025 */ or $v0,$zero,$zero +/* 17de4: 0000c040 */ sll $t8,$zero,0x1 +/* 17de8: 00981821 */ addu $v1,$a0,$t8 +/* 17dec: 84650000 */ lh $a1,0x0($v1) +.L00017df0: +/* 17df0: 10c5000d */ beq $a2,$a1,.L00017e28 +/* 17df4: 24420001 */ addiu $v0,$v0,0x1 +/* 17df8: 28410010 */ slti $at,$v0,0x10 +/* 17dfc: 10200004 */ beqz $at,.L00017e10 +/* 17e00: 24630002 */ addiu $v1,$v1,0x2 +/* 17e04: 84650000 */ lh $a1,0x0($v1) +/* 17e08: 14e5fff9 */ bne $a3,$a1,.L00017df0 +/* 17e0c: 00000000 */ nop +.L00017e10: +/* 17e10: 2841000f */ slti $at,$v0,0xf +/* 17e14: 10200004 */ beqz $at,.L00017e28 +/* 17e18: 0002c840 */ sll $t9,$v0,0x1 +/* 17e1c: 00991821 */ addu $v1,$a0,$t9 +/* 17e20: a4660000 */ sh $a2,0x0($v1) +/* 17e24: a4670002 */ sh $a3,0x2($v1) +.L00017e28: +/* 17e28: 03e00008 */ jr $ra +/* 17e2c: 00000000 */ nop +); + +GLOBAL_ASM( +glabel func00017e30 +/* 17e30: 3c0e800a */ lui $t6,%hi(var800a4ccc) +/* 17e34: 8dce4ccc */ lw $t6,%lo(var800a4ccc)($t6) +/* 17e38: 00046880 */ sll $t5,$a0,0x2 +/* 17e3c: 01a46821 */ addu $t5,$t5,$a0 +/* 17e40: 000d6880 */ sll $t5,$t5,0x2 +/* 17e44: 01ae4021 */ addu $t0,$t5,$t6 +/* 17e48: c50e0000 */ lwc1 $f14,0x0($t0) +/* 17e4c: c4ac0000 */ lwc1 $f12,0x0($a1) +/* 17e50: c5100004 */ lwc1 $f16,0x4($t0) +/* 17e54: c4a40004 */ lwc1 $f4,0x4($a1) +/* 17e58: 460e6282 */ mul.s $f10,$f12,$f14 +/* 17e5c: c5020008 */ lwc1 $f2,0x8($t0) +/* 17e60: 3c07800a */ lui $a3,%hi(g_BgPortals) +/* 17e64: 46102182 */ mul.s $f6,$f4,$f16 +/* 17e68: c4a40008 */ lwc1 $f4,0x8($a1) +/* 17e6c: 8ce74cc8 */ lw $a3,%lo(g_BgPortals)($a3) +/* 17e70: 000478c0 */ sll $t7,$a0,0x3 +/* 17e74: 27bdff90 */ addiu $sp,$sp,-112 +/* 17e78: 00efc021 */ addu $t8,$a3,$t7 +/* 17e7c: 97190000 */ lhu $t9,0x0($t8) +/* 17e80: 46065200 */ add.s $f8,$f10,$f6 +/* 17e84: 46041282 */ mul.s $f10,$f2,$f4 +/* 17e88: c4c60000 */ lwc1 $f6,0x0($a2) +/* 17e8c: 00001025 */ or $v0,$zero,$zero +/* 17e90: 03271821 */ addu $v1,$t9,$a3 +/* 17e94: e7a60014 */ swc1 $f6,0x14($sp) +/* 17e98: c7a40014 */ lwc1 $f4,0x14($sp) +/* 17e9c: 46085000 */ add.s $f0,$f10,$f8 +/* 17ea0: 460e2282 */ mul.s $f10,$f4,$f14 +/* 17ea4: c4c80004 */ lwc1 $f8,0x4($a2) +/* 17ea8: 46104182 */ mul.s $f6,$f8,$f16 +/* 17eac: c4c80008 */ lwc1 $f8,0x8($a2) +/* 17eb0: 46065100 */ add.s $f4,$f10,$f6 +/* 17eb4: c506000c */ lwc1 $f6,0xc($t0) +/* 17eb8: 46081282 */ mul.s $f10,$f2,$f8 +/* 17ebc: e7a60010 */ swc1 $f6,0x10($sp) +/* 17ec0: c7a80010 */ lwc1 $f8,0x10($sp) +/* 17ec4: 4608003c */ c.lt.s $f0,$f8 +/* 17ec8: 46045480 */ add.s $f18,$f10,$f4 +/* 17ecc: 45020008 */ bc1fl .L00017ef0 +/* 17ed0: c5020010 */ lwc1 $f2,0x10($t0) +/* 17ed4: 4608903c */ c.lt.s $f18,$f8 +/* 17ed8: 00000000 */ nop +/* 17edc: 4502000f */ bc1fl .L00017f1c +/* 17ee0: c7aa0014 */ lwc1 $f10,0x14($sp) +/* 17ee4: 10000096 */ b .L00018140 +/* 17ee8: 00001025 */ or $v0,$zero,$zero +/* 17eec: c5020010 */ lwc1 $f2,0x10($t0) +.L00017ef0: +/* 17ef0: 4600103c */ c.lt.s $f2,$f0 +/* 17ef4: 00000000 */ nop +/* 17ef8: 45020008 */ bc1fl .L00017f1c +/* 17efc: c7aa0014 */ lwc1 $f10,0x14($sp) +/* 17f00: 4612103c */ c.lt.s $f2,$f18 +/* 17f04: 00000000 */ nop +/* 17f08: 45020004 */ bc1fl .L00017f1c +/* 17f0c: c7aa0014 */ lwc1 $f10,0x14($sp) +/* 17f10: 1000008b */ b .L00018140 +/* 17f14: 00001025 */ or $v0,$zero,$zero +/* 17f18: c7aa0014 */ lwc1 $f10,0x14($sp) +.L00017f1c: +/* 17f1c: 3c013f00 */ lui $at,0x3f00 +/* 17f20: 24670004 */ addiu $a3,$v1,0x4 +/* 17f24: 460c5101 */ sub.s $f4,$f10,$f12 +/* 17f28: 00e02025 */ or $a0,$a3,$zero +/* 17f2c: 24690010 */ addiu $t1,$v1,0x10 +/* 17f30: 00005025 */ or $t2,$zero,$zero +/* 17f34: e7a40060 */ swc1 $f4,0x60($sp) +/* 17f38: c4a80004 */ lwc1 $f8,0x4($a1) +/* 17f3c: c4c60004 */ lwc1 $f6,0x4($a2) +/* 17f40: 240c0001 */ addiu $t4,$zero,0x1 +/* 17f44: 46083281 */ sub.s $f10,$f6,$f8 +/* 17f48: e7aa0064 */ swc1 $f10,0x64($sp) +/* 17f4c: c4a60008 */ lwc1 $f6,0x8($a1) +/* 17f50: c4c40008 */ lwc1 $f4,0x8($a2) +/* 17f54: 46120280 */ add.s $f10,$f0,$f18 +/* 17f58: 46062201 */ sub.s $f8,$f4,$f6 +/* 17f5c: 44812000 */ mtc1 $at,$f4 +/* 17f60: 3c018008 */ lui $at,%hi(var8007fcb4) +/* 17f64: 46045182 */ mul.s $f6,$f10,$f4 +/* 17f68: e7a80068 */ swc1 $f8,0x68($sp) +/* 17f6c: c508000c */ lwc1 $f8,0xc($t0) +/* 17f70: 46083281 */ sub.s $f10,$f6,$f8 +/* 17f74: e42afcb4 */ swc1 $f10,%lo(var8007fcb4)($at) +/* 17f78: 906b0000 */ lbu $t3,0x0($v1) +/* 17f7c: 59600068 */ blezl $t3,.L00018120 +/* 17f80: c506000c */ lwc1 $f6,0xc($t0) +/* 17f84: 44806000 */ mtc1 $zero,$f12 +/* 17f88: 24060002 */ addiu $a2,$zero,0x2 +.L00017f8c: +/* 17f8c: 254f0001 */ addiu $t7,$t2,0x1 +/* 17f90: 55eb0003 */ bnel $t7,$t3,.L00017fa0 +/* 17f94: c5240000 */ lwc1 $f4,0x0($t1) +/* 17f98: 00e04825 */ or $t1,$a3,$zero +/* 17f9c: c5240000 */ lwc1 $f4,0x0($t1) +.L00017fa0: +/* 17fa0: c4860000 */ lwc1 $f6,0x0($a0) +/* 17fa4: 46062201 */ sub.s $f8,$f4,$f6 +/* 17fa8: e7a80048 */ swc1 $f8,0x48($sp) +/* 17fac: c4840004 */ lwc1 $f4,0x4($a0) +/* 17fb0: c52a0004 */ lwc1 $f10,0x4($t1) +/* 17fb4: 46045181 */ sub.s $f6,$f10,$f4 +/* 17fb8: e7a6004c */ swc1 $f6,0x4c($sp) +/* 17fbc: c48a0008 */ lwc1 $f10,0x8($a0) +/* 17fc0: c5280008 */ lwc1 $f8,0x8($t1) +/* 17fc4: c7a6004c */ lwc1 $f6,0x4c($sp) +/* 17fc8: 460a4101 */ sub.s $f4,$f8,$f10 +/* 17fcc: c7a80068 */ lwc1 $f8,0x68($sp) +/* 17fd0: e7a60000 */ swc1 $f6,0x0($sp) +/* 17fd4: e7a40050 */ swc1 $f4,0x50($sp) +/* 17fd8: 46083282 */ mul.s $f10,$f6,$f8 +/* 17fdc: c7a60050 */ lwc1 $f6,0x50($sp) +/* 17fe0: c7a40064 */ lwc1 $f4,0x64($sp) +/* 17fe4: e7a80004 */ swc1 $f8,0x4($sp) +/* 17fe8: 46062202 */ mul.s $f8,$f4,$f6 +/* 17fec: e7a40008 */ swc1 $f4,0x8($sp) +/* 17ff0: c7a40004 */ lwc1 $f4,0x4($sp) +/* 17ff4: 46085281 */ sub.s $f10,$f10,$f8 +/* 17ff8: c7a80060 */ lwc1 $f8,0x60($sp) +/* 17ffc: e7aa0034 */ swc1 $f10,0x34($sp) +/* 18000: e7aa0004 */ swc1 $f10,0x4($sp) +/* 18004: 46083182 */ mul.s $f6,$f6,$f8 +/* 18008: c7aa0048 */ lwc1 $f10,0x48($sp) +/* 1800c: 460a2102 */ mul.s $f4,$f4,$f10 +/* 18010: 46043181 */ sub.s $f6,$f6,$f4 +/* 18014: c7a40008 */ lwc1 $f4,0x8($sp) +/* 18018: 46045282 */ mul.s $f10,$f10,$f4 +/* 1801c: c7a40000 */ lwc1 $f4,0x0($sp) +/* 18020: e7a60038 */ swc1 $f6,0x38($sp) +/* 18024: 46044202 */ mul.s $f8,$f8,$f4 +/* 18028: 46085101 */ sub.s $f4,$f10,$f8 +/* 1802c: c7aa0004 */ lwc1 $f10,0x4($sp) +/* 18030: 460a5202 */ mul.s $f8,$f10,$f10 +/* 18034: e7a4003c */ swc1 $f4,0x3c($sp) +/* 18038: 46063282 */ mul.s $f10,$f6,$f6 +/* 1803c: 460a4180 */ add.s $f6,$f8,$f10 +/* 18040: 46042202 */ mul.s $f8,$f4,$f4 +/* 18044: c7aa0034 */ lwc1 $f10,0x34($sp) +/* 18048: 46064080 */ add.s $f2,$f8,$f6 +/* 1804c: 460c1032 */ c.eq.s $f2,$f12 +/* 18050: 00000000 */ nop +/* 18054: 45020004 */ bc1fl .L00018068 +/* 18058: c4840000 */ lwc1 $f4,0x0($a0) +/* 1805c: 10000038 */ b .L00018140 +/* 18060: 00001025 */ or $v0,$zero,$zero +/* 18064: c4840000 */ lwc1 $f4,0x0($a0) +.L00018068: +/* 18068: c7a60038 */ lwc1 $f6,0x38($sp) +/* 1806c: 46045202 */ mul.s $f8,$f10,$f4 +/* 18070: c4840004 */ lwc1 $f4,0x4($a0) +/* 18074: 46043102 */ mul.s $f4,$f6,$f4 +/* 18078: 46044200 */ add.s $f8,$f8,$f4 +/* 1807c: c4840008 */ lwc1 $f4,0x8($a0) +/* 18080: e7aa0008 */ swc1 $f10,0x8($sp) +/* 18084: c7aa003c */ lwc1 $f10,0x3c($sp) +/* 18088: 460a2102 */ mul.s $f4,$f4,$f10 +/* 1808c: 46082100 */ add.s $f4,$f4,$f8 +/* 18090: c7a80008 */ lwc1 $f8,0x8($sp) +/* 18094: e7a60008 */ swc1 $f6,0x8($sp) +/* 18098: e7a40040 */ swc1 $f4,0x40($sp) +/* 1809c: c4a60000 */ lwc1 $f6,0x0($a1) +/* 180a0: 46064202 */ mul.s $f8,$f8,$f6 +/* 180a4: c7a60008 */ lwc1 $f6,0x8($sp) +/* 180a8: e7aa0008 */ swc1 $f10,0x8($sp) +/* 180ac: c4aa0004 */ lwc1 $f10,0x4($a1) +/* 180b0: 460a3182 */ mul.s $f6,$f6,$f10 +/* 180b4: 46064280 */ add.s $f10,$f8,$f6 +/* 180b8: c7a60008 */ lwc1 $f6,0x8($sp) +/* 180bc: c4a80008 */ lwc1 $f8,0x8($a1) +/* 180c0: 46064202 */ mul.s $f8,$f8,$f6 +/* 180c4: 460a4080 */ add.s $f2,$f8,$f10 +/* 180c8: 4604103c */ c.lt.s $f2,$f4 +/* 180cc: 00000000 */ nop +/* 180d0: 45000007 */ bc1f .L000180f0 +/* 180d4: 00000000 */ nop +/* 180d8: 14c20003 */ bne $a2,$v0,.L000180e8 +/* 180dc: 00000000 */ nop +/* 180e0: 10000017 */ b .L00018140 +/* 180e4: 00001025 */ or $v0,$zero,$zero +.L000180e8: +/* 180e8: 10000006 */ b .L00018104 +/* 180ec: 24020001 */ addiu $v0,$zero,0x1 +.L000180f0: +/* 180f0: 55820004 */ bnel $t4,$v0,.L00018104 +/* 180f4: 24020002 */ addiu $v0,$zero,0x2 +/* 180f8: 10000011 */ b .L00018140 +/* 180fc: 00001025 */ or $v0,$zero,$zero +/* 18100: 24020002 */ addiu $v0,$zero,0x2 +.L00018104: +/* 18104: 906b0000 */ lbu $t3,0x0($v1) +/* 18108: 254a0001 */ addiu $t2,$t2,0x1 +/* 1810c: 2484000c */ addiu $a0,$a0,0xc +/* 18110: 014b082a */ slt $at,$t2,$t3 +/* 18114: 1420ff9d */ bnez $at,.L00017f8c +/* 18118: 2529000c */ addiu $t1,$t1,0xc +/* 1811c: c506000c */ lwc1 $f6,0xc($t0) +.L00018120: +/* 18120: 24030002 */ addiu $v1,$zero,0x2 +/* 18124: 4606003c */ c.lt.s $f0,$f6 +/* 18128: 00000000 */ nop +/* 1812c: 45000003 */ bc1f .L0001813c +/* 18130: 00000000 */ nop +/* 18134: 10000001 */ b .L0001813c +/* 18138: 24030001 */ addiu $v1,$zero,0x1 +.L0001813c: +/* 1813c: 00601025 */ or $v0,$v1,$zero +.L00018140: +/* 18140: 03e00008 */ jr $ra +/* 18144: 27bd0070 */ addiu $sp,$sp,0x70 +); + +GLOBAL_ASM( +glabel func00018148 +/* 18148: 27bdff30 */ addiu $sp,$sp,-208 +/* 1814c: afa400d0 */ sw $a0,0xd0($sp) +/* 18150: afa500d4 */ sw $a1,0xd4($sp) +/* 18154: afbf003c */ sw $ra,0x3c($sp) +/* 18158: afbe0038 */ sw $s8,0x38($sp) +/* 1815c: afb70034 */ sw $s7,0x34($sp) +/* 18160: afb60030 */ sw $s6,0x30($sp) +/* 18164: afb5002c */ sw $s5,0x2c($sp) +/* 18168: afb40028 */ sw $s4,0x28($sp) +/* 1816c: afb30024 */ sw $s3,0x24($sp) +/* 18170: afb20020 */ sw $s2,0x20($sp) +/* 18174: afb1001c */ sw $s1,0x1c($sp) +/* 18178: afb00018 */ sw $s0,0x18($sp) +/* 1817c: afa700dc */ sw $a3,0xdc($sp) +/* 18180: 27a5006c */ addiu $a1,$sp,0x6c +/* 18184: 2404ffff */ addiu $a0,$zero,-1 +/* 18188: 27a8009c */ addiu $t0,$sp,0x9c +/* 1818c: 27a2005c */ addiu $v0,$sp,0x5c +/* 18190: 00c01825 */ or $v1,$a2,$zero +.L00018194: +/* 18194: 846e0000 */ lh $t6,0x0($v1) +/* 18198: 24420002 */ addiu $v0,$v0,0x2 +/* 1819c: 0045082b */ sltu $at,$v0,$a1 +/* 181a0: a50e0000 */ sh $t6,0x0($t0) +/* 181a4: 846f0000 */ lh $t7,0x0($v1) +/* 181a8: 25080002 */ addiu $t0,$t0,0x2 +/* 181ac: a44ffffe */ sh $t7,-0x2($v0) +/* 181b0: 84780000 */ lh $t8,0x0($v1) +/* 181b4: 14980003 */ bne $a0,$t8,.L000181c4 +/* 181b8: 00000000 */ nop +/* 181bc: 10000004 */ b .L000181d0 +/* 181c0: 0000b825 */ or $s7,$zero,$zero +.L000181c4: +/* 181c4: 1420fff3 */ bnez $at,.L00018194 +/* 181c8: 24630002 */ addiu $v1,$v1,0x2 +/* 181cc: 0000b825 */ or $s7,$zero,$zero +.L000181d0: +/* 181d0: 3c198006 */ lui $t9,%hi(var8005ef20) +/* 181d4: 9339ef20 */ lbu $t9,%lo(var8005ef20)($t9) +/* 181d8: 3c018006 */ lui $at,%hi(var8005ef20) +/* 181dc: 27be007c */ addiu $s8,$sp,0x7c +/* 181e0: 27290001 */ addiu $t1,$t9,0x1 +/* 181e4: a029ef20 */ sb $t1,%lo(var8005ef20)($at) +/* 181e8: 240100ff */ addiu $at,$zero,0xff +/* 181ec: 312a00ff */ andi $t2,$t1,0xff +/* 181f0: 15410010 */ bne $t2,$at,.L00018234 +/* 181f4: 3c14800a */ lui $s4,%hi(g_BgPortals) +/* 181f8: 3c038008 */ lui $v1,%hi(g_NumPortalThings) +/* 181fc: 8c63fc40 */ lw $v1,%lo(g_NumPortalThings)($v1) +/* 18200: 3c0b800a */ lui $t3,%hi(g_Vars+0x520) +/* 18204: 2562a4e0 */ addiu $v0,$t3,%lo(g_Vars+0x520) +/* 18208: 18600008 */ blez $v1,.L0001822c +/* 1820c: 00036040 */ sll $t4,$v1,0x1 +/* 18210: 01822821 */ addu $a1,$t4,$v0 +/* 18214: 240300ff */ addiu $v1,$zero,0xff +.L00018218: +/* 18218: 24420002 */ addiu $v0,$v0,0x2 +/* 1821c: 0045082b */ sltu $at,$v0,$a1 +/* 18220: 1420fffd */ bnez $at,.L00018218 +/* 18224: a043fffe */ sb $v1,-0x2($v0) +/* 18228: 0000b825 */ or $s7,$zero,$zero +.L0001822c: +/* 1822c: 3c018006 */ lui $at,%hi(var8005ef20) +/* 18230: a020ef20 */ sb $zero,%lo(var8005ef20)($at) +.L00018234: +/* 18234: 26944cc8 */ addiu $s4,$s4,%lo(g_BgPortals) +/* 18238: 87b5009c */ lh $s5,0x9c($sp) +.L0001823c: +/* 1823c: a7a4007c */ sh $a0,0x7c($sp) +/* 18240: 00006840 */ sll $t5,$zero,0x1 +/* 18244: 12a40058 */ beq $s5,$a0,.L000183a8 +/* 18248: 27ae009c */ addiu $t6,$sp,0x9c +/* 1824c: 01ae7821 */ addu $t7,$t5,$t6 +/* 18250: afaf0044 */ sw $t7,0x44($sp) +/* 18254: 0015c8c0 */ sll $t9,$s5,0x3 +.L00018258: +/* 18258: 0335c821 */ addu $t9,$t9,$s5 +/* 1825c: 3c18800a */ lui $t8,%hi(g_Rooms) +/* 18260: 8f184928 */ lw $t8,%lo(g_Rooms)($t8) +/* 18264: 0019c880 */ sll $t9,$t9,0x2 +/* 18268: 0335c823 */ subu $t9,$t9,$s5 +/* 1826c: 0019c880 */ sll $t9,$t9,0x2 +/* 18270: 03191021 */ addu $v0,$t8,$t9 +/* 18274: 8449000e */ lh $t1,0xe($v0) +/* 18278: 80560005 */ lb $s6,0x5($v0) +/* 1827c: 3c0c800a */ lui $t4,%hi(g_RoomPortals) +/* 18280: 8d8c4ce0 */ lw $t4,%lo(g_RoomPortals)($t4) +/* 18284: 00095040 */ sll $t2,$t1,0x1 +/* 18288: 1ac0003e */ blez $s6,.L00018384 +/* 1828c: 014c9821 */ addu $s3,$t2,$t4 +.L00018290: +/* 18290: 86720000 */ lh $s2,0x0($s3) +/* 18294: 3c0d800a */ lui $t5,%hi(g_Vars+0x520) +/* 18298: 25ada4e0 */ addiu $t5,$t5,%lo(g_Vars+0x520) +/* 1829c: 00125840 */ sll $t3,$s2,0x1 +/* 182a0: 016d8821 */ addu $s1,$t3,$t5 +/* 182a4: 3c028006 */ lui $v0,%hi(var8005ef20) +/* 182a8: 9042ef20 */ lbu $v0,%lo(var8005ef20)($v0) +/* 182ac: 922e0000 */ lbu $t6,0x0($s1) +/* 182b0: 02402025 */ or $a0,$s2,$zero +/* 182b4: 504e0007 */ beql $v0,$t6,.L000182d4 +/* 182b8: 92230001 */ lbu $v1,0x1($s1) +/* 182bc: a2220000 */ sb $v0,0x0($s1) +/* 182c0: 8fa500d0 */ lw $a1,0xd0($sp) +/* 182c4: 0c005f8c */ jal func00017e30 +/* 182c8: 8fa600d4 */ lw $a2,0xd4($sp) +/* 182cc: a2220001 */ sb $v0,0x1($s1) +/* 182d0: 92230001 */ lbu $v1,0x1($s1) +.L000182d4: +/* 182d4: 24010001 */ addiu $at,$zero,0x1 +/* 182d8: 50600026 */ beqzl $v1,.L00018374 +/* 182dc: 26f70001 */ addiu $s7,$s7,0x1 +/* 182e0: 54610012 */ bnel $v1,$at,.L0001832c +/* 182e4: 24010002 */ addiu $at,$zero,0x2 +/* 182e8: 8e8f0000 */ lw $t7,0x0($s4) +/* 182ec: 001280c0 */ sll $s0,$s2,0x3 +/* 182f0: 03c02025 */ or $a0,$s8,$zero +/* 182f4: 01f01021 */ addu $v0,$t7,$s0 +/* 182f8: 84580002 */ lh $t8,0x2($v0) +/* 182fc: 56b8000b */ bnel $s5,$t8,.L0001832c +/* 18300: 24010002 */ addiu $at,$zero,0x2 +/* 18304: 0c005f71 */ jal func00017dc4 +/* 18308: 84450004 */ lh $a1,0x4($v0) +/* 1830c: 8e990000 */ lw $t9,0x0($s4) +/* 18310: 27a4005c */ addiu $a0,$sp,0x5c +/* 18314: 03304821 */ addu $t1,$t9,$s0 +/* 18318: 0c005f71 */ jal func00017dc4 +/* 1831c: 85250004 */ lh $a1,0x4($t1) +/* 18320: a2200001 */ sb $zero,0x1($s1) +/* 18324: 300300ff */ andi $v1,$zero,0xff +/* 18328: 24010002 */ addiu $at,$zero,0x2 +.L0001832c: +/* 1832c: 54610011 */ bnel $v1,$at,.L00018374 +/* 18330: 26f70001 */ addiu $s7,$s7,0x1 +/* 18334: 8e8a0000 */ lw $t2,0x0($s4) +/* 18338: 001280c0 */ sll $s0,$s2,0x3 +/* 1833c: 03c02025 */ or $a0,$s8,$zero +/* 18340: 01501021 */ addu $v0,$t2,$s0 +/* 18344: 844c0004 */ lh $t4,0x4($v0) +/* 18348: 56ac000a */ bnel $s5,$t4,.L00018374 +/* 1834c: 26f70001 */ addiu $s7,$s7,0x1 +/* 18350: 0c005f71 */ jal func00017dc4 +/* 18354: 84450002 */ lh $a1,0x2($v0) +/* 18358: 8e8b0000 */ lw $t3,0x0($s4) +/* 1835c: 27a4005c */ addiu $a0,$sp,0x5c +/* 18360: 01706821 */ addu $t5,$t3,$s0 +/* 18364: 0c005f71 */ jal func00017dc4 +/* 18368: 85a50002 */ lh $a1,0x2($t5) +/* 1836c: a2200001 */ sb $zero,0x1($s1) +/* 18370: 26f70001 */ addiu $s7,$s7,0x1 +.L00018374: +/* 18374: 16f6ffc6 */ bne $s7,$s6,.L00018290 +/* 18378: 26730002 */ addiu $s3,$s3,0x2 +/* 1837c: 0000b825 */ or $s7,$zero,$zero +/* 18380: 2404ffff */ addiu $a0,$zero,-1 +.L00018384: +/* 18384: 8fae0044 */ lw $t6,0x44($sp) +/* 18388: 27b800bc */ addiu $t8,$sp,0xbc +/* 1838c: 25cf0002 */ addiu $t7,$t6,0x2 +/* 18390: afaf0044 */ sw $t7,0x44($sp) +/* 18394: 85f50000 */ lh $s5,0x0($t7) +/* 18398: 52a40004 */ beql $s5,$a0,.L000183ac +/* 1839c: 87b9007c */ lh $t9,0x7c($sp) +/* 183a0: 55f8ffad */ bnel $t7,$t8,.L00018258 +/* 183a4: 0015c8c0 */ sll $t9,$s5,0x3 +.L000183a8: +/* 183a8: 87b9007c */ lh $t9,0x7c($sp) +.L000183ac: +/* 183ac: 27a8009c */ addiu $t0,$sp,0x9c +/* 183b0: 27a3007c */ addiu $v1,$sp,0x7c +/* 183b4: 5099000f */ beql $a0,$t9,.L000183f4 +/* 183b8: 87ac009c */ lh $t4,0x9c($sp) +.L000183bc: +/* 183bc: 84620000 */ lh $v0,0x0($v1) +/* 183c0: 24630002 */ addiu $v1,$v1,0x2 +/* 183c4: 27a9009c */ addiu $t1,$sp,0x9c +/* 183c8: 14820003 */ bne $a0,$v0,.L000183d8 +/* 183cc: a5020000 */ sh $v0,0x0($t0) +/* 183d0: 10000004 */ b .L000183e4 +/* 183d4: 0000b825 */ or $s7,$zero,$zero +.L000183d8: +/* 183d8: 1469fff8 */ bne $v1,$t1,.L000183bc +/* 183dc: 25080002 */ addiu $t0,$t0,0x2 +/* 183e0: 0000b825 */ or $s7,$zero,$zero +.L000183e4: +/* 183e4: 87aa007c */ lh $t2,0x7c($sp) +/* 183e8: 548aff94 */ bnel $a0,$t2,.L0001823c +/* 183ec: 87b5009c */ lh $s5,0x9c($sp) +/* 183f0: 87ac009c */ lh $t4,0x9c($sp) +.L000183f4: +/* 183f4: 27ab009c */ addiu $t3,$sp,0x9c +/* 183f8: 8fad00dc */ lw $t5,0xdc($sp) +/* 183fc: 508c0010 */ beql $a0,$t4,.L00018440 +/* 18400: 8fae00dc */ lw $t6,0xdc($sp) +/* 18404: 00172040 */ sll $a0,$s7,0x1 +/* 18408: 008b4021 */ addu $t0,$a0,$t3 +/* 1840c: 01a41821 */ addu $v1,$t5,$a0 +/* 18410: 2404ffff */ addiu $a0,$zero,-1 +/* 18414: 85020000 */ lh $v0,0x0($t0) +/* 18418: 26f70001 */ addiu $s7,$s7,0x1 +.L0001841c: +/* 1841c: 2ae10007 */ slti $at,$s7,0x7 +/* 18420: 25080002 */ addiu $t0,$t0,0x2 +/* 18424: 24630002 */ addiu $v1,$v1,0x2 +/* 18428: 10200004 */ beqz $at,.L0001843c +/* 1842c: a462fffe */ sh $v0,-0x2($v1) +/* 18430: 85020000 */ lh $v0,0x0($t0) +/* 18434: 5482fff9 */ bnel $a0,$v0,.L0001841c +/* 18438: 26f70001 */ addiu $s7,$s7,0x1 +.L0001843c: +/* 1843c: 8fae00dc */ lw $t6,0xdc($sp) +.L00018440: +/* 18440: 8fa600e0 */ lw $a2,0xe0($sp) +/* 18444: 00177840 */ sll $t7,$s7,0x1 +/* 18448: 01cfc021 */ addu $t8,$t6,$t7 +/* 1844c: 10c00013 */ beqz $a2,.L0001849c +/* 18450: a7040000 */ sh $a0,0x0($t8) +/* 18454: 8fa500e4 */ lw $a1,0xe4($sp) +/* 18458: 0000b825 */ or $s7,$zero,$zero +/* 1845c: 27a2005c */ addiu $v0,$sp,0x5c +/* 18460: 18a0000b */ blez $a1,.L00018490 +/* 18464: 00c01825 */ or $v1,$a2,$zero +/* 18468: 2404ffff */ addiu $a0,$zero,-1 +.L0001846c: +/* 1846c: 84590000 */ lh $t9,0x0($v0) +/* 18470: 24420002 */ addiu $v0,$v0,0x2 +/* 18474: a4790000 */ sh $t9,0x0($v1) +/* 18478: 8449fffe */ lh $t1,-0x2($v0) +/* 1847c: 50890005 */ beql $a0,$t1,.L00018494 +/* 18480: 00175040 */ sll $t2,$s7,0x1 +/* 18484: 26f70001 */ addiu $s7,$s7,0x1 +/* 18488: 16e5fff8 */ bne $s7,$a1,.L0001846c +/* 1848c: 24630002 */ addiu $v1,$v1,0x2 +.L00018490: +/* 18490: 00175040 */ sll $t2,$s7,0x1 +.L00018494: +/* 18494: 00ca6021 */ addu $t4,$a2,$t2 +/* 18498: a5840000 */ sh $a0,0x0($t4) +.L0001849c: +/* 1849c: 8fbf003c */ lw $ra,0x3c($sp) +/* 184a0: 8fb00018 */ lw $s0,0x18($sp) +/* 184a4: 8fb1001c */ lw $s1,0x1c($sp) +/* 184a8: 8fb20020 */ lw $s2,0x20($sp) +/* 184ac: 8fb30024 */ lw $s3,0x24($sp) +/* 184b0: 8fb40028 */ lw $s4,0x28($sp) +/* 184b4: 8fb5002c */ lw $s5,0x2c($sp) +/* 184b8: 8fb60030 */ lw $s6,0x30($sp) +/* 184bc: 8fb70034 */ lw $s7,0x34($sp) +/* 184c0: 8fbe0038 */ lw $s8,0x38($sp) +/* 184c4: 03e00008 */ jr $ra +/* 184c8: 27bd00d0 */ addiu $sp,$sp,0xd0 +); diff --git a/src/lib/lib_184d0.c b/src/lib/lib_184d0.c index caae42fba..50a7a8f1c 100644 --- a/src/lib/lib_184d0.c +++ b/src/lib/lib_184d0.c @@ -1802,6 +1802,57 @@ glabel func00019d1c /* 19dd8: 27bd0020 */ addiu $sp,$sp,0x20 ); +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel modelGetNodeData +/* 1aeac: 27bdfff0 */ addiu $sp,$sp,-16 +/* 1aeb0: afa80000 */ sw $t0,0x0($sp) +/* 1aeb4: afa90004 */ sw $t1,0x4($sp) +/* 1aeb8: afab0008 */ sw $t3,0x8($sp) +/* 1aebc: afbf000c */ sw $ra,0xc($sp) +/* 1aec0: 8cac0004 */ lw $t4,0x4($a1) +/* 1aec4: 3c0a8006 */ lui $t2,0x8006 +/* 1aec8: 254a1360 */ addiu $t2,$t2,0x1360 +/* 1aecc: 94a90000 */ lhu $t1,0x0($a1) +/* 1aed0: 312900ff */ andi $t1,$t1,0xff +/* 1aed4: 00004025 */ or $t0,$zero,$zero +/* 1aed8: 2921001a */ slti $at,$t1,0x1a +/* 1aedc: 10200007 */ beqz $at,.NB0001aefc +/* 1aee0: 8c8b0010 */ lw $t3,0x10($a0) +/* 1aee4: 01495020 */ add $t2,$t2,$t1 +/* 1aee8: 914a0000 */ lbu $t2,0x0($t2) +/* 1aeec: 240100ff */ addiu $at,$zero,0xff +/* 1aef0: 11410002 */ beq $t2,$at,.NB0001aefc +/* 1aef4: 018a5020 */ add $t2,$t4,$t2 +/* 1aef8: 95480000 */ lhu $t0,0x0($t2) +.NB0001aefc: +/* 1aefc: 90890000 */ lbu $t1,0x0($a0) +/* 1af00: 1120000c */ beqz $t1,.NB0001af34 +/* 1af04: 00000000 */ sll $zero,$zero,0x0 +.NB0001af08: +/* 1af08: 8ca90008 */ lw $t1,0x8($a1) +/* 1af0c: 11200009 */ beqz $t1,.NB0001af34 +/* 1af10: 01202825 */ or $a1,$t1,$zero +/* 1af14: 94a90000 */ lhu $t1,0x0($a1) +/* 1af18: 312900ff */ andi $t1,$t1,0xff +/* 1af1c: 24010017 */ addiu $at,$zero,0x17 +/* 1af20: 1521fff9 */ bne $t1,$at,.NB0001af08 +/* 1af24: 00000000 */ sll $zero,$zero,0x0 +/* 1af28: 0c006bab */ jal modelGetNodeData +/* 1af2c: 00000000 */ sll $zero,$zero,0x0 +/* 1af30: 8c4b0004 */ lw $t3,0x4($v0) +.NB0001af34: +/* 1af34: 00084080 */ sll $t0,$t0,0x2 +/* 1af38: 01681020 */ add $v0,$t3,$t0 +/* 1af3c: 8fa80000 */ lw $t0,0x0($sp) +/* 1af40: 8fa90004 */ lw $t1,0x4($sp) +/* 1af44: 8fab0008 */ lw $t3,0x8($sp) +/* 1af48: 8fbf000c */ lw $ra,0xc($sp) +/* 1af4c: 03e00008 */ jr $ra +/* 1af50: 27bd0010 */ addiu $sp,$sp,0x10 +); +#endif + GLOBAL_ASM( glabel func00019ddc /* 19ddc: afbf07ac */ sw $ra,0x7ac($sp) diff --git a/src/lib/lib_24e40.c b/src/lib/lib_24e40.c index e2014acd4..1b596e8fc 100644 --- a/src/lib/lib_24e40.c +++ b/src/lib/lib_24e40.c @@ -1301,6 +1301,24 @@ glabel func00025c74 /* 25f8c: 00000000 */ nop ); +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func00027370nb +/* 27370: 44856000 */ mtc1 $a1,$f12 +/* 27374: 44867000 */ mtc1 $a2,$f14 +/* 27378: 27bdffe8 */ addiu $sp,$sp,-24 +/* 2737c: afbf0014 */ sw $ra,0x14($sp) +/* 27380: 44056000 */ mfc1 $a1,$f12 +/* 27384: 44067000 */ mfc1 $a2,$f14 +/* 27388: 0c009c15 */ jal 0x27054 +/* 2738c: 24070001 */ addiu $a3,$zero,0x1 +/* 27390: 8fbf0014 */ lw $ra,0x14($sp) +/* 27394: 27bd0018 */ addiu $sp,$sp,0x18 +/* 27398: 03e00008 */ jr $ra +/* 2739c: 00000000 */ sll $zero,$zero,0x0 +); +#endif + GLOBAL_ASM( glabel func00025f90 /* 25f90: 27bdffd8 */ addiu $sp,$sp,-40 @@ -2055,6 +2073,78 @@ glabel platformGetRidingProps /* 26a00: 27bd0278 */ addiu $sp,$sp,0x278 ); +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func00027e18nb +/* 27e14: 27bdffc8 */ addiu $sp,$sp,-56 +/* 27e18: 44856000 */ mtc1 $a1,$f12 +/* 27e1c: 44867000 */ mtc1 $a2,$f14 +/* 27e20: afbf0014 */ sw $ra,0x14($sp) +/* 27e24: 27a60030 */ addiu $a2,$sp,0x30 +/* 27e28: 27a50034 */ addiu $a1,$sp,0x34 +/* 27e2c: e7ac003c */ swc1 $f12,0x3c($sp) +/* 27e30: 0fc1953e */ jal 0xf0654f8 +/* 27e34: e7ae0040 */ swc1 $f14,0x40($sp) +/* 27e38: c7ac003c */ lwc1 $f12,0x3c($sp) +/* 27e3c: 1040002c */ beqz $v0,.NB00027ef0 +/* 27e40: c7ae0040 */ lwc1 $f14,0x40($sp) +/* 27e44: 8fa20034 */ lw $v0,0x34($sp) +/* 27e48: 8fae0030 */ lw $t6,0x30($sp) +/* 27e4c: 24080003 */ addiu $t0,$zero,0x3 +/* 27e50: 24070002 */ addiu $a3,$zero,0x2 +/* 27e54: 004e082b */ sltu $at,$v0,$t6 +/* 27e58: 10200025 */ beqz $at,.NB00027ef0 +/* 27e5c: 2406000c */ addiu $a2,$zero,0xc +/* 27e60: 24050001 */ addiu $a1,$zero,0x1 +/* 27e64: 24040006 */ addiu $a0,$zero,0x6 +/* 27e68: 90430000 */ lbu $v1,0x0($v0) +.NB00027e6c: +/* 27e6c: 14600008 */ bnez $v1,.NB00027e90 +/* 27e70: 00000000 */ sll $zero,$zero,0x0 +/* 27e74: 904f0001 */ lbu $t7,0x1($v0) +/* 27e78: 25f8ffc0 */ addiu $t8,$t7,-64 +/* 27e7c: 03040019 */ multu $t8,$a0 +/* 27e80: 0000c812 */ mflo $t9 +/* 27e84: 00591021 */ addu $v0,$v0,$t9 +/* 27e88: 10000015 */ beqz $zero,.NB00027ee0 +/* 27e8c: 2442018e */ addiu $v0,$v0,0x18e +.NB00027e90: +/* 27e90: 14a30008 */ bne $a1,$v1,.NB00027eb4 +/* 27e94: 00000000 */ sll $zero,$zero,0x0 +/* 27e98: 90490001 */ lbu $t1,0x1($v0) +/* 27e9c: 252affc0 */ addiu $t2,$t1,-64 +/* 27ea0: 01460019 */ multu $t2,$a2 +/* 27ea4: 00005812 */ mflo $t3 +/* 27ea8: 004b1021 */ addu $v0,$v0,$t3 +/* 27eac: 1000000c */ beqz $zero,.NB00027ee0 +/* 27eb0: 24420310 */ addiu $v0,$v0,0x310 +.NB00027eb4: +/* 27eb4: 14e30005 */ bne $a3,$v1,.NB00027ecc +/* 27eb8: 00000000 */ sll $zero,$zero,0x0 +/* 27ebc: e44c0004 */ swc1 $f12,0x4($v0) +/* 27ec0: e44e0008 */ swc1 $f14,0x8($v0) +/* 27ec4: 10000006 */ beqz $zero,.NB00027ee0 +/* 27ec8: 2442004c */ addiu $v0,$v0,0x4c +.NB00027ecc: +/* 27ecc: 55030005 */ bnel $t0,$v1,.NB00027ee4 +/* 27ed0: 8fac0030 */ lw $t4,0x30($sp) +/* 27ed4: e44c0004 */ swc1 $f12,0x4($v0) +/* 27ed8: e44e0008 */ swc1 $f14,0x8($v0) +/* 27edc: 24420018 */ addiu $v0,$v0,0x18 +.NB00027ee0: +/* 27ee0: 8fac0030 */ lw $t4,0x30($sp) +.NB00027ee4: +/* 27ee4: 004c082b */ sltu $at,$v0,$t4 +/* 27ee8: 5420ffe0 */ bnezl $at,.NB00027e6c +/* 27eec: 90430000 */ lbu $v1,0x0($v0) +.NB00027ef0: +/* 27ef0: 8fbf0014 */ lw $ra,0x14($sp) +/* 27ef4: 27bd0038 */ addiu $sp,$sp,0x38 +/* 27ef8: 03e00008 */ jr $ra +/* 27efc: 00000000 */ sll $zero,$zero,0x0 +); +#endif + GLOBAL_ASM( glabel func00026a04 /* 26a04: 27bdffc0 */ addiu $sp,$sp,-64 @@ -4580,6 +4670,7 @@ glabel func0002901c /* 2969c: 27bd0108 */ addiu $sp,$sp,0x108 ); +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func000296a0 /* 296a0: 27bdfef0 */ addiu $sp,$sp,-272 @@ -5228,6 +5319,607 @@ glabel func000296a0 /* 29ff4: 03e00008 */ jr $ra /* 29ff8: 27bd0110 */ addiu $sp,$sp,0x110 ); +#else +GLOBAL_ASM( +glabel func000296a0 +/* 2ab9c: 27bdfef8 */ addiu $sp,$sp,-264 +/* 2aba0: 3c01cf80 */ lui $at,0xcf80 +/* 2aba4: 44812000 */ mtc1 $at,$f4 +/* 2aba8: afbf0074 */ sw $ra,0x74($sp) +/* 2abac: afbe0070 */ sw $s8,0x70($sp) +/* 2abb0: afb7006c */ sw $s7,0x6c($sp) +/* 2abb4: afb60068 */ sw $s6,0x68($sp) +/* 2abb8: afb50064 */ sw $s5,0x64($sp) +/* 2abbc: afb40060 */ sw $s4,0x60($sp) +/* 2abc0: afb3005c */ sw $s3,0x5c($sp) +/* 2abc4: afb20058 */ sw $s2,0x58($sp) +/* 2abc8: afb10054 */ sw $s1,0x54($sp) +/* 2abcc: afb00050 */ sw $s0,0x50($sp) +/* 2abd0: f7be0048 */ sdc1 $f30,0x48($sp) +/* 2abd4: f7bc0040 */ sdc1 $f28,0x40($sp) +/* 2abd8: f7ba0038 */ sdc1 $f26,0x38($sp) +/* 2abdc: f7b80030 */ sdc1 $f24,0x30($sp) +/* 2abe0: f7b60028 */ sdc1 $f22,0x28($sp) +/* 2abe4: f7b40020 */ sdc1 $f20,0x20($sp) +/* 2abe8: afa70114 */ sw $a3,0x114($sp) +/* 2abec: afa000f8 */ sw $zero,0xf8($sp) +/* 2abf0: e7a400fc */ swc1 $f4,0xfc($sp) +/* 2abf4: acc00000 */ sw $zero,0x0($a2) +/* 2abf8: 8c8e0000 */ lw $t6,0x0($a0) +/* 2abfc: 00a09025 */ or $s2,$a1,$zero +/* 2ac00: 00809825 */ or $s3,$a0,$zero +/* 2ac04: 00c0f025 */ or $s8,$a2,$zero +/* 2ac08: 00008025 */ or $s0,$zero,$zero +/* 2ac0c: 00008825 */ or $s1,$zero,$zero +/* 2ac10: 11c00025 */ beqz $t6,.NB0002aca8 +/* 2ac14: 0080b025 */ or $s6,$a0,$zero +/* 2ac18: 8ec70000 */ lw $a3,0x0($s6) +/* 2ac1c: 90e20000 */ lbu $v0,0x0($a3) +.NB0002ac20: +/* 2ac20: 24010001 */ addiu $at,$zero,0x1 +/* 2ac24: 14400013 */ bnez $v0,.NB0002ac74 +/* 2ac28: 00000000 */ sll $zero,$zero,0x0 +/* 2ac2c: 94e20002 */ lhu $v0,0x2($a3) +/* 2ac30: 00e02025 */ or $a0,$a3,$zero +/* 2ac34: 304f4000 */ andi $t7,$v0,0x4000 +/* 2ac38: 51e00004 */ beqzl $t7,.NB0002ac4c +/* 2ac3c: 30580100 */ andi $t8,$v0,0x100 +/* 2ac40: 10000015 */ beqz $zero,.NB0002ac98 +/* 2ac44: aec00004 */ sw $zero,0x4($s6) +/* 2ac48: 30580100 */ andi $t8,$v0,0x100 +.NB0002ac4c: +/* 2ac4c: 53000003 */ beqzl $t8,.NB0002ac5c +/* 2ac50: 8e450000 */ lw $a1,0x0($s2) +/* 2ac54: 24110001 */ addiu $s1,$zero,0x1 +/* 2ac58: 8e450000 */ lw $a1,0x0($s2) +.NB0002ac5c: +/* 2ac5c: 0c009da6 */ jal 0x27698 +/* 2ac60: 8e460008 */ lw $a2,0x8($s2) +/* 2ac64: 1040000c */ beqz $v0,.NB0002ac98 +/* 2ac68: aec20004 */ sw $v0,0x4($s6) +/* 2ac6c: 1000000a */ beqz $zero,.NB0002ac98 +/* 2ac70: 24100001 */ addiu $s0,$zero,0x1 +.NB0002ac74: +/* 2ac74: 54410009 */ bnel $v0,$at,.NB0002ac9c +/* 2ac78: 8ec70014 */ lw $a3,0x14($s6) +/* 2ac7c: 00e02025 */ or $a0,$a3,$zero +/* 2ac80: 8e450000 */ lw $a1,0x0($s2) +/* 2ac84: 0c009dfd */ jal 0x277f4 +/* 2ac88: 8e460008 */ lw $a2,0x8($s2) +/* 2ac8c: 10400002 */ beqz $v0,.NB0002ac98 +/* 2ac90: aec20004 */ sw $v0,0x4($s6) +/* 2ac94: 24100001 */ addiu $s0,$zero,0x1 +.NB0002ac98: +/* 2ac98: 8ec70014 */ lw $a3,0x14($s6) +.NB0002ac9c: +/* 2ac9c: 26d60014 */ addiu $s6,$s6,0x14 +/* 2aca0: 54e0ffdf */ bnezl $a3,.NB0002ac20 +/* 2aca4: 90e20000 */ lbu $v0,0x0($a3) +.NB0002aca8: +/* 2aca8: 52000065 */ beqzl $s0,.NB0002ae40 +/* 2acac: 8faa00f8 */ lw $t2,0xf8($sp) +/* 2acb0: 8e620000 */ lw $v0,0x0($s3) +/* 2acb4: 0260b025 */ or $s6,$s3,$zero +/* 2acb8: 1040003a */ beqz $v0,.NB0002ada4 +/* 2acbc: 00000000 */ sll $zero,$zero,0x0 +/* 2acc0: 8ed90004 */ lw $t9,0x4($s6) +.NB0002acc4: +/* 2acc4: 53200032 */ beqzl $t9,.NB0002ad90 +/* 2acc8: 8ecc0014 */ lw $t4,0x14($s6) +/* 2accc: 8ec70000 */ lw $a3,0x0($s6) +/* 2acd0: 24010001 */ addiu $at,$zero,0x1 +/* 2acd4: 90e20000 */ lbu $v0,0x0($a3) +/* 2acd8: 14400018 */ bnez $v0,.NB0002ad3c +/* 2acdc: 00000000 */ sll $zero,$zero,0x0 +/* 2ace0: 94e80002 */ lhu $t0,0x2($a3) +/* 2ace4: 31092000 */ andi $t1,$t0,0x2000 +/* 2ace8: 55200029 */ bnezl $t1,.NB0002ad90 +/* 2acec: 8ecc0014 */ lw $t4,0x14($s6) +/* 2acf0: 00e02025 */ or $a0,$a3,$zero +/* 2acf4: 8e450000 */ lw $a1,0x0($s2) +/* 2acf8: 0c009ce8 */ jal 0x273a0 +/* 2acfc: 8e460008 */ lw $a2,0x8($s2) +/* 2ad00: c7a600fc */ lwc1 $f6,0xfc($sp) +/* 2ad04: 4600303e */ c.le.s $f6,$f0 +/* 2ad08: 00000000 */ sll $zero,$zero,0x0 +/* 2ad0c: 45020020 */ bc1fl .NB0002ad90 +/* 2ad10: 8ecc0014 */ lw $t4,0x14($s6) +/* 2ad14: c6480004 */ lwc1 $f8,0x4($s2) +/* 2ad18: 240a0001 */ addiu $t2,$zero,0x1 +/* 2ad1c: 4608003c */ c.lt.s $f0,$f8 +/* 2ad20: 00000000 */ sll $zero,$zero,0x0 +/* 2ad24: 4502001a */ bc1fl .NB0002ad90 +/* 2ad28: 8ecc0014 */ lw $t4,0x14($s6) +/* 2ad2c: e7a000fc */ swc1 $f0,0xfc($sp) +/* 2ad30: afd60000 */ sw $s6,0x0($s8) +/* 2ad34: 10000015 */ beqz $zero,.NB0002ad8c +/* 2ad38: afaa00f8 */ sw $t2,0xf8($sp) +.NB0002ad3c: +/* 2ad3c: 54410014 */ bnel $v0,$at,.NB0002ad90 +/* 2ad40: 8ecc0014 */ lw $t4,0x14($s6) +/* 2ad44: 00e02025 */ or $a0,$a3,$zero +/* 2ad48: 8e450000 */ lw $a1,0x0($s2) +/* 2ad4c: 0c009d37 */ jal 0x274dc +/* 2ad50: 8e460008 */ lw $a2,0x8($s2) +/* 2ad54: c7aa00fc */ lwc1 $f10,0xfc($sp) +/* 2ad58: 4600503e */ c.le.s $f10,$f0 +/* 2ad5c: 00000000 */ sll $zero,$zero,0x0 +/* 2ad60: 4502000b */ bc1fl .NB0002ad90 +/* 2ad64: 8ecc0014 */ lw $t4,0x14($s6) +/* 2ad68: c6500004 */ lwc1 $f16,0x4($s2) +/* 2ad6c: 240b0001 */ addiu $t3,$zero,0x1 +/* 2ad70: 4610003c */ c.lt.s $f0,$f16 +/* 2ad74: 00000000 */ sll $zero,$zero,0x0 +/* 2ad78: 45020005 */ bc1fl .NB0002ad90 +/* 2ad7c: 8ecc0014 */ lw $t4,0x14($s6) +/* 2ad80: e7a000fc */ swc1 $f0,0xfc($sp) +/* 2ad84: afd60000 */ sw $s6,0x0($s8) +/* 2ad88: afab00f8 */ sw $t3,0xf8($sp) +.NB0002ad8c: +/* 2ad8c: 8ecc0014 */ lw $t4,0x14($s6) +.NB0002ad90: +/* 2ad90: 26d60014 */ addiu $s6,$s6,0x14 +/* 2ad94: 5580ffcb */ bnezl $t4,.NB0002acc4 +/* 2ad98: 8ed90004 */ lw $t9,0x4($s6) +/* 2ad9c: 0260b025 */ or $s6,$s3,$zero +/* 2ada0: 8e620000 */ lw $v0,0x0($s3) +.NB0002ada4: +/* 2ada4: 50400026 */ beqzl $v0,.NB0002ae40 +/* 2ada8: 8faa00f8 */ lw $t2,0xf8($sp) +/* 2adac: 8ecd0004 */ lw $t5,0x4($s6) +.NB0002adb0: +/* 2adb0: 51a0001f */ beqzl $t5,.NB0002ae30 +/* 2adb4: 8ec90014 */ lw $t1,0x14($s6) +/* 2adb8: 8ec70000 */ lw $a3,0x0($s6) +/* 2adbc: 90ee0000 */ lbu $t6,0x0($a3) +/* 2adc0: 55c0001b */ bnezl $t6,.NB0002ae30 +/* 2adc4: 8ec90014 */ lw $t1,0x14($s6) +/* 2adc8: 94ef0002 */ lhu $t7,0x2($a3) +/* 2adcc: 31f82000 */ andi $t8,$t7,0x2000 +/* 2add0: 53000017 */ beqzl $t8,.NB0002ae30 +/* 2add4: 8ec90014 */ lw $t1,0x14($s6) +/* 2add8: 00e02025 */ or $a0,$a3,$zero +/* 2addc: 8e450000 */ lw $a1,0x0($s2) +/* 2ade0: 0c009ce8 */ jal 0x273a0 +/* 2ade4: 8e460008 */ lw $a2,0x8($s2) +/* 2ade8: c7b200fc */ lwc1 $f18,0xfc($sp) +/* 2adec: 4600903e */ c.le.s $f18,$f0 +/* 2adf0: 00000000 */ sll $zero,$zero,0x0 +/* 2adf4: 4502000e */ bc1fl .NB0002ae30 +/* 2adf8: 8ec90014 */ lw $t1,0x14($s6) +/* 2adfc: c6440004 */ lwc1 $f4,0x4($s2) +/* 2ae00: 4604003c */ c.lt.s $f0,$f4 +/* 2ae04: 00000000 */ sll $zero,$zero,0x0 +/* 2ae08: 45030005 */ bc1tl .NB0002ae20 +/* 2ae0c: e7a000fc */ swc1 $f0,0xfc($sp) +/* 2ae10: 8fb900f8 */ lw $t9,0xf8($sp) +/* 2ae14: 57200006 */ bnezl $t9,.NB0002ae30 +/* 2ae18: 8ec90014 */ lw $t1,0x14($s6) +/* 2ae1c: e7a000fc */ swc1 $f0,0xfc($sp) +.NB0002ae20: +/* 2ae20: afd60000 */ sw $s6,0x0($s8) +/* 2ae24: 24080001 */ addiu $t0,$zero,0x1 +/* 2ae28: afa800f8 */ sw $t0,0xf8($sp) +/* 2ae2c: 8ec90014 */ lw $t1,0x14($s6) +.NB0002ae30: +/* 2ae30: 26d60014 */ addiu $s6,$s6,0x14 +/* 2ae34: 5520ffde */ bnezl $t1,.NB0002adb0 +/* 2ae38: 8ecd0004 */ lw $t5,0x4($s6) +/* 2ae3c: 8faa00f8 */ lw $t2,0xf8($sp) +.NB0002ae40: +/* 2ae40: 3c014f80 */ lui $at,0x4f80 +/* 2ae44: 51400004 */ beqzl $t2,.NB0002ae58 +/* 2ae48: 44813000 */ mtc1 $at,$f6 +/* 2ae4c: 5220016b */ beqzl $s1,.NB0002b3fc +/* 2ae50: 8fbf0074 */ lw $ra,0x74($sp) +/* 2ae54: 44813000 */ mtc1 $at,$f6 +.NB0002ae58: +/* 2ae58: 0260b025 */ or $s6,$s3,$zero +/* 2ae5c: e7a600e4 */ swc1 $f6,0xe4($sp) +/* 2ae60: 8e6b0000 */ lw $t3,0x0($s3) +/* 2ae64: 51600165 */ beqzl $t3,.NB0002b3fc +/* 2ae68: 8fbf0074 */ lw $ra,0x74($sp) +/* 2ae6c: 8ecc0004 */ lw $t4,0x4($s6) +.NB0002ae70: +/* 2ae70: 8fad00f8 */ lw $t5,0xf8($sp) +/* 2ae74: 5580015d */ bnezl $t4,.NB0002b3ec +/* 2ae78: 8ec80014 */ lw $t0,0x14($s6) +/* 2ae7c: 11a00008 */ beqz $t5,.NB0002aea0 +/* 2ae80: 8ec70000 */ lw $a3,0x0($s6) +/* 2ae84: 90ee0000 */ lbu $t6,0x0($a3) +/* 2ae88: 55c00158 */ bnezl $t6,.NB0002b3ec +/* 2ae8c: 8ec80014 */ lw $t0,0x14($s6) +/* 2ae90: 94ef0002 */ lhu $t7,0x2($a3) +/* 2ae94: 31f80100 */ andi $t8,$t7,0x100 +/* 2ae98: 53000154 */ beqzl $t8,.NB0002b3ec +/* 2ae9c: 8ec80014 */ lw $t0,0x14($s6) +.NB0002aea0: +/* 2aea0: 90e20000 */ lbu $v0,0x0($a3) +/* 2aea4: 544000ba */ bnezl $v0,.NB0002b190 +/* 2aea8: 24010001 */ addiu $at,$zero,0x1 +/* 2aeac: 90f70001 */ lbu $s7,0x1($a3) +/* 2aeb0: 00e0a025 */ or $s4,$a3,$zero +/* 2aeb4: 00008825 */ or $s1,$zero,$zero +/* 2aeb8: 1ae0014b */ blez $s7,.NB0002b3e8 +/* 2aebc: 00e09825 */ or $s3,$a3,$zero +.NB0002aec0: +/* 2aec0: 26350001 */ addiu $s5,$s1,0x1 +/* 2aec4: 02b7001a */ div $zero,$s5,$s7 +/* 2aec8: 00004810 */ mfhi $t1 +/* 2aecc: 00095080 */ sll $t2,$t1,0x2 +/* 2aed0: 01495023 */ subu $t2,$t2,$t1 +/* 2aed4: 000a5040 */ sll $t2,$t2,0x1 +/* 2aed8: 028a8021 */ addu $s0,$s4,$t2 +/* 2aedc: 860b000e */ lh $t3,0xe($s0) +/* 2aee0: 860c0012 */ lh $t4,0x12($s0) +/* 2aee4: 8679000e */ lh $t9,0xe($s3) +/* 2aee8: 86680012 */ lh $t0,0x12($s3) +/* 2aeec: 448b8000 */ mtc1 $t3,$f16 +/* 2aef0: 448c9000 */ mtc1 $t4,$f18 +/* 2aef4: 44994000 */ mtc1 $t9,$f8 +/* 2aef8: 44885000 */ mtc1 $t0,$f10 +/* 2aefc: 468086a0 */ cvt.s.w $f26,$f16 +/* 2af00: c6440000 */ lwc1 $f4,0x0($s2) +/* 2af04: e7a40010 */ swc1 $f4,0x10($sp) +/* 2af08: 46809720 */ cvt.s.w $f28,$f18 +/* 2af0c: c6460008 */ lwc1 $f6,0x8($s2) +/* 2af10: 4406d000 */ mfc1 $a2,$f26 +/* 2af14: e7a60014 */ swc1 $f6,0x14($sp) +/* 2af18: 468045a0 */ cvt.s.w $f22,$f8 +/* 2af1c: 4407e000 */ mfc1 $a3,$f28 +/* 2af20: 46805620 */ cvt.s.w $f24,$f10 +/* 2af24: 16e00002 */ bnez $s7,.NB0002af30 +/* 2af28: 00000000 */ sll $zero,$zero,0x0 +/* 2af2c: 0007000d */ break 0x7 +.NB0002af30: +/* 2af30: 2401ffff */ addiu $at,$zero,-1 +/* 2af34: 16e10004 */ bne $s7,$at,.NB0002af48 +/* 2af38: 3c018000 */ lui $at,0x8000 +/* 2af3c: 16a10002 */ bne $s5,$at,.NB0002af48 +/* 2af40: 00000000 */ sll $zero,$zero,0x0 +/* 2af44: 0006000d */ break 0x6 +.NB0002af48: +/* 2af48: 4600c386 */ mov.s $f14,$f24 +/* 2af4c: 0c009a8d */ jal 0x26a34 +/* 2af50: 4600b306 */ mov.s $f12,$f22 +/* 2af54: 44804000 */ mtc1 $zero,$f8 +/* 2af58: e7a000d4 */ swc1 $f0,0xd4($sp) +/* 2af5c: 46000786 */ mov.s $f30,$f0 +/* 2af60: 4608003c */ c.lt.s $f0,$f8 +/* 2af64: c7aa00e4 */ lwc1 $f10,0xe4($sp) +/* 2af68: 45020003 */ bc1fl .NB0002af78 +/* 2af6c: 460af03c */ c.lt.s $f30,$f10 +/* 2af70: 46000787 */ neg.s $f30,$f0 +/* 2af74: 460af03c */ c.lt.s $f30,$f10 +.NB0002af78: +/* 2af78: 00000000 */ sll $zero,$zero,0x0 +/* 2af7c: 4502007f */ bc1fl .NB0002b17c +/* 2af80: 02a08825 */ or $s1,$s5,$zero +/* 2af84: c6500000 */ lwc1 $f16,0x0($s2) +/* 2af88: 4406d000 */ mfc1 $a2,$f26 +/* 2af8c: 4407e000 */ mfc1 $a3,$f28 +/* 2af90: e7b00010 */ swc1 $f16,0x10($sp) +/* 2af94: c6520008 */ lwc1 $f18,0x8($s2) +/* 2af98: 4600b306 */ mov.s $f12,$f22 +/* 2af9c: 4600c386 */ mov.s $f14,$f24 +/* 2afa0: 0c009ad5 */ jal 0x26b54 +/* 2afa4: e7b20014 */ swc1 $f18,0x14($sp) +/* 2afa8: 50400028 */ beqzl $v0,.NB0002b04c +/* 2afac: 4600b306 */ mov.s $f12,$f22 +/* 2afb0: 4616d001 */ sub.s $f0,$f26,$f22 +/* 2afb4: 4618e501 */ sub.s $f20,$f28,$f24 +/* 2afb8: 46000102 */ mul.s $f4,$f0,$f0 +/* 2afbc: e7a000b8 */ swc1 $f0,0xb8($sp) +/* 2afc0: 4614a182 */ mul.s $f6,$f20,$f20 +/* 2afc4: 0c012e84 */ jal 0x4ba10 +/* 2afc8: 46062300 */ add.s $f12,$f4,$f6 +/* 2afcc: c7a800d4 */ lwc1 $f8,0xd4($sp) +/* 2afd0: 4600a407 */ neg.s $f16,$f20 +/* 2afd4: c7a600b8 */ lwc1 $f6,0xb8($sp) +/* 2afd8: 46004383 */ div.s $f14,$f8,$f0 +/* 2afdc: c64a0000 */ lwc1 $f10,0x0($s2) +/* 2afe0: c6440008 */ lwc1 $f4,0x8($s2) +/* 2afe4: 02802025 */ or $a0,$s4,$zero +/* 2afe8: 02203825 */ or $a3,$s1,$zero +/* 2afec: 46107482 */ mul.s $f18,$f14,$f16 +/* 2aff0: 00000000 */ sll $zero,$zero,0x0 +/* 2aff4: 46067202 */ mul.s $f8,$f14,$f6 +/* 2aff8: 46125080 */ add.s $f2,$f10,$f18 +/* 2affc: 46082300 */ add.s $f12,$f4,$f8 +/* 2b000: 44051000 */ mfc1 $a1,$f2 +/* 2b004: 44066000 */ mfc1 $a2,$f12 +/* 2b008: 0c009c15 */ jal 0x27054 +/* 2b00c: 00000000 */ sll $zero,$zero,0x0 +/* 2b010: c6500004 */ lwc1 $f16,0x4($s2) +/* 2b014: 4610003c */ c.lt.s $f0,$f16 +/* 2b018: 00000000 */ sll $zero,$zero,0x0 +/* 2b01c: 45030007 */ bc1tl .NB0002b03c +/* 2b020: e7a000fc */ swc1 $f0,0xfc($sp) +/* 2b024: 8ecd0000 */ lw $t5,0x0($s6) +/* 2b028: 95ae0002 */ lhu $t6,0x2($t5) +/* 2b02c: 31cf2000 */ andi $t7,$t6,0x2000 +/* 2b030: 51e00052 */ beqzl $t7,.NB0002b17c +/* 2b034: 02a08825 */ or $s1,$s5,$zero +/* 2b038: e7a000fc */ swc1 $f0,0xfc($sp) +.NB0002b03c: +/* 2b03c: afd60000 */ sw $s6,0x0($s8) +/* 2b040: 1000004d */ beqz $zero,.NB0002b178 +/* 2b044: e7be00e4 */ swc1 $f30,0xe4($sp) +/* 2b048: 4600b306 */ mov.s $f12,$f22 +.NB0002b04c: +/* 2b04c: 4600c386 */ mov.s $f14,$f24 +/* 2b050: 8e460000 */ lw $a2,0x0($s2) +/* 2b054: 0c009ac1 */ jal 0x26b04 +/* 2b058: 8e470008 */ lw $a3,0x8($s2) +/* 2b05c: 46000506 */ mov.s $f20,$f0 +/* 2b060: 4600d306 */ mov.s $f12,$f26 +/* 2b064: 4600e386 */ mov.s $f14,$f28 +/* 2b068: 8e460000 */ lw $a2,0x0($s2) +/* 2b06c: 0c009ac1 */ jal 0x26b04 +/* 2b070: 8e470008 */ lw $a3,0x8($s2) +/* 2b074: 4600a03c */ c.lt.s $f20,$f0 +/* 2b078: 46000586 */ mov.s $f22,$f0 +/* 2b07c: 45020021 */ bc1fl .NB0002b104 +/* 2b080: c7a800e4 */ lwc1 $f8,0xe4($sp) +/* 2b084: c7aa00e4 */ lwc1 $f10,0xe4($sp) +/* 2b088: 460aa03c */ c.lt.s $f20,$f10 +/* 2b08c: 00000000 */ sll $zero,$zero,0x0 +/* 2b090: 4502003a */ bc1fl .NB0002b17c +/* 2b094: 02a08825 */ or $s1,$s5,$zero +/* 2b098: 8678000e */ lh $t8,0xe($s3) +/* 2b09c: 86790012 */ lh $t9,0x12($s3) +/* 2b0a0: 02802025 */ or $a0,$s4,$zero +/* 2b0a4: 44989000 */ mtc1 $t8,$f18 +/* 2b0a8: 44993000 */ mtc1 $t9,$f6 +/* 2b0ac: 02203825 */ or $a3,$s1,$zero +/* 2b0b0: 468090a0 */ cvt.s.w $f2,$f18 +/* 2b0b4: 46803320 */ cvt.s.w $f12,$f6 +/* 2b0b8: 44051000 */ mfc1 $a1,$f2 +/* 2b0bc: 44066000 */ mfc1 $a2,$f12 +/* 2b0c0: 0c009c15 */ jal 0x27054 +/* 2b0c4: 00000000 */ sll $zero,$zero,0x0 +/* 2b0c8: c6440004 */ lwc1 $f4,0x4($s2) +/* 2b0cc: 4604003c */ c.lt.s $f0,$f4 +/* 2b0d0: 00000000 */ sll $zero,$zero,0x0 +/* 2b0d4: 45030007 */ bc1tl .NB0002b0f4 +/* 2b0d8: e7a000fc */ swc1 $f0,0xfc($sp) +/* 2b0dc: 8ec80000 */ lw $t0,0x0($s6) +/* 2b0e0: 95090002 */ lhu $t1,0x2($t0) +/* 2b0e4: 312a2000 */ andi $t2,$t1,0x2000 +/* 2b0e8: 51400024 */ beqzl $t2,.NB0002b17c +/* 2b0ec: 02a08825 */ or $s1,$s5,$zero +/* 2b0f0: e7a000fc */ swc1 $f0,0xfc($sp) +.NB0002b0f4: +/* 2b0f4: afd60000 */ sw $s6,0x0($s8) +/* 2b0f8: 1000001f */ beqz $zero,.NB0002b178 +/* 2b0fc: e7b400e4 */ swc1 $f20,0xe4($sp) +/* 2b100: c7a800e4 */ lwc1 $f8,0xe4($sp) +.NB0002b104: +/* 2b104: 4608003c */ c.lt.s $f0,$f8 +/* 2b108: 00000000 */ sll $zero,$zero,0x0 +/* 2b10c: 4502001b */ bc1fl .NB0002b17c +/* 2b110: 02a08825 */ or $s1,$s5,$zero +/* 2b114: 860b000e */ lh $t3,0xe($s0) +/* 2b118: 860c0012 */ lh $t4,0x12($s0) +/* 2b11c: 02802025 */ or $a0,$s4,$zero +/* 2b120: 448b8000 */ mtc1 $t3,$f16 +/* 2b124: 448c5000 */ mtc1 $t4,$f10 +/* 2b128: 02203825 */ or $a3,$s1,$zero +/* 2b12c: 468080a0 */ cvt.s.w $f2,$f16 +/* 2b130: 46805320 */ cvt.s.w $f12,$f10 +/* 2b134: 44051000 */ mfc1 $a1,$f2 +/* 2b138: 44066000 */ mfc1 $a2,$f12 +/* 2b13c: 0c009c15 */ jal 0x27054 +/* 2b140: 00000000 */ sll $zero,$zero,0x0 +/* 2b144: c6520004 */ lwc1 $f18,0x4($s2) +/* 2b148: 4612003c */ c.lt.s $f0,$f18 +/* 2b14c: 00000000 */ sll $zero,$zero,0x0 +/* 2b150: 45030007 */ bc1tl .NB0002b170 +/* 2b154: e7a000fc */ swc1 $f0,0xfc($sp) +/* 2b158: 8ecd0000 */ lw $t5,0x0($s6) +/* 2b15c: 95ae0002 */ lhu $t6,0x2($t5) +/* 2b160: 31cf2000 */ andi $t7,$t6,0x2000 +/* 2b164: 51e00005 */ beqzl $t7,.NB0002b17c +/* 2b168: 02a08825 */ or $s1,$s5,$zero +/* 2b16c: e7a000fc */ swc1 $f0,0xfc($sp) +.NB0002b170: +/* 2b170: afd60000 */ sw $s6,0x0($s8) +/* 2b174: e7b600e4 */ swc1 $f22,0xe4($sp) +.NB0002b178: +/* 2b178: 02a08825 */ or $s1,$s5,$zero +.NB0002b17c: +/* 2b17c: 16b7ff50 */ bne $s5,$s7,.NB0002aec0 +/* 2b180: 26730006 */ addiu $s3,$s3,0x6 +/* 2b184: 10000099 */ beqz $zero,.NB0002b3ec +/* 2b188: 8ec80014 */ lw $t0,0x14($s6) +/* 2b18c: 24010001 */ addiu $at,$zero,0x1 +.NB0002b190: +/* 2b190: 54410096 */ bnel $v0,$at,.NB0002b3ec +/* 2b194: 8ec80014 */ lw $t0,0x14($s6) +/* 2b198: 90f50001 */ lbu $s5,0x1($a3) +/* 2b19c: 00e09825 */ or $s3,$a3,$zero +/* 2b1a0: 00001025 */ or $v0,$zero,$zero +/* 2b1a4: 1aa00090 */ blez $s5,.NB0002b3e8 +/* 2b1a8: 00e08825 */ or $s1,$a3,$zero +.NB0002b1ac: +/* 2b1ac: 24540001 */ addiu $s4,$v0,0x1 +/* 2b1b0: 0295001a */ div $zero,$s4,$s5 +/* 2b1b4: 0000c010 */ mfhi $t8 +/* 2b1b8: 0018c880 */ sll $t9,$t8,0x2 +/* 2b1bc: 0338c823 */ subu $t9,$t9,$t8 +/* 2b1c0: 0019c880 */ sll $t9,$t9,0x2 +/* 2b1c4: 02798021 */ addu $s0,$s3,$t9 +/* 2b1c8: c6460000 */ lwc1 $f6,0x0($s2) +/* 2b1cc: c61a0010 */ lwc1 $f26,0x10($s0) +/* 2b1d0: c61c0018 */ lwc1 $f28,0x18($s0) +/* 2b1d4: c6360010 */ lwc1 $f22,0x10($s1) +/* 2b1d8: c6380018 */ lwc1 $f24,0x18($s1) +/* 2b1dc: e7a60010 */ swc1 $f6,0x10($sp) +/* 2b1e0: c6440008 */ lwc1 $f4,0x8($s2) +/* 2b1e4: 16a00002 */ bnez $s5,.NB0002b1f0 +/* 2b1e8: 00000000 */ sll $zero,$zero,0x0 +/* 2b1ec: 0007000d */ break 0x7 +.NB0002b1f0: +/* 2b1f0: 2401ffff */ addiu $at,$zero,-1 +/* 2b1f4: 16a10004 */ bne $s5,$at,.NB0002b208 +/* 2b1f8: 3c018000 */ lui $at,0x8000 +/* 2b1fc: 16810002 */ bne $s4,$at,.NB0002b208 +/* 2b200: 00000000 */ sll $zero,$zero,0x0 +/* 2b204: 0006000d */ break 0x6 +.NB0002b208: +/* 2b208: 4406d000 */ mfc1 $a2,$f26 +/* 2b20c: 4407e000 */ mfc1 $a3,$f28 +/* 2b210: 4600b306 */ mov.s $f12,$f22 +/* 2b214: 4600c386 */ mov.s $f14,$f24 +/* 2b218: 0c009a8d */ jal 0x26a34 +/* 2b21c: e7a40014 */ swc1 $f4,0x14($sp) +/* 2b220: 44804000 */ mtc1 $zero,$f8 +/* 2b224: e7a00098 */ swc1 $f0,0x98($sp) +/* 2b228: 46000786 */ mov.s $f30,$f0 +/* 2b22c: 4608003c */ c.lt.s $f0,$f8 +/* 2b230: c7b000e4 */ lwc1 $f16,0xe4($sp) +/* 2b234: 45020003 */ bc1fl .NB0002b244 +/* 2b238: 4610f03c */ c.lt.s $f30,$f16 +/* 2b23c: 46000787 */ neg.s $f30,$f0 +/* 2b240: 4610f03c */ c.lt.s $f30,$f16 +.NB0002b244: +/* 2b244: 00000000 */ sll $zero,$zero,0x0 +/* 2b248: 45020065 */ bc1fl .NB0002b3e0 +/* 2b24c: 02801025 */ or $v0,$s4,$zero +/* 2b250: c64a0000 */ lwc1 $f10,0x0($s2) +/* 2b254: 4406d000 */ mfc1 $a2,$f26 +/* 2b258: 4407e000 */ mfc1 $a3,$f28 +/* 2b25c: e7aa0010 */ swc1 $f10,0x10($sp) +/* 2b260: c6520008 */ lwc1 $f18,0x8($s2) +/* 2b264: 4600b306 */ mov.s $f12,$f22 +/* 2b268: 4600c386 */ mov.s $f14,$f24 +/* 2b26c: 0c009ad5 */ jal 0x26b54 +/* 2b270: e7b20014 */ swc1 $f18,0x14($sp) +/* 2b274: 50400022 */ beqzl $v0,.NB0002b300 +/* 2b278: 4600b306 */ mov.s $f12,$f22 +/* 2b27c: 4616d001 */ sub.s $f0,$f26,$f22 +/* 2b280: 4618e501 */ sub.s $f20,$f28,$f24 +/* 2b284: 46000182 */ mul.s $f6,$f0,$f0 +/* 2b288: e7a0007c */ swc1 $f0,0x7c($sp) +/* 2b28c: 4614a102 */ mul.s $f4,$f20,$f20 +/* 2b290: 0c012e84 */ jal 0x4ba10 +/* 2b294: 46043300 */ add.s $f12,$f6,$f4 +/* 2b298: c7a80098 */ lwc1 $f8,0x98($sp) +/* 2b29c: 4600a287 */ neg.s $f10,$f20 +/* 2b2a0: c7a4007c */ lwc1 $f4,0x7c($sp) +/* 2b2a4: 46004383 */ div.s $f14,$f8,$f0 +/* 2b2a8: c6500000 */ lwc1 $f16,0x0($s2) +/* 2b2ac: c6460008 */ lwc1 $f6,0x8($s2) +/* 2b2b0: 02602025 */ or $a0,$s3,$zero +/* 2b2b4: 460a7482 */ mul.s $f18,$f14,$f10 +/* 2b2b8: 00000000 */ sll $zero,$zero,0x0 +/* 2b2bc: 46047202 */ mul.s $f8,$f14,$f4 +/* 2b2c0: 46128080 */ add.s $f2,$f16,$f18 +/* 2b2c4: 46083300 */ add.s $f12,$f6,$f8 +/* 2b2c8: 44051000 */ mfc1 $a1,$f2 +/* 2b2cc: 44066000 */ mfc1 $a2,$f12 +/* 2b2d0: 0c009d37 */ jal 0x274dc +/* 2b2d4: 00000000 */ sll $zero,$zero,0x0 +/* 2b2d8: c64a0004 */ lwc1 $f10,0x4($s2) +/* 2b2dc: 460a003c */ c.lt.s $f0,$f10 +/* 2b2e0: 00000000 */ sll $zero,$zero,0x0 +/* 2b2e4: 4502003e */ bc1fl .NB0002b3e0 +/* 2b2e8: 02801025 */ or $v0,$s4,$zero +/* 2b2ec: e7a000fc */ swc1 $f0,0xfc($sp) +/* 2b2f0: afd60000 */ sw $s6,0x0($s8) +/* 2b2f4: 10000039 */ beqz $zero,.NB0002b3dc +/* 2b2f8: e7be00e4 */ swc1 $f30,0xe4($sp) +/* 2b2fc: 4600b306 */ mov.s $f12,$f22 +.NB0002b300: +/* 2b300: 4600c386 */ mov.s $f14,$f24 +/* 2b304: 8e460000 */ lw $a2,0x0($s2) +/* 2b308: 0c009ac1 */ jal 0x26b04 +/* 2b30c: 8e470008 */ lw $a3,0x8($s2) +/* 2b310: 46000506 */ mov.s $f20,$f0 +/* 2b314: 4600d306 */ mov.s $f12,$f26 +/* 2b318: 4600e386 */ mov.s $f14,$f28 +/* 2b31c: 8e460000 */ lw $a2,0x0($s2) +/* 2b320: 0c009ac1 */ jal 0x26b04 +/* 2b324: 8e470008 */ lw $a3,0x8($s2) +/* 2b328: 4600a03c */ c.lt.s $f20,$f0 +/* 2b32c: 46000586 */ mov.s $f22,$f0 +/* 2b330: 45020017 */ bc1fl .NB0002b390 +/* 2b334: c7a400e4 */ lwc1 $f4,0xe4($sp) +/* 2b338: c7b000e4 */ lwc1 $f16,0xe4($sp) +/* 2b33c: 4610a03c */ c.lt.s $f20,$f16 +/* 2b340: 00000000 */ sll $zero,$zero,0x0 +/* 2b344: 45020026 */ bc1fl .NB0002b3e0 +/* 2b348: 02801025 */ or $v0,$s4,$zero +/* 2b34c: c6220010 */ lwc1 $f2,0x10($s1) +/* 2b350: c62c0018 */ lwc1 $f12,0x18($s1) +/* 2b354: 02602025 */ or $a0,$s3,$zero +/* 2b358: 44051000 */ mfc1 $a1,$f2 +/* 2b35c: 44066000 */ mfc1 $a2,$f12 +/* 2b360: 0c009d37 */ jal 0x274dc +/* 2b364: 00000000 */ sll $zero,$zero,0x0 +/* 2b368: c6520004 */ lwc1 $f18,0x4($s2) +/* 2b36c: 4612003c */ c.lt.s $f0,$f18 +/* 2b370: 00000000 */ sll $zero,$zero,0x0 +/* 2b374: 4502001a */ bc1fl .NB0002b3e0 +/* 2b378: 02801025 */ or $v0,$s4,$zero +/* 2b37c: e7a000fc */ swc1 $f0,0xfc($sp) +/* 2b380: afd60000 */ sw $s6,0x0($s8) +/* 2b384: 10000015 */ beqz $zero,.NB0002b3dc +/* 2b388: e7b400e4 */ swc1 $f20,0xe4($sp) +/* 2b38c: c7a400e4 */ lwc1 $f4,0xe4($sp) +.NB0002b390: +/* 2b390: 4604003c */ c.lt.s $f0,$f4 +/* 2b394: 00000000 */ sll $zero,$zero,0x0 +/* 2b398: 45020011 */ bc1fl .NB0002b3e0 +/* 2b39c: 02801025 */ or $v0,$s4,$zero +/* 2b3a0: c6020010 */ lwc1 $f2,0x10($s0) +/* 2b3a4: c60c0018 */ lwc1 $f12,0x18($s0) +/* 2b3a8: 02602025 */ or $a0,$s3,$zero +/* 2b3ac: 44051000 */ mfc1 $a1,$f2 +/* 2b3b0: 44066000 */ mfc1 $a2,$f12 +/* 2b3b4: 0c009d37 */ jal 0x274dc +/* 2b3b8: 00000000 */ sll $zero,$zero,0x0 +/* 2b3bc: c6460004 */ lwc1 $f6,0x4($s2) +/* 2b3c0: 4606003c */ c.lt.s $f0,$f6 +/* 2b3c4: 00000000 */ sll $zero,$zero,0x0 +/* 2b3c8: 45020005 */ bc1fl .NB0002b3e0 +/* 2b3cc: 02801025 */ or $v0,$s4,$zero +/* 2b3d0: e7a000fc */ swc1 $f0,0xfc($sp) +/* 2b3d4: afd60000 */ sw $s6,0x0($s8) +/* 2b3d8: e7b600e4 */ swc1 $f22,0xe4($sp) +.NB0002b3dc: +/* 2b3dc: 02801025 */ or $v0,$s4,$zero +.NB0002b3e0: +/* 2b3e0: 1695ff72 */ bne $s4,$s5,.NB0002b1ac +/* 2b3e4: 2631000c */ addiu $s1,$s1,0xc +.NB0002b3e8: +/* 2b3e8: 8ec80014 */ lw $t0,0x14($s6) +.NB0002b3ec: +/* 2b3ec: 26d60014 */ addiu $s6,$s6,0x14 +/* 2b3f0: 5500fe9f */ bnezl $t0,.NB0002ae70 +/* 2b3f4: 8ecc0004 */ lw $t4,0x4($s6) +/* 2b3f8: 8fbf0074 */ lw $ra,0x74($sp) +.NB0002b3fc: +/* 2b3fc: c7a000fc */ lwc1 $f0,0xfc($sp) +/* 2b400: d7b40020 */ ldc1 $f20,0x20($sp) +/* 2b404: d7b60028 */ ldc1 $f22,0x28($sp) +/* 2b408: d7b80030 */ ldc1 $f24,0x30($sp) +/* 2b40c: d7ba0038 */ ldc1 $f26,0x38($sp) +/* 2b410: d7bc0040 */ ldc1 $f28,0x40($sp) +/* 2b414: d7be0048 */ ldc1 $f30,0x48($sp) +/* 2b418: 8fb00050 */ lw $s0,0x50($sp) +/* 2b41c: 8fb10054 */ lw $s1,0x54($sp) +/* 2b420: 8fb20058 */ lw $s2,0x58($sp) +/* 2b424: 8fb3005c */ lw $s3,0x5c($sp) +/* 2b428: 8fb40060 */ lw $s4,0x60($sp) +/* 2b42c: 8fb50064 */ lw $s5,0x64($sp) +/* 2b430: 8fb60068 */ lw $s6,0x68($sp) +/* 2b434: 8fb7006c */ lw $s7,0x6c($sp) +/* 2b438: 8fbe0070 */ lw $s8,0x70($sp) +/* 2b43c: 03e00008 */ jr $ra +/* 2b440: 27bd0108 */ addiu $sp,$sp,0x108 +); +#endif GLOBAL_ASM( glabel func00029ffc @@ -5482,6 +6174,7 @@ glabel func0002a400 /* 2a43c: 00000000 */ nop ); +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func0002a440 /* 2a440: 27bdffc8 */ addiu $sp,$sp,-56 @@ -5524,7 +6217,43 @@ glabel func0002a440 /* 2a4c8: 03e00008 */ jr $ra /* 2a4cc: 00000000 */ nop ); +#else +GLOBAL_ASM( +glabel func0002a440 +/* 2b888: 27bdffc8 */ addiu $sp,$sp,-56 +/* 2b88c: afbf0024 */ sw $ra,0x24($sp) +/* 2b890: afa60040 */ sw $a2,0x40($sp) +/* 2b894: afa70044 */ sw $a3,0x44($sp) +/* 2b898: 27ae0032 */ addiu $t6,$sp,0x32 +/* 2b89c: 27af002c */ addiu $t7,$sp,0x2c +/* 2b8a0: afaf0014 */ sw $t7,0x14($sp) +/* 2b8a4: afae0010 */ sw $t6,0x10($sp) +/* 2b8a8: 27a70034 */ addiu $a3,$sp,0x34 +/* 2b8ac: 24060003 */ addiu $a2,$zero,0x3 +/* 2b8b0: afa00018 */ sw $zero,0x18($sp) +/* 2b8b4: 0c00a0de */ jal 0x28378 +/* 2b8b8: afa0001c */ sw $zero,0x1c($sp) +/* 2b8bc: 8fb80034 */ lw $t8,0x34($sp) +/* 2b8c0: 8fa50044 */ lw $a1,0x44($sp) +/* 2b8c4: c7a4002c */ lwc1 $f4,0x2c($sp) +/* 2b8c8: 13000002 */ beqz $t8,.NB0002b8d4 +/* 2b8cc: 8fb90040 */ lw $t9,0x40($sp) +/* 2b8d0: e7240000 */ swc1 $f4,0x0($t9) +.NB0002b8d4: +/* 2b8d4: 50a00004 */ beqzl $a1,.NB0002b8e8 +/* 2b8d8: 8fbf0024 */ lw $ra,0x24($sp) +/* 2b8dc: 0c009bd4 */ jal 0x26f50 +/* 2b8e0: 8fa40034 */ lw $a0,0x34($sp) +/* 2b8e4: 8fbf0024 */ lw $ra,0x24($sp) +.NB0002b8e8: +/* 2b8e8: 87a20032 */ lh $v0,0x32($sp) +/* 2b8ec: 27bd0038 */ addiu $sp,$sp,0x38 +/* 2b8f0: 03e00008 */ jr $ra +/* 2b8f4: 00000000 */ sll $zero,$zero,0x0 +); +#endif +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func0002a4d0 /* 2a4d0: 27bdffc8 */ addiu $sp,$sp,-56 @@ -5568,6 +6297,42 @@ glabel func0002a4d0 /* 2a55c: 03e00008 */ jr $ra /* 2a560: 00000000 */ nop ); +#else +GLOBAL_ASM( +glabel func0002a4d0 +/* 2b8f8: 27bdffc8 */ addiu $sp,$sp,-56 +/* 2b8fc: afbf0024 */ sw $ra,0x24($sp) +/* 2b900: afa60040 */ sw $a2,0x40($sp) +/* 2b904: afa70044 */ sw $a3,0x44($sp) +/* 2b908: 27ae0032 */ addiu $t6,$sp,0x32 +/* 2b90c: 27af002c */ addiu $t7,$sp,0x2c +/* 2b910: 24180001 */ addiu $t8,$zero,0x1 +/* 2b914: afb8001c */ sw $t8,0x1c($sp) +/* 2b918: afaf0014 */ sw $t7,0x14($sp) +/* 2b91c: afae0010 */ sw $t6,0x10($sp) +/* 2b920: 27a70034 */ addiu $a3,$sp,0x34 +/* 2b924: 24060003 */ addiu $a2,$zero,0x3 +/* 2b928: 0c00a0de */ jal 0x28378 +/* 2b92c: afa00018 */ sw $zero,0x18($sp) +/* 2b930: 8fb90034 */ lw $t9,0x34($sp) +/* 2b934: 8fa50044 */ lw $a1,0x44($sp) +/* 2b938: c7a4002c */ lwc1 $f4,0x2c($sp) +/* 2b93c: 13200002 */ beqz $t9,.NB0002b948 +/* 2b940: 8fa80040 */ lw $t0,0x40($sp) +/* 2b944: e5040000 */ swc1 $f4,0x0($t0) +.NB0002b948: +/* 2b948: 50a00004 */ beqzl $a1,.NB0002b95c +/* 2b94c: 8fbf0024 */ lw $ra,0x24($sp) +/* 2b950: 0c009bd4 */ jal 0x26f50 +/* 2b954: 8fa40034 */ lw $a0,0x34($sp) +/* 2b958: 8fbf0024 */ lw $ra,0x24($sp) +.NB0002b95c: +/* 2b95c: 87a20032 */ lh $v0,0x32($sp) +/* 2b960: 27bd0038 */ addiu $sp,$sp,0x38 +/* 2b964: 03e00008 */ jr $ra +/* 2b968: 00000000 */ sll $zero,$zero,0x0 +); +#endif GLOBAL_ASM( glabel func0002a564 @@ -10858,11 +11623,256 @@ glabel func0002f02c /* 2f2dc: 27bd0348 */ addiu $sp,$sp,0x348 /* 2f2e0: 03e00008 */ jr $ra /* 2f2e4: 01201025 */ or $v0,$t1,$zero +); + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func000306f0nb +/* 306f0: 27bdff78 */ addiu $sp,$sp,-136 +/* 306f4: afb1000c */ sw $s1,0xc($sp) +/* 306f8: afb00008 */ sw $s0,0x8($sp) +/* 306fc: 94ce0002 */ lhu $t6,0x2($a2) +/* 30700: 00a08025 */ or $s0,$a1,$zero +/* 30704: 00808825 */ or $s1,$a0,$zero +/* 30708: 31cf0005 */ andi $t7,$t6,0x5 +/* 3070c: 51e00072 */ beqzl $t7,.NB000308d8 +/* 30710: 02201025 */ or $v0,$s1,$zero +/* 30714: 90c20001 */ lbu $v0,0x1($a2) +/* 30718: 27a40020 */ addiu $a0,$sp,0x20 +/* 3071c: 00c02825 */ or $a1,$a2,$zero +/* 30720: 28410011 */ slti $at,$v0,0x11 +/* 30724: 14200002 */ bnez $at,.NB00030730 +/* 30728: 3c07800a */ lui $a3,0x800a +/* 3072c: 24020010 */ addiu $v0,$zero,0x10 +.NB00030730: +/* 30730: 18400044 */ blez $v0,.NB00030844 +/* 30734: 00001825 */ or $v1,$zero,$zero +/* 30738: 8ce7e944 */ lw $a3,-0x16bc($a3) +/* 3073c: 24630001 */ addiu $v1,$v1,0x1 +/* 30740: 10620022 */ beq $v1,$v0,.NB000307cc +/* 30744: 84b8000e */ lh $t8,0xe($a1) +.NB00030748: +/* 30748: 44989000 */ mtc1 $t8,$f18 +/* 3074c: c4f00038 */ lwc1 $f16,0x38($a3) +/* 30750: 24630001 */ addiu $v1,$v1,0x1 +/* 30754: 468094a0 */ cvt.s.w $f18,$f18 +/* 30758: 24840006 */ addiu $a0,$a0,0x6 +/* 3075c: 24a50006 */ addiu $a1,$a1,0x6 +/* 30760: 46109401 */ sub.s $f16,$f18,$f16 +/* 30764: 4600840d */ trunc.w.s $f16,$f16 +/* 30768: 44088000 */ mfc1 $t0,$f16 +/* 3076c: 00000000 */ sll $zero,$zero,0x0 +/* 30770: a488fffa */ sh $t0,-0x6($a0) +/* 30774: 84a9000a */ lh $t1,0xa($a1) +/* 30778: c4f0003c */ lwc1 $f16,0x3c($a3) +/* 3077c: 44899000 */ mtc1 $t1,$f18 +/* 30780: 00000000 */ sll $zero,$zero,0x0 +/* 30784: 468094a0 */ cvt.s.w $f18,$f18 +/* 30788: 46109401 */ sub.s $f16,$f18,$f16 +/* 3078c: 4600840d */ trunc.w.s $f16,$f16 +/* 30790: 440b8000 */ mfc1 $t3,$f16 +/* 30794: 00000000 */ sll $zero,$zero,0x0 +/* 30798: a48bfffc */ sh $t3,-0x4($a0) +/* 3079c: 84ac000c */ lh $t4,0xc($a1) +/* 307a0: c4f00040 */ lwc1 $f16,0x40($a3) +/* 307a4: 448c9000 */ mtc1 $t4,$f18 +/* 307a8: 00000000 */ sll $zero,$zero,0x0 +/* 307ac: 468094a0 */ cvt.s.w $f18,$f18 +/* 307b0: 46109401 */ sub.s $f16,$f18,$f16 +/* 307b4: 4600840d */ trunc.w.s $f16,$f16 +/* 307b8: 440e8000 */ mfc1 $t6,$f16 +/* 307bc: 00000000 */ sll $zero,$zero,0x0 +/* 307c0: a48efffe */ sh $t6,-0x2($a0) +/* 307c4: 1462ffe0 */ bne $v1,$v0,.NB00030748 +/* 307c8: 84b8000e */ lh $t8,0xe($a1) +.NB000307cc: +/* 307cc: 44989000 */ mtc1 $t8,$f18 +/* 307d0: c4f00038 */ lwc1 $f16,0x38($a3) +/* 307d4: 24840006 */ addiu $a0,$a0,0x6 +/* 307d8: 468094a0 */ cvt.s.w $f18,$f18 +/* 307dc: 24a50006 */ addiu $a1,$a1,0x6 +/* 307e0: 46109401 */ sub.s $f16,$f18,$f16 +/* 307e4: 4600840d */ trunc.w.s $f16,$f16 +/* 307e8: 44088000 */ mfc1 $t0,$f16 +/* 307ec: 00000000 */ sll $zero,$zero,0x0 +/* 307f0: a488fffa */ sh $t0,-0x6($a0) +/* 307f4: 84a9000a */ lh $t1,0xa($a1) +/* 307f8: c4f0003c */ lwc1 $f16,0x3c($a3) +/* 307fc: 44899000 */ mtc1 $t1,$f18 +/* 30800: 00000000 */ sll $zero,$zero,0x0 +/* 30804: 468094a0 */ cvt.s.w $f18,$f18 +/* 30808: 46109401 */ sub.s $f16,$f18,$f16 +/* 3080c: 4600840d */ trunc.w.s $f16,$f16 +/* 30810: 440b8000 */ mfc1 $t3,$f16 +/* 30814: 00000000 */ sll $zero,$zero,0x0 +/* 30818: a48bfffc */ sh $t3,-0x4($a0) +/* 3081c: 84ac000c */ lh $t4,0xc($a1) +/* 30820: c4f00040 */ lwc1 $f16,0x40($a3) +/* 30824: 448c9000 */ mtc1 $t4,$f18 +/* 30828: 00000000 */ sll $zero,$zero,0x0 +/* 3082c: 468094a0 */ cvt.s.w $f18,$f18 +/* 30830: 46109401 */ sub.s $f16,$f18,$f16 +/* 30834: 4600840d */ trunc.w.s $f16,$f16 +/* 30838: 440e8000 */ mfc1 $t6,$f16 +/* 3083c: 00000000 */ sll $zero,$zero,0x0 +/* 30840: a48efffe */ sh $t6,-0x2($a0) +.NB00030844: +/* 30844: 28410003 */ slti $at,$v0,0x3 +/* 30848: 14200022 */ bnez $at,.NB000308d4 +/* 3084c: 24030002 */ addiu $v1,$zero,0x2 +/* 30850: 24070006 */ addiu $a3,$zero,0x6 +/* 30854: 27a60020 */ addiu $a2,$sp,0x20 +.NB00030858: +/* 30858: 8e050000 */ lw $a1,0x0($s0) +/* 3085c: 87af0020 */ lh $t7,0x20($sp) +/* 30860: 58a00019 */ blezl $a1,.NB000308c8 +/* 30864: 24630001 */ addiu $v1,$v1,0x1 +/* 30868: 00670019 */ multu $v1,$a3 +/* 3086c: a62f0000 */ sh $t7,0x0($s1) +/* 30870: 87b80022 */ lh $t8,0x22($sp) +/* 30874: 26310014 */ addiu $s1,$s1,0x14 +/* 30878: a638ffee */ sh $t8,-0x12($s1) +/* 3087c: 87b90024 */ lh $t9,0x24($sp) +/* 30880: a639fff0 */ sh $t9,-0x10($s1) +/* 30884: 00004012 */ mflo $t0 +/* 30888: 00c82021 */ addu $a0,$a2,$t0 +/* 3088c: 8489fffa */ lh $t1,-0x6($a0) +/* 30890: a629fff2 */ sh $t1,-0xe($s1) +/* 30894: 848afffc */ lh $t2,-0x4($a0) +/* 30898: a62afff4 */ sh $t2,-0xc($s1) +/* 3089c: 848bfffe */ lh $t3,-0x2($a0) +/* 308a0: a62bfff6 */ sh $t3,-0xa($s1) +/* 308a4: 848c0000 */ lh $t4,0x0($a0) +/* 308a8: a62cfff8 */ sh $t4,-0x8($s1) +/* 308ac: 848d0002 */ lh $t5,0x2($a0) +/* 308b0: a62dfffa */ sh $t5,-0x6($s1) +/* 308b4: 848e0004 */ lh $t6,0x4($a0) +/* 308b8: a220fffe */ sb $zero,-0x2($s1) +/* 308bc: a62efffc */ sh $t6,-0x4($s1) +/* 308c0: 8e050000 */ lw $a1,0x0($s0) +/* 308c4: 24630001 */ addiu $v1,$v1,0x1 +.NB000308c8: +/* 308c8: 24afffff */ addiu $t7,$a1,-1 +/* 308cc: 1462ffe2 */ bne $v1,$v0,.NB00030858 +/* 308d0: ae0f0000 */ sw $t7,0x0($s0) +.NB000308d4: +/* 308d4: 02201025 */ or $v0,$s1,$zero +.NB000308d8: +/* 308d8: 8fb1000c */ lw $s1,0xc($sp) +/* 308dc: 8fb00008 */ lw $s0,0x8($sp) +/* 308e0: 03e00008 */ jr $ra +/* 308e4: 27bd0088 */ addiu $sp,$sp,0x88 +); +#endif + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func000308e8nb +/* 308e8: 27bdff78 */ addiu $sp,$sp,-136 +/* 308ec: afb1000c */ sw $s1,0xc($sp) +/* 308f0: afb00008 */ sw $s0,0x8($sp) +/* 308f4: 94ce0002 */ lhu $t6,0x2($a2) +/* 308f8: 00a08025 */ or $s0,$a1,$zero +/* 308fc: 00808825 */ or $s1,$a0,$zero +/* 30900: 31cf0005 */ andi $t7,$t6,0x5 +/* 30904: 51e00048 */ beqzl $t7,.NB00030a28 +/* 30908: 02201025 */ or $v0,$s1,$zero +/* 3090c: 90c20001 */ lbu $v0,0x1($a2) +/* 30910: 27a40020 */ addiu $a0,$sp,0x20 +/* 30914: 00c02825 */ or $a1,$a2,$zero +/* 30918: 28410011 */ slti $at,$v0,0x11 +/* 3091c: 14200002 */ bnez $at,.NB00030928 +/* 30920: 3c07800a */ lui $a3,0x800a +/* 30924: 24020010 */ addiu $v0,$zero,0x10 +.NB00030928: +/* 30928: 1840001a */ blez $v0,.NB00030994 +/* 3092c: 00001825 */ or $v1,$zero,$zero +/* 30930: 8ce7e944 */ lw $a3,-0x16bc($a3) +.NB00030934: +/* 30934: c4a40010 */ lwc1 $f4,0x10($a1) +/* 30938: c4e60038 */ lwc1 $f6,0x38($a3) +/* 3093c: 24630001 */ addiu $v1,$v1,0x1 +/* 30940: 24840006 */ addiu $a0,$a0,0x6 +/* 30944: 46062201 */ sub.s $f8,$f4,$f6 +/* 30948: 24a5000c */ addiu $a1,$a1,0xc +/* 3094c: 4600428d */ trunc.w.s $f10,$f8 +/* 30950: 44195000 */ mfc1 $t9,$f10 +/* 30954: 00000000 */ sll $zero,$zero,0x0 +/* 30958: a499fffa */ sh $t9,-0x6($a0) +/* 3095c: c4f2003c */ lwc1 $f18,0x3c($a3) +/* 30960: c4b00008 */ lwc1 $f16,0x8($a1) +/* 30964: 46128101 */ sub.s $f4,$f16,$f18 +/* 30968: 4600218d */ trunc.w.s $f6,$f4 +/* 3096c: 44093000 */ mfc1 $t1,$f6 +/* 30970: 00000000 */ sll $zero,$zero,0x0 +/* 30974: a489fffc */ sh $t1,-0x4($a0) +/* 30978: c4ea0040 */ lwc1 $f10,0x40($a3) +/* 3097c: c4a8000c */ lwc1 $f8,0xc($a1) +/* 30980: 460a4401 */ sub.s $f16,$f8,$f10 +/* 30984: 4600848d */ trunc.w.s $f18,$f16 +/* 30988: 440b9000 */ mfc1 $t3,$f18 +/* 3098c: 1462ffe9 */ bne $v1,$v0,.NB00030934 +/* 30990: a48bfffe */ sh $t3,-0x2($a0) +.NB00030994: +/* 30994: 28410003 */ slti $at,$v0,0x3 +/* 30998: 14200022 */ bnez $at,.NB00030a24 +/* 3099c: 24030002 */ addiu $v1,$zero,0x2 +/* 309a0: 24070006 */ addiu $a3,$zero,0x6 +/* 309a4: 27a60020 */ addiu $a2,$sp,0x20 +.NB000309a8: +/* 309a8: 8e050000 */ lw $a1,0x0($s0) +/* 309ac: 87ac0020 */ lh $t4,0x20($sp) +/* 309b0: 58a00019 */ blezl $a1,.NB00030a18 +/* 309b4: 24630001 */ addiu $v1,$v1,0x1 +/* 309b8: 00670019 */ multu $v1,$a3 +/* 309bc: a62c0000 */ sh $t4,0x0($s1) +/* 309c0: 87ad0022 */ lh $t5,0x22($sp) +/* 309c4: 26310014 */ addiu $s1,$s1,0x14 +/* 309c8: a62dffee */ sh $t5,-0x12($s1) +/* 309cc: 87ae0024 */ lh $t6,0x24($sp) +/* 309d0: a62efff0 */ sh $t6,-0x10($s1) +/* 309d4: 00007812 */ mflo $t7 +/* 309d8: 00cf2021 */ addu $a0,$a2,$t7 +/* 309dc: 8498fffa */ lh $t8,-0x6($a0) +/* 309e0: a638fff2 */ sh $t8,-0xe($s1) +/* 309e4: 8499fffc */ lh $t9,-0x4($a0) +/* 309e8: a639fff4 */ sh $t9,-0xc($s1) +/* 309ec: 8488fffe */ lh $t0,-0x2($a0) +/* 309f0: a628fff6 */ sh $t0,-0xa($s1) +/* 309f4: 84890000 */ lh $t1,0x0($a0) +/* 309f8: a629fff8 */ sh $t1,-0x8($s1) +/* 309fc: 848a0002 */ lh $t2,0x2($a0) +/* 30a00: a62afffa */ sh $t2,-0x6($s1) +/* 30a04: 848b0004 */ lh $t3,0x4($a0) +/* 30a08: a220fffe */ sb $zero,-0x2($s1) +/* 30a0c: a62bfffc */ sh $t3,-0x4($s1) +/* 30a10: 8e050000 */ lw $a1,0x0($s0) +/* 30a14: 24630001 */ addiu $v1,$v1,0x1 +.NB00030a18: +/* 30a18: 24acffff */ addiu $t4,$a1,-1 +/* 30a1c: 1462ffe2 */ bne $v1,$v0,.NB000309a8 +/* 30a20: ae0c0000 */ sw $t4,0x0($s0) +.NB00030a24: +/* 30a24: 02201025 */ or $v0,$s1,$zero +.NB00030a28: +/* 30a28: 8fb1000c */ lw $s1,0xc($sp) +/* 30a2c: 8fb00008 */ lw $s0,0x8($sp) +/* 30a30: 03e00008 */ jr $ra +/* 30a34: 27bd0088 */ addiu $sp,$sp,0x88 +); +#endif + +GLOBAL_ASM( +glabel func0002f2e8 /* 2f2e8: afa50004 */ sw $a1,0x4($sp) /* 2f2ec: afa60008 */ sw $a2,0x8($sp) /* 2f2f0: afa7000c */ sw $a3,0xc($sp) /* 2f2f4: 03e00008 */ jr $ra /* 2f2f8: 00801025 */ or $v0,$a0,$zero +); + +GLOBAL_ASM( +glabel func0002f2fc /* 2f2fc: afa40000 */ sw $a0,0x0($sp) /* 2f300: 03e00008 */ jr $ra /* 2f304: afa50004 */ sw $a1,0x4($sp) diff --git a/src/lib/lib_317f0.c b/src/lib/lib_317f0.c index 3bafd1a63..a660040db 100644 --- a/src/lib/lib_317f0.c +++ b/src/lib/lib_317f0.c @@ -200,7 +200,7 @@ glabel func000317f0 /* 31a60: 03e00008 */ jr $ra /* 31a64: 00000000 */ nop ); -#else +#elif VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func000317f0 /* 317f0: 27bdffc0 */ addiu $sp,$sp,-64 @@ -367,6 +367,169 @@ glabel func000317f0 /* 31a60: 03e00008 */ jr $ra /* 31a64: 00000000 */ nop ); +#else +GLOBAL_ASM( +glabel func000317f0 +/* 32f40: 27bdffc0 */ addiu $sp,$sp,-64 +/* 32f44: afbf001c */ sw $ra,0x1c($sp) +/* 32f48: afa40040 */ sw $a0,0x40($sp) +/* 32f4c: 8fae0040 */ lw $t6,0x40($sp) +/* 32f50: 3c188006 */ lui $t8,0x8006 +/* 32f54: 8f18163c */ lw $t8,0x163c($t8) +/* 32f58: 8dcf0008 */ lw $t7,0x8($t6) +/* 32f5c: af0f0044 */ sw $t7,0x44($t8) +/* 32f60: 3c198006 */ lui $t9,0x8006 +/* 32f64: 8f39163c */ lw $t9,0x163c($t9) +/* 32f68: af20003c */ sw $zero,0x3c($t9) +/* 32f6c: 3c098006 */ lui $t1,0x8006 +/* 32f70: 8d29163c */ lw $t1,0x163c($t1) +/* 32f74: 24083e80 */ addiu $t0,$zero,0x3e80 +/* 32f78: ad280048 */ sw $t0,0x48($t1) +/* 32f7c: 8faa0040 */ lw $t2,0x40($sp) +/* 32f80: 00002025 */ or $a0,$zero,$zero +/* 32f84: 00002825 */ or $a1,$zero,$zero +/* 32f88: 8d4b0000 */ lw $t3,0x0($t2) +/* 32f8c: 8d46000c */ lw $a2,0xc($t2) +/* 32f90: 24070001 */ addiu $a3,$zero,0x1 +/* 32f94: 000b60c0 */ sll $t4,$t3,0x3 +/* 32f98: 018b6021 */ addu $t4,$t4,$t3 +/* 32f9c: 000c60c0 */ sll $t4,$t4,0x3 +/* 32fa0: 0c00c499 */ jal 0x31264 +/* 32fa4: afac0010 */ sw $t4,0x10($sp) +/* 32fa8: afa20038 */ sw $v0,0x38($sp) +/* 32fac: 3c0e8006 */ lui $t6,0x8006 +/* 32fb0: 8dce163c */ lw $t6,0x163c($t6) +/* 32fb4: 8fad0038 */ lw $t5,0x38($sp) +/* 32fb8: adcd0040 */ sw $t5,0x40($t6) +/* 32fbc: 8faf0040 */ lw $t7,0x40($sp) +/* 32fc0: 00002025 */ or $a0,$zero,$zero +/* 32fc4: 00002825 */ or $a1,$zero,$zero +/* 32fc8: 8df80004 */ lw $t8,0x4($t7) +/* 32fcc: 8de6000c */ lw $a2,0xc($t7) +/* 32fd0: 24070001 */ addiu $a3,$zero,0x1 +/* 32fd4: 0018c8c0 */ sll $t9,$t8,0x3 +/* 32fd8: 0338c823 */ subu $t9,$t9,$t8 +/* 32fdc: 0019c880 */ sll $t9,$t9,0x2 +/* 32fe0: 0c00c499 */ jal 0x31264 +/* 32fe4: afb90010 */ sw $t9,0x10($sp) +/* 32fe8: afa20038 */ sw $v0,0x38($sp) +/* 32fec: 3c048006 */ lui $a0,0x8006 +/* 32ff0: 8c84163c */ lw $a0,0x163c($a0) +/* 32ff4: 8fa80040 */ lw $t0,0x40($sp) +/* 32ff8: 8fa50038 */ lw $a1,0x38($sp) +/* 32ffc: 24840014 */ addiu $a0,$a0,0x14 +/* 33000: 0c00f628 */ jal 0x3d8a0 +/* 33004: 8d060004 */ lw $a2,0x4($t0) +/* 33008: 3c098006 */ lui $t1,0x8006 +/* 3300c: 8d29163c */ lw $t1,0x163c($t1) +/* 33010: 3c018006 */ lui $at,0x8006 +/* 33014: 8d2a0040 */ lw $t2,0x40($t1) +/* 33018: ac2a1638 */ sw $t2,0x1638($at) +/* 3301c: 8fac0040 */ lw $t4,0x40($sp) +/* 33020: 240b0001 */ addiu $t3,$zero,0x1 +/* 33024: afab003c */ sw $t3,0x3c($sp) +/* 33028: 8d8d0000 */ lw $t5,0x0($t4) +/* 3302c: 2da10002 */ sltiu $at,$t5,0x2 +/* 33030: 14200016 */ bnez $at,.NB0003308c +/* 33034: 00000000 */ sll $zero,$zero,0x0 +.NB00033038: +/* 33038: 3c0e8006 */ lui $t6,0x8006 +/* 3303c: 8dce163c */ lw $t6,0x163c($t6) +/* 33040: 8dcf0040 */ lw $t7,0x40($t6) +/* 33044: afaf0024 */ sw $t7,0x24($sp) +/* 33048: 8fb8003c */ lw $t8,0x3c($sp) +/* 3304c: 8fa80024 */ lw $t0,0x24($sp) +/* 33050: 0018c8c0 */ sll $t9,$t8,0x3 +/* 33054: 0338c821 */ addu $t9,$t9,$t8 +/* 33058: 0019c8c0 */ sll $t9,$t9,0x3 +/* 3305c: 03284821 */ addu $t1,$t9,$t0 +/* 33060: 01202025 */ or $a0,$t1,$zero +/* 33064: 0c00cbb0 */ jal 0x32ec0 +/* 33068: 2525ffb8 */ addiu $a1,$t1,-72 +/* 3306c: 8faa003c */ lw $t2,0x3c($sp) +/* 33070: 8fac0040 */ lw $t4,0x40($sp) +/* 33074: 254b0001 */ addiu $t3,$t2,0x1 +/* 33078: afab003c */ sw $t3,0x3c($sp) +/* 3307c: 8d8d0000 */ lw $t5,0x0($t4) +/* 33080: 016d082b */ sltu $at,$t3,$t5 +/* 33084: 1420ffec */ bnez $at,.NB00033038 +/* 33088: 00000000 */ sll $zero,$zero,0x0 +.NB0003308c: +/* 3308c: 0c00d242 */ jal 0x34908 +/* 33090: 00002025 */ or $a0,$zero,$zero +/* 33094: 0c00d2f1 */ jal 0x34bc4 +/* 33098: 00002025 */ or $a0,$zero,$zero +/* 3309c: 8fae0040 */ lw $t6,0x40($sp) +/* 330a0: 00002025 */ or $a0,$zero,$zero +/* 330a4: 00002825 */ or $a1,$zero,$zero +/* 330a8: 95cf0010 */ lhu $t7,0x10($t6) +/* 330ac: 8dc6000c */ lw $a2,0xc($t6) +/* 330b0: 24070002 */ addiu $a3,$zero,0x2 +/* 330b4: 0c00c499 */ jal 0x31264 +/* 330b8: afaf0010 */ sw $t7,0x10($sp) +/* 330bc: 3c01800a */ lui $at,0x800a +/* 330c0: ac220a34 */ sw $v0,0xa34($at) +/* 330c4: 8fb80040 */ lw $t8,0x40($sp) +/* 330c8: afa0003c */ sw $zero,0x3c($sp) +/* 330cc: 97190010 */ lhu $t9,0x10($t8) +/* 330d0: 13200010 */ beqz $t9,.NB00033114 +/* 330d4: 00000000 */ sll $zero,$zero,0x0 +.NB000330d8: +/* 330d8: 8faa003c */ lw $t2,0x3c($sp) +/* 330dc: 3c09800a */ lui $t1,0x800a +/* 330e0: 8d290a34 */ lw $t1,0xa34($t1) +/* 330e4: 000a6040 */ sll $t4,$t2,0x1 +/* 330e8: 24087fff */ addiu $t0,$zero,0x7fff +/* 330ec: 012c5821 */ addu $t3,$t1,$t4 +/* 330f0: a5680000 */ sh $t0,0x0($t3) +/* 330f4: 8fad003c */ lw $t5,0x3c($sp) +/* 330f8: 8faf0040 */ lw $t7,0x40($sp) +/* 330fc: 25ae0001 */ addiu $t6,$t5,0x1 +/* 33100: afae003c */ sw $t6,0x3c($sp) +/* 33104: 95f80010 */ lhu $t8,0x10($t7) +/* 33108: 01d8082b */ sltu $at,$t6,$t8 +/* 3310c: 1420fff2 */ bnez $at,.NB000330d8 +/* 33110: 00000000 */ sll $zero,$zero,0x0 +.NB00033114: +/* 33114: 3c198006 */ lui $t9,0x8006 +/* 33118: 8f39163c */ lw $t9,0x163c($t9) +/* 3311c: af200000 */ sw $zero,0x0($t9) +/* 33120: 3c098006 */ lui $t1,0x8006 +/* 33124: 8d29163c */ lw $t1,0x163c($t1) +/* 33128: 3c0a7003 */ lui $t2,0x7003 +/* 3312c: 254a31a8 */ addiu $t2,$t2,0x31a8 +/* 33130: ad2a0008 */ sw $t2,0x8($t1) +/* 33134: 3c0c8006 */ lui $t4,0x8006 +/* 33138: 8d8c163c */ lw $t4,0x163c($t4) +/* 3313c: ad8c0004 */ sw $t4,0x4($t4) +/* 33140: 3c048006 */ lui $a0,0x8006 +/* 33144: 0c00f734 */ jal 0x3dcd0 +/* 33148: 8c84163c */ lw $a0,0x163c($a0) +/* 3314c: 24080020 */ addiu $t0,$zero,0x20 +/* 33150: a7a80028 */ sh $t0,0x28($sp) +/* 33154: 3c0b8006 */ lui $t3,0x8006 +/* 33158: 8d6b163c */ lw $t3,0x163c($t3) +/* 3315c: 27a50028 */ addiu $a1,$sp,0x28 +/* 33160: 24070001 */ addiu $a3,$zero,0x1 +/* 33164: 25640014 */ addiu $a0,$t3,0x14 +/* 33168: 0c00f678 */ jal 0x3d9e0 +/* 3316c: 8d660048 */ lw $a2,0x48($t3) +/* 33170: 3c0d8006 */ lui $t5,0x8006 +/* 33174: 8dad163c */ lw $t5,0x163c($t5) +/* 33178: 25a40014 */ addiu $a0,$t5,0x14 +/* 3317c: 0c00f64f */ jal 0x3d93c +/* 33180: 25a50028 */ addiu $a1,$t5,0x28 +/* 33184: 3c0f8006 */ lui $t7,0x8006 +/* 33188: 8def163c */ lw $t7,0x163c($t7) +/* 3318c: ade2004c */ sw $v0,0x4c($t7) +/* 33190: 10000001 */ beqz $zero,.NB00033198 +/* 33194: 00000000 */ sll $zero,$zero,0x0 +.NB00033198: +/* 33198: 8fbf001c */ lw $ra,0x1c($sp) +/* 3319c: 27bd0040 */ addiu $sp,$sp,0x40 +/* 331a0: 03e00008 */ jr $ra +/* 331a4: 00000000 */ sll $zero,$zero,0x0 +); #endif GLOBAL_ASM( @@ -429,6 +592,7 @@ glabel func00031a68 /* 31b30: 00000000 */ nop ); +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func00031b34 .late_rodata @@ -1939,6 +2103,1401 @@ glabel var7005477c /* 33088: 03e00008 */ jr $ra /* 3308c: 27bd00b8 */ addiu $sp,$sp,0xb8 ); +#else +GLOBAL_ASM( +glabel func00031b34 +.late_rodata +glabel var70054740 +.word func00031b34+0x01ac +glabel var70054744 +.word func00031b34+0x0a78 +glabel var70054748 +.word func00031b34+0x14dc +glabel var7005474c +.word func00031b34+0x0bfc +glabel var70054750 +.word func00031b34+0x14dc +glabel var70054754 +.word func00031b34+0x14dc +glabel var70054758 +.word func00031b34+0x14dc +glabel var7005475c +.word func00031b34+0x0f08 +glabel var70054760 +.word func00031b34+0x14dc +glabel var70054764 +.word func00031b34+0x14dc +glabel var70054768 +.word func00031b34+0x14dc +glabel var7005476c +.word func00031b34+0x14dc +glabel var70054770 +.word func00031b34+0x14dc +glabel var70054774 +.word func00031b34+0x14dc +glabel var70054778 +.word func00031b34+0x14dc +glabel var7005477c +.word func00031b34+0x0ca0 +.text +/* 33274: 27bdff48 */ addiu $sp,$sp,-184 +/* 33278: afbf0034 */ sw $ra,0x34($sp) +/* 3327c: afa400b8 */ sw $a0,0xb8($sp) +/* 33280: afb10030 */ sw $s1,0x30($sp) +/* 33284: afb0002c */ sw $s0,0x2c($sp) +/* 33288: 240e0001 */ addiu $t6,$zero,0x1 +/* 3328c: afae0068 */ sw $t6,0x68($sp) +/* 33290: afa00064 */ sw $zero,0x64($sp) +/* 33294: afa00060 */ sw $zero,0x60($sp) +/* 33298: afa0005c */ sw $zero,0x5c($sp) +.NB0003329c: +/* 3329c: 8faf005c */ lw $t7,0x5c($sp) +/* 332a0: 11e0000b */ beqz $t7,.NB000332d0 +/* 332a4: 00000000 */ sll $zero,$zero,0x0 +/* 332a8: 8fb80060 */ lw $t8,0x60($sp) +/* 332ac: afb80088 */ sw $t8,0x88($sp) +/* 332b0: 8fb900b8 */ lw $t9,0xb8($sp) +/* 332b4: 97280000 */ lhu $t0,0x0($t9) +/* 332b8: a7a80084 */ sh $t0,0x84($sp) +/* 332bc: 8fa900b8 */ lw $t1,0xb8($sp) +/* 332c0: 8d2a0008 */ lw $t2,0x8($t1) +/* 332c4: afaa008c */ sw $t2,0x8c($sp) +/* 332c8: 27ab0084 */ addiu $t3,$sp,0x84 +/* 332cc: afab00b8 */ sw $t3,0xb8($sp) +.NB000332d0: +/* 332d0: 8fac00b8 */ lw $t4,0xb8($sp) +/* 332d4: 8d8d0004 */ lw $t5,0x4($t4) +/* 332d8: afad0060 */ sw $t5,0x60($sp) +/* 332dc: 8fae0060 */ lw $t6,0x60($sp) +/* 332e0: 3c018000 */ lui $at,0x8000 +/* 332e4: 01c17824 */ and $t7,$t6,$at +/* 332e8: 15e00001 */ bnez $t7,.NB000332f0 +/* 332ec: 00000000 */ sll $zero,$zero,0x0 +.NB000332f0: +/* 332f0: 8fb80060 */ lw $t8,0x60($sp) +/* 332f4: 8f190008 */ lw $t9,0x8($t8) +/* 332f8: afb900ac */ sw $t9,0xac($sp) +/* 332fc: 8fa800ac */ lw $t0,0xac($sp) +/* 33300: 15000006 */ bnez $t0,.NB0003331c +/* 33304: 00000000 */ sll $zero,$zero,0x0 +/* 33308: 27a4005a */ addiu $a0,$sp,0x5a +/* 3330c: 0c00d201 */ jal 0x34804 +/* 33310: 27a50058 */ addiu $a1,$sp,0x58 +/* 33314: 100004bd */ beqz $zero,.NB0003460c +/* 33318: 00000000 */ sll $zero,$zero,0x0 +.NB0003331c: +/* 3331c: 8fa900ac */ lw $t1,0xac($sp) +/* 33320: 8d2a0004 */ lw $t2,0x4($t1) +/* 33324: afaa00a8 */ sw $t2,0xa8($sp) +/* 33328: 8fab0060 */ lw $t3,0x60($sp) +/* 3332c: 8d6c0000 */ lw $t4,0x0($t3) +/* 33330: afac005c */ sw $t4,0x5c($sp) +/* 33334: 8fad00b8 */ lw $t5,0xb8($sp) +/* 33338: 95b00000 */ lhu $s0,0x0($t5) +/* 3333c: 2a010201 */ slti $at,$s0,0x201 +/* 33340: 14200012 */ bnez $at,.NB0003338c +/* 33344: 00000000 */ sll $zero,$zero,0x0 +/* 33348: 24010400 */ addiu $at,$zero,0x400 +/* 3334c: 12010219 */ beq $s0,$at,.NB00033bb4 +/* 33350: 00000000 */ sll $zero,$zero,0x0 +/* 33354: 24010800 */ addiu $at,$zero,0x800 +/* 33358: 12010397 */ beq $s0,$at,.NB000341b8 +/* 3335c: 00000000 */ sll $zero,$zero,0x0 +/* 33360: 24011000 */ addiu $at,$zero,0x1000 +/* 33364: 12010213 */ beq $s0,$at,.NB00033bb4 +/* 33368: 00000000 */ sll $zero,$zero,0x0 +/* 3336c: 24012000 */ addiu $at,$zero,0x2000 +/* 33370: 12010312 */ beq $s0,$at,.NB00033fbc +/* 33374: 00000000 */ sll $zero,$zero,0x0 +/* 33378: 24014000 */ addiu $at,$zero,0x4000 +/* 3337c: 120102d8 */ beq $s0,$at,.NB00033ee0 +/* 33380: 00000000 */ sll $zero,$zero,0x0 +/* 33384: 10000486 */ beqz $zero,.NB000345a0 +/* 33388: 00000000 */ sll $zero,$zero,0x0 +.NB0003338c: +/* 3338c: 2a010081 */ slti $at,$s0,0x81 +/* 33390: 14200009 */ bnez $at,.NB000333b8 +/* 33394: 00000000 */ sll $zero,$zero,0x0 +/* 33398: 24010100 */ addiu $at,$zero,0x100 +/* 3339c: 1201029f */ beq $s0,$at,.NB00033e1c +/* 333a0: 00000000 */ sll $zero,$zero,0x0 +/* 333a4: 24010200 */ addiu $at,$zero,0x200 +/* 333a8: 12010467 */ beq $s0,$at,.NB00034548 +/* 333ac: 00000000 */ sll $zero,$zero,0x0 +/* 333b0: 1000047b */ beqz $zero,.NB000345a0 +/* 333b4: 00000000 */ sll $zero,$zero,0x0 +.NB000333b8: +/* 333b8: 2a010041 */ slti $at,$s0,0x41 +/* 333bc: 14200006 */ bnez $at,.NB000333d8 +/* 333c0: 00000000 */ sll $zero,$zero,0x0 +/* 333c4: 24010080 */ addiu $at,$zero,0x80 +/* 333c8: 1201045b */ beq $s0,$at,.NB00034538 +/* 333cc: 00000000 */ sll $zero,$zero,0x0 +/* 333d0: 10000473 */ beqz $zero,.NB000345a0 +/* 333d4: 00000000 */ sll $zero,$zero,0x0 +.NB000333d8: +/* 333d8: 2a010011 */ slti $at,$s0,0x11 +/* 333dc: 14200006 */ bnez $at,.NB000333f8 +/* 333e0: 00000000 */ sll $zero,$zero,0x0 +/* 333e4: 24010040 */ addiu $at,$zero,0x40 +/* 333e8: 120103d4 */ beq $s0,$at,.NB0003433c +/* 333ec: 00000000 */ sll $zero,$zero,0x0 +/* 333f0: 1000046b */ beqz $zero,.NB000345a0 +/* 333f4: 00000000 */ sll $zero,$zero,0x0 +.NB000333f8: +/* 333f8: 260effff */ addiu $t6,$s0,-1 +/* 333fc: 2dc10010 */ sltiu $at,$t6,0x10 +/* 33400: 10200467 */ beqz $at,.NB000345a0 +/* 33404: 00000000 */ sll $zero,$zero,0x0 +/* 33408: 000e7080 */ sll $t6,$t6,0x2 +/* 3340c: 3c017005 */ lui $at,0x7005 +/* 33410: 002e0821 */ addu $at,$at,$t6 +/* 33414: 8c2e5e70 */ lw $t6,0x5e70($at) +/* 33418: 01c00008 */ jr $t6 +/* 3341c: 00000000 */ sll $zero,$zero,0x0 +/* 33420: 8faf0060 */ lw $t7,0x60($sp) +/* 33424: 24010005 */ addiu $at,$zero,0x5 +/* 33428: 91f80045 */ lbu $t8,0x45($t7) +/* 3342c: 13010006 */ beq $t8,$at,.NB00033448 +/* 33430: 00000000 */ sll $zero,$zero,0x0 +/* 33434: 24010004 */ addiu $at,$zero,0x4 +/* 33438: 13010003 */ beq $t8,$at,.NB00033448 +/* 3343c: 00000000 */ sll $zero,$zero,0x0 +/* 33440: 10000472 */ beqz $zero,.NB0003460c +/* 33444: 00000000 */ sll $zero,$zero,0x0 +.NB00033448: +/* 33448: 8fb90060 */ lw $t9,0x60($sp) +/* 3344c: 93280043 */ lbu $t0,0x43($t9) +/* 33450: a7a800b2 */ sh $t0,0xb2($sp) +/* 33454: 8fa90060 */ lw $t1,0x60($sp) +/* 33458: 912a0040 */ lbu $t2,0x40($t1) +/* 3345c: a7aa00b0 */ sh $t2,0xb0($sp) +/* 33460: a3a000b4 */ sb $zero,0xb4($sp) +/* 33464: 3c0c8006 */ lui $t4,0x8006 +/* 33468: 8d8c163c */ lw $t4,0x163c($t4) +/* 3346c: 3c0b8006 */ lui $t3,0x8006 +/* 33470: 856b1640 */ lh $t3,0x1640($t3) +/* 33474: 8d8d0044 */ lw $t5,0x44($t4) +/* 33478: 016d702a */ slt $t6,$t3,$t5 +/* 3347c: 39ce0001 */ xori $t6,$t6,0x1 +/* 33480: afae0070 */ sw $t6,0x70($sp) +/* 33484: 8faf0070 */ lw $t7,0x70($sp) +/* 33488: 11e00006 */ beqz $t7,.NB000334a4 +/* 3348c: 00000000 */ sll $zero,$zero,0x0 +/* 33490: 8fb80060 */ lw $t8,0x60($sp) +/* 33494: 93190044 */ lbu $t9,0x44($t8) +/* 33498: 33280010 */ andi $t0,$t9,0x10 +/* 3349c: 11000006 */ beqz $t0,.NB000334b8 +/* 334a0: 00000000 */ sll $zero,$zero,0x0 +.NB000334a4: +/* 334a4: 8fa40060 */ lw $a0,0x60($sp) +/* 334a8: 27a500b0 */ addiu $a1,$sp,0xb0 +/* 334ac: 0c00f76c */ jal 0x3ddb0 +/* 334b0: 2484000c */ addiu $a0,$a0,0xc +/* 334b4: afa20064 */ sw $v0,0x64($sp) +.NB000334b8: +/* 334b8: 8fa90064 */ lw $t1,0x64($sp) +/* 334bc: 1520005f */ bnez $t1,.NB0003363c +/* 334c0: 00000000 */ sll $zero,$zero,0x0 +/* 334c4: 8faa0060 */ lw $t2,0x60($sp) +/* 334c8: 914c0044 */ lbu $t4,0x44($t2) +/* 334cc: 318b0012 */ andi $t3,$t4,0x12 +/* 334d0: 15600004 */ bnez $t3,.NB000334e4 +/* 334d4: 00000000 */ sll $zero,$zero,0x0 +/* 334d8: 8d4d0034 */ lw $t5,0x34($t2) +/* 334dc: 19a00011 */ blez $t5,.NB00033524 +/* 334e0: 00000000 */ sll $zero,$zero,0x0 +.NB000334e4: +/* 334e4: 8faf0060 */ lw $t7,0x60($sp) +/* 334e8: 240e0004 */ addiu $t6,$zero,0x4 +/* 334ec: a1ee0045 */ sb $t6,0x45($t7) +/* 334f0: 8fb80060 */ lw $t8,0x60($sp) +/* 334f4: 8f190034 */ lw $t9,0x34($t8) +/* 334f8: 2728ffff */ addiu $t0,$t9,-1 +/* 334fc: af080034 */ sw $t0,0x34($t8) +/* 33500: 3c048006 */ lui $a0,0x8006 +/* 33504: 8c84163c */ lw $a0,0x163c($a0) +/* 33508: 8fa500b8 */ lw $a1,0xb8($sp) +/* 3350c: 34068235 */ dli $a2,0x8235 +/* 33510: 00003825 */ or $a3,$zero,$zero +/* 33514: 0c00f678 */ jal 0x3d9e0 +/* 33518: 24840014 */ addiu $a0,$a0,0x14 +/* 3351c: 10000045 */ beqz $zero,.NB00033634 +/* 33520: 00000000 */ sll $zero,$zero,0x0 +.NB00033524: +/* 33524: 8fa90070 */ lw $t1,0x70($sp) +/* 33528: 11200040 */ beqz $t1,.NB0003362c +/* 3352c: 00000000 */ sll $zero,$zero,0x0 +/* 33530: 3c0c8006 */ lui $t4,0x8006 +/* 33534: 8d8c1634 */ lw $t4,0x1634($t4) +/* 33538: afac0054 */ sw $t4,0x54($sp) +.NB0003353c: +/* 3353c: 8fab0054 */ lw $t3,0x54($sp) +/* 33540: 916a0044 */ lbu $t2,0x44($t3) +/* 33544: 314d0012 */ andi $t5,$t2,0x12 +/* 33548: 15a0001c */ bnez $t5,.NB000335bc +/* 3354c: 00000000 */ sll $zero,$zero,0x0 +/* 33550: 314e0004 */ andi $t6,$t2,0x4 +/* 33554: 11c00019 */ beqz $t6,.NB000335bc +/* 33558: 00000000 */ sll $zero,$zero,0x0 +/* 3355c: 916f0045 */ lbu $t7,0x45($t3) +/* 33560: 24010003 */ addiu $at,$zero,0x3 +/* 33564: 11e10015 */ beq $t7,$at,.NB000335bc +/* 33568: 00000000 */ sll $zero,$zero,0x0 +/* 3356c: afa00070 */ sw $zero,0x70($sp) +/* 33570: 24190080 */ addiu $t9,$zero,0x80 +/* 33574: a7b90044 */ sh $t9,0x44($sp) +/* 33578: 8fa80054 */ lw $t0,0x54($sp) +/* 3357c: afa80048 */ sw $t0,0x48($sp) +/* 33580: 8fa90054 */ lw $t1,0x54($sp) +/* 33584: 24180003 */ addiu $t8,$zero,0x3 +/* 33588: a1380045 */ sb $t8,0x45($t1) +/* 3358c: 3c048006 */ lui $a0,0x8006 +/* 33590: 8c84163c */ lw $a0,0x163c($a0) +/* 33594: 27a50044 */ addiu $a1,$sp,0x44 +/* 33598: 240603e8 */ addiu $a2,$zero,0x3e8 +/* 3359c: 00003825 */ or $a3,$zero,$zero +/* 335a0: 0c00f678 */ jal 0x3d9e0 +/* 335a4: 24840014 */ addiu $a0,$a0,0x14 +/* 335a8: 8fa40054 */ lw $a0,0x54($sp) +/* 335ac: 00002825 */ or $a1,$zero,$zero +/* 335b0: 240603e8 */ addiu $a2,$zero,0x3e8 +/* 335b4: 0c00f830 */ jal 0x3e0c0 +/* 335b8: 2484000c */ addiu $a0,$a0,0xc +.NB000335bc: +/* 335bc: 8fac0054 */ lw $t4,0x54($sp) +/* 335c0: 8d8d0004 */ lw $t5,0x4($t4) +/* 335c4: afad0054 */ sw $t5,0x54($sp) +/* 335c8: 8faa0070 */ lw $t2,0x70($sp) +/* 335cc: 11400004 */ beqz $t2,.NB000335e0 +/* 335d0: 00000000 */ sll $zero,$zero,0x0 +/* 335d4: 8fae0054 */ lw $t6,0x54($sp) +/* 335d8: 15c0ffd8 */ bnez $t6,.NB0003353c +/* 335dc: 00000000 */ sll $zero,$zero,0x0 +.NB000335e0: +/* 335e0: 8fab0070 */ lw $t3,0x70($sp) +/* 335e4: 1560000d */ bnez $t3,.NB0003361c +/* 335e8: 00000000 */ sll $zero,$zero,0x0 +/* 335ec: 8fb90060 */ lw $t9,0x60($sp) +/* 335f0: 240f0002 */ addiu $t7,$zero,0x2 +/* 335f4: af2f0034 */ sw $t7,0x34($t9) +/* 335f8: 3c048006 */ lui $a0,0x8006 +/* 335fc: 8c84163c */ lw $a0,0x163c($a0) +/* 33600: 8fa500b8 */ lw $a1,0xb8($sp) +/* 33604: 240603e9 */ addiu $a2,$zero,0x3e9 +/* 33608: 00003825 */ or $a3,$zero,$zero +/* 3360c: 0c00f678 */ jal 0x3d9e0 +/* 33610: 24840014 */ addiu $a0,$a0,0x14 +/* 33614: 10000003 */ beqz $zero,.NB00033624 +/* 33618: 00000000 */ sll $zero,$zero,0x0 +.NB0003361c: +/* 3361c: 0c00d188 */ jal 0x34620 +/* 33620: 8fa40060 */ lw $a0,0x60($sp) +.NB00033624: +/* 33624: 10000003 */ beqz $zero,.NB00033634 +/* 33628: 00000000 */ sll $zero,$zero,0x0 +.NB0003362c: +/* 3362c: 0c00d188 */ jal 0x34620 +/* 33630: 8fa40060 */ lw $a0,0x60($sp) +.NB00033634: +/* 33634: 100003f5 */ beqz $zero,.NB0003460c +/* 33638: 00000000 */ sll $zero,$zero,0x0 +.NB0003363c: +/* 3363c: 8fa80060 */ lw $t0,0x60($sp) +/* 33640: 91180044 */ lbu $t8,0x44($t0) +/* 33644: 37090004 */ ori $t1,$t8,0x4 +/* 33648: a1090044 */ sb $t1,0x44($t0) +/* 3364c: 8fac00ac */ lw $t4,0xac($sp) +/* 33650: 8fae0060 */ lw $t6,0x60($sp) +/* 33654: 8d8d0000 */ lw $t5,0x0($t4) +/* 33658: 91aa000c */ lbu $t2,0xc($t5) +/* 3365c: a5ca003a */ sh $t2,0x3a($t6) +/* 33660: 87ab00b2 */ lh $t3,0xb2($sp) +/* 33664: 8faf0060 */ lw $t7,0x60($sp) +/* 33668: a1eb0043 */ sb $t3,0x43($t7) +/* 3366c: 8fb900ac */ lw $t9,0xac($sp) +/* 33670: 8fa80060 */ lw $t0,0x60($sp) +/* 33674: 8f380000 */ lw $t8,0x0($t9) +/* 33678: c508002c */ lwc1 $f8,0x2c($t0) +/* 3367c: c5100028 */ lwc1 $f16,0x28($t0) +/* 33680: 8f090000 */ lw $t1,0x0($t8) +/* 33684: 44892000 */ mtc1 $t1,$f4 +/* 33688: 00000000 */ sll $zero,$zero,0x0 +/* 3368c: 468021a0 */ cvt.s.w $f6,$f4 +/* 33690: 46083283 */ div.s $f10,$f6,$f8 +/* 33694: 46105483 */ div.s $f18,$f10,$f16 +/* 33698: 4600910d */ trunc.w.s $f4,$f18 +/* 3369c: 440d2000 */ mfc1 $t5,$f4 +/* 336a0: 00000000 */ sll $zero,$zero,0x0 +/* 336a4: afad0080 */ sw $t5,0x80($sp) +/* 336a8: 3c0a8006 */ lui $t2,0x8006 +/* 336ac: 8d4a163c */ lw $t2,0x163c($t2) +/* 336b0: 8fab0080 */ lw $t3,0x80($sp) +/* 336b4: 8fb90060 */ lw $t9,0x60($sp) +/* 336b8: 8d4e0050 */ lw $t6,0x50($t2) +/* 336bc: 01cb7821 */ addu $t7,$t6,$t3 +/* 336c0: af2f003c */ sw $t7,0x3c($t9) +/* 336c4: 8fab0060 */ lw $t3,0x60($sp) +/* 336c8: 8fa900a8 */ lw $t1,0xa8($sp) +/* 336cc: 3c18800a */ lui $t8,0x800a +/* 336d0: 856f003a */ lh $t7,0x3a($t3) +/* 336d4: 85790038 */ lh $t9,0x38($t3) +/* 336d8: 91280002 */ lbu $t0,0x2($t1) +/* 336dc: 8f180a34 */ lw $t8,0xa34($t8) +/* 336e0: 01f90019 */ multu $t7,$t9 +/* 336e4: 310c001f */ andi $t4,$t0,0x1f +/* 336e8: 8fa800ac */ lw $t0,0xac($sp) +/* 336ec: 000c6840 */ sll $t5,$t4,0x1 +/* 336f0: 030d5021 */ addu $t2,$t8,$t5 +/* 336f4: 910c000d */ lbu $t4,0xd($t0) +/* 336f8: 24013f01 */ addiu $at,$zero,0x3f01 +/* 336fc: 854e0000 */ lh $t6,0x0($t2) +/* 33700: 00004812 */ mflo $t1 +/* 33704: 00000000 */ sll $zero,$zero,0x0 +/* 33708: 00000000 */ sll $zero,$zero,0x0 +/* 3370c: 012c0019 */ multu $t1,$t4 +/* 33710: 0000c012 */ mflo $t8 +/* 33714: 00000000 */ sll $zero,$zero,0x0 +/* 33718: 00000000 */ sll $zero,$zero,0x0 +/* 3371c: 0301001a */ div $zero,$t8,$at +/* 33720: 00006812 */ mflo $t5 +/* 33724: 24017fff */ addiu $at,$zero,0x7fff +/* 33728: 00000000 */ sll $zero,$zero,0x0 +/* 3372c: 01cd0019 */ multu $t6,$t5 +/* 33730: 00005012 */ mflo $t2 +/* 33734: 00000000 */ sll $zero,$zero,0x0 +/* 33738: 00000000 */ sll $zero,$zero,0x0 +/* 3373c: 0141001a */ div $zero,$t2,$at +/* 33740: 00005812 */ mflo $t3 +/* 33744: 1d600003 */ bgtz $t3,.NB00033754 +/* 33748: 00000000 */ sll $zero,$zero,0x0 +/* 3374c: 10000023 */ beqz $zero,.NB000337dc +/* 33750: afa00078 */ sw $zero,0x78($sp) +.NB00033754: +/* 33754: 8fad0060 */ lw $t5,0x60($sp) +/* 33758: 8fb900a8 */ lw $t9,0xa8($sp) +/* 3375c: 3c0f800a */ lui $t7,0x800a +/* 33760: 85aa003a */ lh $t2,0x3a($t5) +/* 33764: 85ab0038 */ lh $t3,0x38($t5) +/* 33768: 93280002 */ lbu $t0,0x2($t9) +/* 3376c: 8def0a34 */ lw $t7,0xa34($t7) +/* 33770: 014b0019 */ multu $t2,$t3 +/* 33774: 3109001f */ andi $t1,$t0,0x1f +/* 33778: 8fa800ac */ lw $t0,0xac($sp) +/* 3377c: 00096040 */ sll $t4,$t1,0x1 +/* 33780: 01ecc021 */ addu $t8,$t7,$t4 +/* 33784: 9109000d */ lbu $t1,0xd($t0) +/* 33788: 24013f01 */ addiu $at,$zero,0x3f01 +/* 3378c: 870e0000 */ lh $t6,0x0($t8) +/* 33790: 0000c812 */ mflo $t9 +/* 33794: 00000000 */ sll $zero,$zero,0x0 +/* 33798: 00000000 */ sll $zero,$zero,0x0 +/* 3379c: 03290019 */ multu $t9,$t1 +/* 337a0: 00007812 */ mflo $t7 +/* 337a4: 00000000 */ sll $zero,$zero,0x0 +/* 337a8: 00000000 */ sll $zero,$zero,0x0 +/* 337ac: 01e1001a */ div $zero,$t7,$at +/* 337b0: 00006012 */ mflo $t4 +/* 337b4: 24017fff */ addiu $at,$zero,0x7fff +/* 337b8: 00000000 */ sll $zero,$zero,0x0 +/* 337bc: 01cc0019 */ multu $t6,$t4 +/* 337c0: 0000c012 */ mflo $t8 +/* 337c4: 00000000 */ sll $zero,$zero,0x0 +/* 337c8: 00000000 */ sll $zero,$zero,0x0 +/* 337cc: 0301001a */ div $zero,$t8,$at +/* 337d0: 00006812 */ mflo $t5 +/* 337d4: 25aaffff */ addiu $t2,$t5,-1 +/* 337d8: afaa0078 */ sw $t2,0x78($sp) +.NB000337dc: +/* 337dc: 8fab0060 */ lw $t3,0x60($sp) +/* 337e0: 8fb900ac */ lw $t9,0xac($sp) +/* 337e4: 91680041 */ lbu $t0,0x41($t3) +/* 337e8: 9329000c */ lbu $t1,0xc($t9) +/* 337ec: 01097821 */ addu $t7,$t0,$t1 +/* 337f0: 25eeffc0 */ addiu $t6,$t7,-64 +/* 337f4: afae0074 */ sw $t6,0x74($sp) +/* 337f8: 8fac0074 */ lw $t4,0x74($sp) +/* 337fc: 19800003 */ blez $t4,.NB0003380c +/* 33800: 00000000 */ sll $zero,$zero,0x0 +/* 33804: 10000002 */ beqz $zero,.NB00033810 +/* 33808: 01808025 */ or $s0,$t4,$zero +.NB0003380c: +/* 3380c: 00008025 */ or $s0,$zero,$zero +.NB00033810: +/* 33810: 2a01007f */ slti $at,$s0,0x7f +/* 33814: 10200009 */ beqz $at,.NB0003383c +/* 33818: 00000000 */ sll $zero,$zero,0x0 +/* 3381c: 8fb80074 */ lw $t8,0x74($sp) +/* 33820: 1b000003 */ blez $t8,.NB00033830 +/* 33824: 00000000 */ sll $zero,$zero,0x0 +/* 33828: 10000002 */ beqz $zero,.NB00033834 +/* 3382c: 03008825 */ or $s1,$t8,$zero +.NB00033830: +/* 33830: 00008825 */ or $s1,$zero,$zero +.NB00033834: +/* 33834: 10000003 */ beqz $zero,.NB00033844 +/* 33838: a3b100a7 */ sb $s1,0xa7($sp) +.NB0003383c: +/* 3383c: 240d007f */ addiu $t5,$zero,0x7f +/* 33840: a3ad00a7 */ sb $t5,0xa7($sp) +.NB00033844: +/* 33844: 8fa800a8 */ lw $t0,0xa8($sp) +/* 33848: 8faa0060 */ lw $t2,0x60($sp) +/* 3384c: 91090003 */ lbu $t1,0x3($t0) +/* 33850: 914b0042 */ lbu $t3,0x42($t2) +/* 33854: 312f000f */ andi $t7,$t1,0xf +/* 33858: 000f70c0 */ sll $t6,$t7,0x3 +/* 3385c: 3179007f */ andi $t9,$t3,0x7f +/* 33860: 032e6021 */ addu $t4,$t9,$t6 +/* 33864: afac007c */ sw $t4,0x7c($sp) +/* 33868: 8fb8007c */ lw $t8,0x7c($sp) +/* 3386c: 07010003 */ bgez $t8,.NB0003387c +/* 33870: 00000000 */ sll $zero,$zero,0x0 +/* 33874: 10000002 */ beqz $zero,.NB00033880 +/* 33878: 00008025 */ or $s0,$zero,$zero +.NB0003387c: +/* 3387c: 8fb0007c */ lw $s0,0x7c($sp) +.NB00033880: +/* 33880: 2a010080 */ slti $at,$s0,0x80 +/* 33884: 14200004 */ bnez $at,.NB00033898 +/* 33888: 00000000 */ sll $zero,$zero,0x0 +/* 3388c: 240d007f */ addiu $t5,$zero,0x7f +/* 33890: 10000008 */ beqz $zero,.NB000338b4 +/* 33894: afad007c */ sw $t5,0x7c($sp) +.NB00033898: +/* 33898: 8faa007c */ lw $t2,0x7c($sp) +/* 3389c: 05410003 */ bgez $t2,.NB000338ac +/* 338a0: 00000000 */ sll $zero,$zero,0x0 +/* 338a4: 10000002 */ beqz $zero,.NB000338b0 +/* 338a8: 00008825 */ or $s1,$zero,$zero +.NB000338ac: +/* 338ac: 8fb1007c */ lw $s1,0x7c($sp) +.NB000338b0: +/* 338b0: afb1007c */ sw $s1,0x7c($sp) +.NB000338b4: +/* 338b4: 8fa80060 */ lw $t0,0x60($sp) +/* 338b8: 8fab007c */ lw $t3,0x7c($sp) +/* 338bc: 91090042 */ lbu $t1,0x42($t0) +/* 338c0: 312f0080 */ andi $t7,$t1,0x80 +/* 338c4: 016fc825 */ or $t9,$t3,$t7 +/* 338c8: afb9007c */ sw $t9,0x7c($sp) +/* 338cc: 8fae0060 */ lw $t6,0x60($sp) +/* 338d0: 8fac00ac */ lw $t4,0xac($sp) +/* 338d4: 93b800a7 */ lbu $t8,0xa7($sp) +/* 338d8: c5c6002c */ lwc1 $f6,0x2c($t6) +/* 338dc: c5c80028 */ lwc1 $f8,0x28($t6) +/* 338e0: 8d850008 */ lw $a1,0x8($t4) +/* 338e4: 8fad007c */ lw $t5,0x7c($sp) +/* 338e8: 46083282 */ mul.s $f10,$f6,$f8 +/* 338ec: 44808000 */ mtc1 $zero,$f16 +/* 338f0: 8faa0080 */ lw $t2,0x80($sp) +/* 338f4: afa00020 */ sw $zero,0x20($sp) +/* 338f8: afa00018 */ sw $zero,0x18($sp) +/* 338fc: 8fa70078 */ lw $a3,0x78($sp) +/* 33900: 25c4000c */ addiu $a0,$t6,0xc +/* 33904: 44065000 */ mfc1 $a2,$f10 +/* 33908: afb80010 */ sw $t8,0x10($sp) +/* 3390c: afad0014 */ sw $t5,0x14($sp) +/* 33910: afaa0024 */ sw $t2,0x24($sp) +/* 33914: 0c00f864 */ jal 0x3e190 +/* 33918: e7b0001c */ swc1 $f16,0x1c($sp) +/* 3391c: 8fa90060 */ lw $t1,0x60($sp) +/* 33920: 24080001 */ addiu $t0,$zero,0x1 +/* 33924: a1280045 */ sb $t0,0x45($t1) +/* 33928: 3c0b8006 */ lui $t3,0x8006 +/* 3392c: 856b1640 */ lh $t3,0x1640($t3) +/* 33930: 3c018006 */ lui $at,0x8006 +/* 33934: 256f0001 */ addiu $t7,$t3,0x1 +/* 33938: a42f1640 */ sh $t7,0x1640($at) +/* 3393c: 8fb90060 */ lw $t9,0x60($sp) +/* 33940: 932c0044 */ lbu $t4,0x44($t9) +/* 33944: 318e0002 */ andi $t6,$t4,0x2 +/* 33948: 15c00098 */ bnez $t6,.NB00033bac +/* 3394c: 00000000 */ sll $zero,$zero,0x0 +/* 33950: 8fb80080 */ lw $t8,0x80($sp) +/* 33954: 1700007b */ bnez $t8,.NB00033b44 +/* 33958: 00000000 */ sll $zero,$zero,0x0 +/* 3395c: 8fad00ac */ lw $t5,0xac($sp) +/* 33960: 8fa90060 */ lw $t1,0x60($sp) +/* 33964: 8daa0000 */ lw $t2,0x0($t5) +/* 33968: 9148000d */ lbu $t0,0xd($t2) +/* 3396c: a528003a */ sh $t0,0x3a($t1) +/* 33970: 8faa0060 */ lw $t2,0x60($sp) +/* 33974: 8faf00a8 */ lw $t7,0xa8($sp) +/* 33978: 3c0b800a */ lui $t3,0x800a +/* 3397c: 8548003a */ lh $t0,0x3a($t2) +/* 33980: 85490038 */ lh $t1,0x38($t2) +/* 33984: 91f90002 */ lbu $t9,0x2($t7) +/* 33988: 8d6b0a34 */ lw $t3,0xa34($t3) +/* 3398c: 01090019 */ multu $t0,$t1 +/* 33990: 332c001f */ andi $t4,$t9,0x1f +/* 33994: 8fb900ac */ lw $t9,0xac($sp) +/* 33998: 000c7040 */ sll $t6,$t4,0x1 +/* 3399c: 016ec021 */ addu $t8,$t3,$t6 +/* 339a0: 932c000d */ lbu $t4,0xd($t9) +/* 339a4: 24013f01 */ addiu $at,$zero,0x3f01 +/* 339a8: 870d0000 */ lh $t5,0x0($t8) +/* 339ac: 00007812 */ mflo $t7 +/* 339b0: 00000000 */ sll $zero,$zero,0x0 +/* 339b4: 00000000 */ sll $zero,$zero,0x0 +/* 339b8: 01ec0019 */ multu $t7,$t4 +/* 339bc: 00005812 */ mflo $t3 +/* 339c0: 00000000 */ sll $zero,$zero,0x0 +/* 339c4: 00000000 */ sll $zero,$zero,0x0 +/* 339c8: 0161001a */ div $zero,$t3,$at +/* 339cc: 00007012 */ mflo $t6 +/* 339d0: 24017fff */ addiu $at,$zero,0x7fff +/* 339d4: 00000000 */ sll $zero,$zero,0x0 +/* 339d8: 01ae0019 */ multu $t5,$t6 +/* 339dc: 0000c012 */ mflo $t8 +/* 339e0: 00000000 */ sll $zero,$zero,0x0 +/* 339e4: 00000000 */ sll $zero,$zero,0x0 +/* 339e8: 0301001a */ div $zero,$t8,$at +/* 339ec: 00005012 */ mflo $t2 +/* 339f0: 1d400003 */ bgtz $t2,.NB00033a00 +/* 339f4: 00000000 */ sll $zero,$zero,0x0 +/* 339f8: 10000023 */ beqz $zero,.NB00033a88 +/* 339fc: afa00078 */ sw $zero,0x78($sp) +.NB00033a00: +/* 33a00: 8fae0060 */ lw $t6,0x60($sp) +/* 33a04: 8fa900a8 */ lw $t1,0xa8($sp) +/* 33a08: 3c08800a */ lui $t0,0x800a +/* 33a0c: 85d8003a */ lh $t8,0x3a($t6) +/* 33a10: 85ca0038 */ lh $t2,0x38($t6) +/* 33a14: 91390002 */ lbu $t9,0x2($t1) +/* 33a18: 8d080a34 */ lw $t0,0xa34($t0) +/* 33a1c: 030a0019 */ multu $t8,$t2 +/* 33a20: 332f001f */ andi $t7,$t9,0x1f +/* 33a24: 8fb900ac */ lw $t9,0xac($sp) +/* 33a28: 000f6040 */ sll $t4,$t7,0x1 +/* 33a2c: 010c5821 */ addu $t3,$t0,$t4 +/* 33a30: 932f000d */ lbu $t7,0xd($t9) +/* 33a34: 24013f01 */ addiu $at,$zero,0x3f01 +/* 33a38: 856d0000 */ lh $t5,0x0($t3) +/* 33a3c: 00004812 */ mflo $t1 +/* 33a40: 00000000 */ sll $zero,$zero,0x0 +/* 33a44: 00000000 */ sll $zero,$zero,0x0 +/* 33a48: 012f0019 */ multu $t1,$t7 +/* 33a4c: 00004012 */ mflo $t0 +/* 33a50: 00000000 */ sll $zero,$zero,0x0 +/* 33a54: 00000000 */ sll $zero,$zero,0x0 +/* 33a58: 0101001a */ div $zero,$t0,$at +/* 33a5c: 00006012 */ mflo $t4 +/* 33a60: 24017fff */ addiu $at,$zero,0x7fff +/* 33a64: 00000000 */ sll $zero,$zero,0x0 +/* 33a68: 01ac0019 */ multu $t5,$t4 +/* 33a6c: 00005812 */ mflo $t3 +/* 33a70: 00000000 */ sll $zero,$zero,0x0 +/* 33a74: 00000000 */ sll $zero,$zero,0x0 +/* 33a78: 0161001a */ div $zero,$t3,$at +/* 33a7c: 00007012 */ mflo $t6 +/* 33a80: 25d8ffff */ addiu $t8,$t6,-1 +/* 33a84: afb80078 */ sw $t8,0x78($sp) +.NB00033a88: +/* 33a88: 8faa00ac */ lw $t2,0xac($sp) +/* 33a8c: 8faf0060 */ lw $t7,0x60($sp) +/* 33a90: 8d590000 */ lw $t9,0x0($t2) +/* 33a94: c5e60028 */ lwc1 $f6,0x28($t7) +/* 33a98: c5ea002c */ lwc1 $f10,0x2c($t7) +/* 33a9c: 8f290004 */ lw $t1,0x4($t9) +/* 33aa0: 44899000 */ mtc1 $t1,$f18 +/* 33aa4: 00000000 */ sll $zero,$zero,0x0 +/* 33aa8: 46809120 */ cvt.s.w $f4,$f18 +/* 33aac: 46062203 */ div.s $f8,$f4,$f6 +/* 33ab0: 460a4403 */ div.s $f16,$f8,$f10 +/* 33ab4: 4600848d */ trunc.w.s $f18,$f16 +/* 33ab8: 440d9000 */ mfc1 $t5,$f18 +/* 33abc: 00000000 */ sll $zero,$zero,0x0 +/* 33ac0: afad0080 */ sw $t5,0x80($sp) +/* 33ac4: 3c0c8006 */ lui $t4,0x8006 +/* 33ac8: 8d8c163c */ lw $t4,0x163c($t4) +/* 33acc: 8fae0080 */ lw $t6,0x80($sp) +/* 33ad0: 8faa0060 */ lw $t2,0x60($sp) +/* 33ad4: 8d8b0050 */ lw $t3,0x50($t4) +/* 33ad8: 016ec021 */ addu $t8,$t3,$t6 +/* 33adc: ad58003c */ sw $t8,0x3c($t2) +/* 33ae0: 8fa40060 */ lw $a0,0x60($sp) +/* 33ae4: 8fa50078 */ lw $a1,0x78($sp) +/* 33ae8: 8fa60080 */ lw $a2,0x80($sp) +/* 33aec: 0c00f830 */ jal 0x3e0c0 +/* 33af0: 2484000c */ addiu $a0,$a0,0xc +/* 33af4: 24190002 */ addiu $t9,$zero,0x2 +/* 33af8: a7b90094 */ sh $t9,0x94($sp) +/* 33afc: 8fa90060 */ lw $t1,0x60($sp) +/* 33b00: afa90098 */ sw $t1,0x98($sp) +/* 33b04: 3c048006 */ lui $a0,0x8006 +/* 33b08: 8c84163c */ lw $a0,0x163c($a0) +/* 33b0c: 27a50094 */ addiu $a1,$sp,0x94 +/* 33b10: 8fa60080 */ lw $a2,0x80($sp) +/* 33b14: 00003825 */ or $a3,$zero,$zero +/* 33b18: 0c00f678 */ jal 0x3d9e0 +/* 33b1c: 24840014 */ addiu $a0,$a0,0x14 +/* 33b20: 8faf0060 */ lw $t7,0x60($sp) +/* 33b24: 91e80044 */ lbu $t0,0x44($t7) +/* 33b28: 310d0020 */ andi $t5,$t0,0x20 +/* 33b2c: 11a00003 */ beqz $t5,.NB00033b3c +/* 33b30: 00000000 */ sll $zero,$zero,0x0 +/* 33b34: 0c00d1a4 */ jal 0x34690 +/* 33b38: 8fa40060 */ lw $a0,0x60($sp) +.NB00033b3c: +/* 33b3c: 1000001b */ beqz $zero,.NB00033bac +/* 33b40: 00000000 */ sll $zero,$zero,0x0 +.NB00033b44: +/* 33b44: 240c0040 */ addiu $t4,$zero,0x40 +/* 33b48: a7ac0094 */ sh $t4,0x94($sp) +/* 33b4c: 8fab0060 */ lw $t3,0x60($sp) +/* 33b50: afab0098 */ sw $t3,0x98($sp) +/* 33b54: 8fae00ac */ lw $t6,0xac($sp) +/* 33b58: 8fb90060 */ lw $t9,0x60($sp) +/* 33b5c: 8dd80000 */ lw $t8,0x0($t6) +/* 33b60: c728002c */ lwc1 $f8,0x2c($t9) +/* 33b64: c7300028 */ lwc1 $f16,0x28($t9) +/* 33b68: 8f0a0000 */ lw $t2,0x0($t8) +/* 33b6c: 448a2000 */ mtc1 $t2,$f4 +/* 33b70: 00000000 */ sll $zero,$zero,0x0 +/* 33b74: 468021a0 */ cvt.s.w $f6,$f4 +/* 33b78: 46083283 */ div.s $f10,$f6,$f8 +/* 33b7c: 46105483 */ div.s $f18,$f10,$f16 +/* 33b80: 4600910d */ trunc.w.s $f4,$f18 +/* 33b84: 440f2000 */ mfc1 $t7,$f4 +/* 33b88: 00000000 */ sll $zero,$zero,0x0 +/* 33b8c: afaf0080 */ sw $t7,0x80($sp) +/* 33b90: 3c048006 */ lui $a0,0x8006 +/* 33b94: 8c84163c */ lw $a0,0x163c($a0) +/* 33b98: 27a50094 */ addiu $a1,$sp,0x94 +/* 33b9c: 8fa60080 */ lw $a2,0x80($sp) +/* 33ba0: 00003825 */ or $a3,$zero,$zero +/* 33ba4: 0c00f678 */ jal 0x3d9e0 +/* 33ba8: 24840014 */ addiu $a0,$a0,0x14 +.NB00033bac: +/* 33bac: 1000027e */ beqz $zero,.NB000345a8 +/* 33bb0: 00000000 */ sll $zero,$zero,0x0 +.NB00033bb4: +/* 33bb4: 8fa800b8 */ lw $t0,0xb8($sp) +/* 33bb8: 24011000 */ addiu $at,$zero,0x1000 +/* 33bbc: 950d0000 */ lhu $t5,0x0($t0) +/* 33bc0: 15a10006 */ bne $t5,$at,.NB00033bdc +/* 33bc4: 00000000 */ sll $zero,$zero,0x0 +/* 33bc8: 8fac0060 */ lw $t4,0x60($sp) +/* 33bcc: 918b0044 */ lbu $t3,0x44($t4) +/* 33bd0: 316e0002 */ andi $t6,$t3,0x2 +/* 33bd4: 11c0004c */ beqz $t6,.NB00033d08 +/* 33bd8: 00000000 */ sll $zero,$zero,0x0 +.NB00033bdc: +/* 33bdc: 8fb80060 */ lw $t8,0x60($sp) +/* 33be0: 24010001 */ addiu $at,$zero,0x1 +/* 33be4: 93100045 */ lbu $s0,0x45($t8) +/* 33be8: 12010009 */ beq $s0,$at,.NB00033c10 +/* 33bec: 00000000 */ sll $zero,$zero,0x0 +/* 33bf0: 24010004 */ addiu $at,$zero,0x4 +/* 33bf4: 12010036 */ beq $s0,$at,.NB00033cd0 +/* 33bf8: 00000000 */ sll $zero,$zero,0x0 +/* 33bfc: 24010005 */ addiu $at,$zero,0x5 +/* 33c00: 12010033 */ beq $s0,$at,.NB00033cd0 +/* 33c04: 00000000 */ sll $zero,$zero,0x0 +/* 33c08: 10000035 */ beqz $zero,.NB00033ce0 +/* 33c0c: 00000000 */ sll $zero,$zero,0x0 +.NB00033c10: +/* 33c10: 3c048006 */ lui $a0,0x8006 +/* 33c14: 8c84163c */ lw $a0,0x163c($a0) +/* 33c18: 8fa50060 */ lw $a1,0x60($sp) +/* 33c1c: 24060040 */ addiu $a2,$zero,0x40 +/* 33c20: 0c00d1c4 */ jal 0x34710 +/* 33c24: 24840014 */ addiu $a0,$a0,0x14 +/* 33c28: 8faa00ac */ lw $t2,0xac($sp) +/* 33c2c: 8faf0060 */ lw $t7,0x60($sp) +/* 33c30: 8d590000 */ lw $t9,0x0($t2) +/* 33c34: c5ea0028 */ lwc1 $f10,0x28($t7) +/* 33c38: c5f2002c */ lwc1 $f18,0x2c($t7) +/* 33c3c: 8f290008 */ lw $t1,0x8($t9) +/* 33c40: 44893000 */ mtc1 $t1,$f6 +/* 33c44: 00000000 */ sll $zero,$zero,0x0 +/* 33c48: 46803220 */ cvt.s.w $f8,$f6 +/* 33c4c: 460a4403 */ div.s $f16,$f8,$f10 +/* 33c50: 46128103 */ div.s $f4,$f16,$f18 +/* 33c54: 4600218d */ trunc.w.s $f6,$f4 +/* 33c58: 440d3000 */ mfc1 $t5,$f6 +/* 33c5c: 00000000 */ sll $zero,$zero,0x0 +/* 33c60: afad0080 */ sw $t5,0x80($sp) +/* 33c64: 8fa40060 */ lw $a0,0x60($sp) +/* 33c68: 00002825 */ or $a1,$zero,$zero +/* 33c6c: 8fa60080 */ lw $a2,0x80($sp) +/* 33c70: 0c00f830 */ jal 0x3e0c0 +/* 33c74: 2484000c */ addiu $a0,$a0,0xc +/* 33c78: 8fac0080 */ lw $t4,0x80($sp) +/* 33c7c: 11800010 */ beqz $t4,.NB00033cc0 +/* 33c80: 00000000 */ sll $zero,$zero,0x0 +/* 33c84: 240b0080 */ addiu $t3,$zero,0x80 +/* 33c88: a7ab0094 */ sh $t3,0x94($sp) +/* 33c8c: 8fae0060 */ lw $t6,0x60($sp) +/* 33c90: afae0098 */ sw $t6,0x98($sp) +/* 33c94: 3c048006 */ lui $a0,0x8006 +/* 33c98: 8c84163c */ lw $a0,0x163c($a0) +/* 33c9c: 27a50094 */ addiu $a1,$sp,0x94 +/* 33ca0: 8fa60080 */ lw $a2,0x80($sp) +/* 33ca4: 00003825 */ or $a3,$zero,$zero +/* 33ca8: 0c00f678 */ jal 0x3d9e0 +/* 33cac: 24840014 */ addiu $a0,$a0,0x14 +/* 33cb0: 8faa0060 */ lw $t2,0x60($sp) +/* 33cb4: 24180002 */ addiu $t8,$zero,0x2 +/* 33cb8: 10000003 */ beqz $zero,.NB00033cc8 +/* 33cbc: a1580045 */ sb $t8,0x45($t2) +.NB00033cc0: +/* 33cc0: 0c00d188 */ jal 0x34620 +/* 33cc4: 8fa40060 */ lw $a0,0x60($sp) +.NB00033cc8: +/* 33cc8: 10000007 */ beqz $zero,.NB00033ce8 +/* 33ccc: 00000000 */ sll $zero,$zero,0x0 +.NB00033cd0: +/* 33cd0: 0c00d188 */ jal 0x34620 +/* 33cd4: 8fa40060 */ lw $a0,0x60($sp) +/* 33cd8: 10000003 */ beqz $zero,.NB00033ce8 +/* 33cdc: 00000000 */ sll $zero,$zero,0x0 +.NB00033ce0: +/* 33ce0: 10000001 */ beqz $zero,.NB00033ce8 +/* 33ce4: 00000000 */ sll $zero,$zero,0x0 +.NB00033ce8: +/* 33ce8: 8fb900b8 */ lw $t9,0xb8($sp) +/* 33cec: 24010002 */ addiu $at,$zero,0x2 +/* 33cf0: 97290000 */ lhu $t1,0x0($t9) +/* 33cf4: 15210004 */ bne $t1,$at,.NB00033d08 +/* 33cf8: 00000000 */ sll $zero,$zero,0x0 +/* 33cfc: 8fa800b8 */ lw $t0,0xb8($sp) +/* 33d00: 240f1000 */ addiu $t7,$zero,0x1000 +/* 33d04: a50f0000 */ sh $t7,0x0($t0) +.NB00033d08: +/* 33d08: 10000227 */ beqz $zero,.NB000345a8 +/* 33d0c: 00000000 */ sll $zero,$zero,0x0 +/* 33d10: 8fad00b8 */ lw $t5,0xb8($sp) +/* 33d14: 8fab0060 */ lw $t3,0x60($sp) +/* 33d18: 8dac0008 */ lw $t4,0x8($t5) +/* 33d1c: a16c0041 */ sb $t4,0x41($t3) +/* 33d20: 8fae0060 */ lw $t6,0x60($sp) +/* 33d24: 24010001 */ addiu $at,$zero,0x1 +/* 33d28: 91d80045 */ lbu $t8,0x45($t6) +/* 33d2c: 1701001f */ bne $t8,$at,.NB00033dac +/* 33d30: 00000000 */ sll $zero,$zero,0x0 +/* 33d34: 8faa0060 */ lw $t2,0x60($sp) +/* 33d38: 8fa900ac */ lw $t1,0xac($sp) +/* 33d3c: 91590041 */ lbu $t9,0x41($t2) +/* 33d40: 912f000c */ lbu $t7,0xc($t1) +/* 33d44: 032f4021 */ addu $t0,$t9,$t7 +/* 33d48: 250dffc0 */ addiu $t5,$t0,-64 +/* 33d4c: afad0074 */ sw $t5,0x74($sp) +/* 33d50: 8fac0074 */ lw $t4,0x74($sp) +/* 33d54: 19800003 */ blez $t4,.NB00033d64 +/* 33d58: 00000000 */ sll $zero,$zero,0x0 +/* 33d5c: 10000002 */ beqz $zero,.NB00033d68 +/* 33d60: 01808025 */ or $s0,$t4,$zero +.NB00033d64: +/* 33d64: 00008025 */ or $s0,$zero,$zero +.NB00033d68: +/* 33d68: 2a01007f */ slti $at,$s0,0x7f +/* 33d6c: 10200009 */ beqz $at,.NB00033d94 +/* 33d70: 00000000 */ sll $zero,$zero,0x0 +/* 33d74: 8fab0074 */ lw $t3,0x74($sp) +/* 33d78: 19600003 */ blez $t3,.NB00033d88 +/* 33d7c: 00000000 */ sll $zero,$zero,0x0 +/* 33d80: 10000002 */ beqz $zero,.NB00033d8c +/* 33d84: 01608825 */ or $s1,$t3,$zero +.NB00033d88: +/* 33d88: 00008825 */ or $s1,$zero,$zero +.NB00033d8c: +/* 33d8c: 10000003 */ beqz $zero,.NB00033d9c +/* 33d90: a3b100a7 */ sb $s1,0xa7($sp) +.NB00033d94: +/* 33d94: 240e007f */ addiu $t6,$zero,0x7f +/* 33d98: a3ae00a7 */ sb $t6,0xa7($sp) +.NB00033d9c: +/* 33d9c: 8fa40060 */ lw $a0,0x60($sp) +/* 33da0: 93a500a7 */ lbu $a1,0xa7($sp) +/* 33da4: 0c00f8b0 */ jal 0x3e2c0 +/* 33da8: 2484000c */ addiu $a0,$a0,0xc +.NB00033dac: +/* 33dac: 100001fe */ beqz $zero,.NB000345a8 +/* 33db0: 00000000 */ sll $zero,$zero,0x0 +/* 33db4: 8fb800b8 */ lw $t8,0xb8($sp) +/* 33db8: 8faa0060 */ lw $t2,0x60($sp) +/* 33dbc: c7080008 */ lwc1 $f8,0x8($t8) +/* 33dc0: e548002c */ swc1 $f8,0x2c($t2) +/* 33dc4: 8fa90060 */ lw $t1,0x60($sp) +/* 33dc8: 24010001 */ addiu $at,$zero,0x1 +/* 33dcc: 91390045 */ lbu $t9,0x45($t1) +/* 33dd0: 17210010 */ bne $t9,$at,.NB00033e14 +/* 33dd4: 00000000 */ sll $zero,$zero,0x0 +/* 33dd8: 8faf0060 */ lw $t7,0x60($sp) +/* 33ddc: c5ea002c */ lwc1 $f10,0x2c($t7) +/* 33de0: c5f00028 */ lwc1 $f16,0x28($t7) +/* 33de4: 25e4000c */ addiu $a0,$t7,0xc +/* 33de8: 46105482 */ mul.s $f18,$f10,$f16 +/* 33dec: 44059000 */ mfc1 $a1,$f18 +/* 33df0: 0c00f8dc */ jal 0x3e370 +/* 33df4: 00000000 */ sll $zero,$zero,0x0 +/* 33df8: 8fa80060 */ lw $t0,0x60($sp) +/* 33dfc: 910d0044 */ lbu $t5,0x44($t0) +/* 33e00: 31ac0020 */ andi $t4,$t5,0x20 +/* 33e04: 11800003 */ beqz $t4,.NB00033e14 +/* 33e08: 00000000 */ sll $zero,$zero,0x0 +/* 33e0c: 0c00d1a4 */ jal 0x34690 +/* 33e10: 8fa40060 */ lw $a0,0x60($sp) +.NB00033e14: +/* 33e14: 100001e4 */ beqz $zero,.NB000345a8 +/* 33e18: 00000000 */ sll $zero,$zero,0x0 +.NB00033e1c: +/* 33e1c: 8fab00b8 */ lw $t3,0xb8($sp) +/* 33e20: 8fb80060 */ lw $t8,0x60($sp) +/* 33e24: 8d6e0008 */ lw $t6,0x8($t3) +/* 33e28: a30e0042 */ sb $t6,0x42($t8) +/* 33e2c: 8faa0060 */ lw $t2,0x60($sp) +/* 33e30: 24010001 */ addiu $at,$zero,0x1 +/* 33e34: 91490045 */ lbu $t1,0x45($t2) +/* 33e38: 15210027 */ bne $t1,$at,.NB00033ed8 +/* 33e3c: 00000000 */ sll $zero,$zero,0x0 +/* 33e40: 8fad00a8 */ lw $t5,0xa8($sp) +/* 33e44: 8fb90060 */ lw $t9,0x60($sp) +/* 33e48: 91ac0003 */ lbu $t4,0x3($t5) +/* 33e4c: 932f0042 */ lbu $t7,0x42($t9) +/* 33e50: 318b000f */ andi $t3,$t4,0xf +/* 33e54: 000b70c0 */ sll $t6,$t3,0x3 +/* 33e58: 31e8007f */ andi $t0,$t7,0x7f +/* 33e5c: 010ec021 */ addu $t8,$t0,$t6 +/* 33e60: afb8007c */ sw $t8,0x7c($sp) +/* 33e64: 8faa007c */ lw $t2,0x7c($sp) +/* 33e68: 05410003 */ bgez $t2,.NB00033e78 +/* 33e6c: 00000000 */ sll $zero,$zero,0x0 +/* 33e70: 10000002 */ beqz $zero,.NB00033e7c +/* 33e74: 00008025 */ or $s0,$zero,$zero +.NB00033e78: +/* 33e78: 8fb0007c */ lw $s0,0x7c($sp) +.NB00033e7c: +/* 33e7c: 2a010080 */ slti $at,$s0,0x80 +/* 33e80: 14200004 */ bnez $at,.NB00033e94 +/* 33e84: 00000000 */ sll $zero,$zero,0x0 +/* 33e88: 2409007f */ addiu $t1,$zero,0x7f +/* 33e8c: 10000008 */ beqz $zero,.NB00033eb0 +/* 33e90: afa9007c */ sw $t1,0x7c($sp) +.NB00033e94: +/* 33e94: 8fb9007c */ lw $t9,0x7c($sp) +/* 33e98: 07210003 */ bgez $t9,.NB00033ea8 +/* 33e9c: 00000000 */ sll $zero,$zero,0x0 +/* 33ea0: 10000002 */ beqz $zero,.NB00033eac +/* 33ea4: 00008825 */ or $s1,$zero,$zero +.NB00033ea8: +/* 33ea8: 8fb1007c */ lw $s1,0x7c($sp) +.NB00033eac: +/* 33eac: afb1007c */ sw $s1,0x7c($sp) +.NB00033eb0: +/* 33eb0: 8fad0060 */ lw $t5,0x60($sp) +/* 33eb4: 8faf007c */ lw $t7,0x7c($sp) +/* 33eb8: 91ac0042 */ lbu $t4,0x42($t5) +/* 33ebc: 318b0080 */ andi $t3,$t4,0x80 +/* 33ec0: 01eb4025 */ or $t0,$t7,$t3 +/* 33ec4: afa8007c */ sw $t0,0x7c($sp) +/* 33ec8: 8fa40060 */ lw $a0,0x60($sp) +/* 33ecc: 8fa5007c */ lw $a1,0x7c($sp) +/* 33ed0: 0c00f908 */ jal 0x3e420 +/* 33ed4: 2484000c */ addiu $a0,$a0,0xc +.NB00033ed8: +/* 33ed8: 100001b3 */ beqz $zero,.NB000345a8 +/* 33edc: 00000000 */ sll $zero,$zero,0x0 +.NB00033ee0: +/* 33ee0: 8fae0060 */ lw $t6,0x60($sp) +/* 33ee4: 8fb900b8 */ lw $t9,0xb8($sp) +/* 33ee8: 91d80042 */ lbu $t8,0x42($t6) +/* 33eec: 8f2d0008 */ lw $t5,0x8($t9) +/* 33ef0: 330a007f */ andi $t2,$t8,0x7f +/* 33ef4: 31ac0080 */ andi $t4,$t5,0x80 +/* 33ef8: 318f00ff */ andi $t7,$t4,0xff +/* 33efc: 314900ff */ andi $t1,$t2,0xff +/* 33f00: 012f5825 */ or $t3,$t1,$t7 +/* 33f04: a1cb0042 */ sb $t3,0x42($t6) +/* 33f08: 8fa80060 */ lw $t0,0x60($sp) +/* 33f0c: 24010001 */ addiu $at,$zero,0x1 +/* 33f10: 91180045 */ lbu $t8,0x45($t0) +/* 33f14: 17010027 */ bne $t8,$at,.NB00033fb4 +/* 33f18: 00000000 */ sll $zero,$zero,0x0 +/* 33f1c: 8fac00a8 */ lw $t4,0xa8($sp) +/* 33f20: 8faa0060 */ lw $t2,0x60($sp) +/* 33f24: 91890003 */ lbu $t1,0x3($t4) +/* 33f28: 91590042 */ lbu $t9,0x42($t2) +/* 33f2c: 312f000f */ andi $t7,$t1,0xf +/* 33f30: 000f58c0 */ sll $t3,$t7,0x3 +/* 33f34: 332d007f */ andi $t5,$t9,0x7f +/* 33f38: 01ab7021 */ addu $t6,$t5,$t3 +/* 33f3c: afae007c */ sw $t6,0x7c($sp) +/* 33f40: 8fa8007c */ lw $t0,0x7c($sp) +/* 33f44: 05010003 */ bgez $t0,.NB00033f54 +/* 33f48: 00000000 */ sll $zero,$zero,0x0 +/* 33f4c: 10000002 */ beqz $zero,.NB00033f58 +/* 33f50: 00008025 */ or $s0,$zero,$zero +.NB00033f54: +/* 33f54: 8fb0007c */ lw $s0,0x7c($sp) +.NB00033f58: +/* 33f58: 2a010080 */ slti $at,$s0,0x80 +/* 33f5c: 14200004 */ bnez $at,.NB00033f70 +/* 33f60: 00000000 */ sll $zero,$zero,0x0 +/* 33f64: 2418007f */ addiu $t8,$zero,0x7f +/* 33f68: 10000008 */ beqz $zero,.NB00033f8c +/* 33f6c: afb8007c */ sw $t8,0x7c($sp) +.NB00033f70: +/* 33f70: 8faa007c */ lw $t2,0x7c($sp) +/* 33f74: 05410003 */ bgez $t2,.NB00033f84 +/* 33f78: 00000000 */ sll $zero,$zero,0x0 +/* 33f7c: 10000002 */ beqz $zero,.NB00033f88 +/* 33f80: 00008825 */ or $s1,$zero,$zero +.NB00033f84: +/* 33f84: 8fb1007c */ lw $s1,0x7c($sp) +.NB00033f88: +/* 33f88: afb1007c */ sw $s1,0x7c($sp) +.NB00033f8c: +/* 33f8c: 8fac0060 */ lw $t4,0x60($sp) +/* 33f90: 8fb9007c */ lw $t9,0x7c($sp) +/* 33f94: 91890042 */ lbu $t1,0x42($t4) +/* 33f98: 312f0080 */ andi $t7,$t1,0x80 +/* 33f9c: 032f6825 */ or $t5,$t9,$t7 +/* 33fa0: afad007c */ sw $t5,0x7c($sp) +/* 33fa4: 8fa40060 */ lw $a0,0x60($sp) +/* 33fa8: 8fa5007c */ lw $a1,0x7c($sp) +/* 33fac: 0c00f908 */ jal 0x3e420 +/* 33fb0: 2484000c */ addiu $a0,$a0,0xc +.NB00033fb4: +/* 33fb4: 1000017c */ beqz $zero,.NB000345a8 +/* 33fb8: 00000000 */ sll $zero,$zero,0x0 +.NB00033fbc: +/* 33fbc: 8fab00b8 */ lw $t3,0xb8($sp) +/* 33fc0: 8fa80060 */ lw $t0,0x60($sp) +/* 33fc4: 8d6e0008 */ lw $t6,0x8($t3) +/* 33fc8: a10e0043 */ sb $t6,0x43($t0) +/* 33fcc: 3c0c8006 */ lui $t4,0x8006 +/* 33fd0: 8d8c1624 */ lw $t4,0x1624($t4) +/* 33fd4: 8fb80060 */ lw $t8,0x60($sp) +/* 33fd8: 8d89003c */ lw $t1,0x3c($t4) +/* 33fdc: 930a0043 */ lbu $t2,0x43($t8) +/* 33fe0: 0149082a */ slt $at,$t2,$t1 +/* 33fe4: 14200003 */ bnez $at,.NB00033ff4 +/* 33fe8: 00000000 */ sll $zero,$zero,0x0 +/* 33fec: 8fb90060 */ lw $t9,0x60($sp) +/* 33ff0: a3200043 */ sb $zero,0x43($t9) +.NB00033ff4: +/* 33ff4: 8faf0060 */ lw $t7,0x60($sp) +/* 33ff8: 24010001 */ addiu $at,$zero,0x1 +/* 33ffc: 91ed0045 */ lbu $t5,0x45($t7) +/* 34000: 15a10004 */ bne $t5,$at,.NB00034014 +/* 34004: 00000000 */ sll $zero,$zero,0x0 +/* 34008: 8fab0060 */ lw $t3,0x60($sp) +/* 3400c: 916e0043 */ lbu $t6,0x43($t3) +/* 34010: a56e0024 */ sh $t6,0x24($t3) +.NB00034014: +/* 34014: 10000164 */ beqz $zero,.NB000345a8 +/* 34018: 00000000 */ sll $zero,$zero,0x0 +/* 3401c: 8fa800b8 */ lw $t0,0xb8($sp) +/* 34020: 8fac0060 */ lw $t4,0x60($sp) +/* 34024: 8d180008 */ lw $t8,0x8($t0) +/* 34028: a5980038 */ sh $t8,0x38($t4) +/* 3402c: 8faa0060 */ lw $t2,0x60($sp) +/* 34030: 24010001 */ addiu $at,$zero,0x1 +/* 34034: 91490045 */ lbu $t1,0x45($t2) +/* 34038: 1521005d */ bne $t1,$at,.NB000341b0 +/* 3403c: 00000000 */ sll $zero,$zero,0x0 +/* 34040: 8fac0060 */ lw $t4,0x60($sp) +/* 34044: 8faf00a8 */ lw $t7,0xa8($sp) +/* 34048: 3c19800a */ lui $t9,0x800a +/* 3404c: 858a003a */ lh $t2,0x3a($t4) +/* 34050: 85890038 */ lh $t1,0x38($t4) +/* 34054: 91ed0002 */ lbu $t5,0x2($t7) +/* 34058: 8f390a34 */ lw $t9,0xa34($t9) +/* 3405c: 01490019 */ multu $t2,$t1 +/* 34060: 31ae001f */ andi $t6,$t5,0x1f +/* 34064: 8fad00ac */ lw $t5,0xac($sp) +/* 34068: 000e5840 */ sll $t3,$t6,0x1 +/* 3406c: 032b4021 */ addu $t0,$t9,$t3 +/* 34070: 91ae000d */ lbu $t6,0xd($t5) +/* 34074: 24013f01 */ addiu $at,$zero,0x3f01 +/* 34078: 85180000 */ lh $t8,0x0($t0) +/* 3407c: 00007812 */ mflo $t7 +/* 34080: 00000000 */ sll $zero,$zero,0x0 +/* 34084: 00000000 */ sll $zero,$zero,0x0 +/* 34088: 01ee0019 */ multu $t7,$t6 +/* 3408c: 0000c812 */ mflo $t9 +/* 34090: 00000000 */ sll $zero,$zero,0x0 +/* 34094: 00000000 */ sll $zero,$zero,0x0 +/* 34098: 0321001a */ div $zero,$t9,$at +/* 3409c: 00005812 */ mflo $t3 +/* 340a0: 24017fff */ addiu $at,$zero,0x7fff +/* 340a4: 00000000 */ sll $zero,$zero,0x0 +/* 340a8: 030b0019 */ multu $t8,$t3 +/* 340ac: 00004012 */ mflo $t0 +/* 340b0: 00000000 */ sll $zero,$zero,0x0 +/* 340b4: 00000000 */ sll $zero,$zero,0x0 +/* 340b8: 0101001a */ div $zero,$t0,$at +/* 340bc: 00006012 */ mflo $t4 +/* 340c0: 1d800003 */ bgtz $t4,.NB000340d0 +/* 340c4: 00000000 */ sll $zero,$zero,0x0 +/* 340c8: 10000023 */ beqz $zero,.NB00034158 +/* 340cc: afa00078 */ sw $zero,0x78($sp) +.NB000340d0: +/* 340d0: 8fab0060 */ lw $t3,0x60($sp) +/* 340d4: 8fa900a8 */ lw $t1,0xa8($sp) +/* 340d8: 3c0a800a */ lui $t2,0x800a +/* 340dc: 8568003a */ lh $t0,0x3a($t3) +/* 340e0: 856c0038 */ lh $t4,0x38($t3) +/* 340e4: 912d0002 */ lbu $t5,0x2($t1) +/* 340e8: 8d4a0a34 */ lw $t2,0xa34($t2) +/* 340ec: 010c0019 */ multu $t0,$t4 +/* 340f0: 31af001f */ andi $t7,$t5,0x1f +/* 340f4: 8fad00ac */ lw $t5,0xac($sp) +/* 340f8: 000f7040 */ sll $t6,$t7,0x1 +/* 340fc: 014ec821 */ addu $t9,$t2,$t6 +/* 34100: 91af000d */ lbu $t7,0xd($t5) +/* 34104: 24013f01 */ addiu $at,$zero,0x3f01 +/* 34108: 87380000 */ lh $t8,0x0($t9) +/* 3410c: 00004812 */ mflo $t1 +/* 34110: 00000000 */ sll $zero,$zero,0x0 +/* 34114: 00000000 */ sll $zero,$zero,0x0 +/* 34118: 012f0019 */ multu $t1,$t7 +/* 3411c: 00005012 */ mflo $t2 +/* 34120: 00000000 */ sll $zero,$zero,0x0 +/* 34124: 00000000 */ sll $zero,$zero,0x0 +/* 34128: 0141001a */ div $zero,$t2,$at +/* 3412c: 00007012 */ mflo $t6 +/* 34130: 24017fff */ addiu $at,$zero,0x7fff +/* 34134: 00000000 */ sll $zero,$zero,0x0 +/* 34138: 030e0019 */ multu $t8,$t6 +/* 3413c: 0000c812 */ mflo $t9 +/* 34140: 00000000 */ sll $zero,$zero,0x0 +/* 34144: 00000000 */ sll $zero,$zero,0x0 +/* 34148: 0321001a */ div $zero,$t9,$at +/* 3414c: 00005812 */ mflo $t3 +/* 34150: 2568ffff */ addiu $t0,$t3,-1 +/* 34154: afa80078 */ sw $t0,0x78($sp) +.NB00034158: +/* 34158: 3c098006 */ lui $t1,0x8006 +/* 3415c: 8d29163c */ lw $t1,0x163c($t1) +/* 34160: 8fac0060 */ lw $t4,0x60($sp) +/* 34164: 8d2f0050 */ lw $t7,0x50($t1) +/* 34168: 8d8d003c */ lw $t5,0x3c($t4) +/* 3416c: 01af5023 */ subu $t2,$t5,$t7 +/* 34170: 294103e8 */ slti $at,$t2,0x3e8 +/* 34174: 10200003 */ beqz $at,.NB00034184 +/* 34178: 00000000 */ sll $zero,$zero,0x0 +/* 3417c: 10000007 */ beqz $zero,.NB0003419c +/* 34180: 241003e8 */ addiu $s0,$zero,0x3e8 +.NB00034184: +/* 34184: 3c198006 */ lui $t9,0x8006 +/* 34188: 8f39163c */ lw $t9,0x163c($t9) +/* 3418c: 8fb80060 */ lw $t8,0x60($sp) +/* 34190: 8f2b0050 */ lw $t3,0x50($t9) +/* 34194: 8f0e003c */ lw $t6,0x3c($t8) +/* 34198: 01cb8023 */ subu $s0,$t6,$t3 +.NB0003419c: +/* 3419c: 8fa40060 */ lw $a0,0x60($sp) +/* 341a0: 8fa50078 */ lw $a1,0x78($sp) +/* 341a4: 02003025 */ or $a2,$s0,$zero +/* 341a8: 0c00f830 */ jal 0x3e0c0 +/* 341ac: 2484000c */ addiu $a0,$a0,0xc +.NB000341b0: +/* 341b0: 100000fd */ beqz $zero,.NB000345a8 +/* 341b4: 00000000 */ sll $zero,$zero,0x0 +.NB000341b8: +/* 341b8: 8fa80060 */ lw $t0,0x60($sp) +/* 341bc: 24010001 */ addiu $at,$zero,0x1 +/* 341c0: 910c0045 */ lbu $t4,0x45($t0) +/* 341c4: 1581005b */ bne $t4,$at,.NB00034334 +/* 341c8: 00000000 */ sll $zero,$zero,0x0 +/* 341cc: 8fa900ac */ lw $t1,0xac($sp) +/* 341d0: 8faa0060 */ lw $t2,0x60($sp) +/* 341d4: 8d2d0000 */ lw $t5,0x0($t1) +/* 341d8: c5480028 */ lwc1 $f8,0x28($t2) +/* 341dc: c550002c */ lwc1 $f16,0x2c($t2) +/* 341e0: 8daf0008 */ lw $t7,0x8($t5) +/* 341e4: 448f2000 */ mtc1 $t7,$f4 +/* 341e8: 00000000 */ sll $zero,$zero,0x0 +/* 341ec: 468021a0 */ cvt.s.w $f6,$f4 +/* 341f0: 46083283 */ div.s $f10,$f6,$f8 +/* 341f4: 46105483 */ div.s $f18,$f10,$f16 +/* 341f8: 4600910d */ trunc.w.s $f4,$f18 +/* 341fc: 44192000 */ mfc1 $t9,$f4 +/* 34200: 00000000 */ sll $zero,$zero,0x0 +/* 34204: afb90080 */ sw $t9,0x80($sp) +/* 34208: 8faa0060 */ lw $t2,0x60($sp) +/* 3420c: 8fab00a8 */ lw $t3,0xa8($sp) +/* 34210: 3c0e800a */ lui $t6,0x800a +/* 34214: 8558003a */ lh $t8,0x3a($t2) +/* 34218: 85590038 */ lh $t9,0x38($t2) +/* 3421c: 91680002 */ lbu $t0,0x2($t3) +/* 34220: 8dce0a34 */ lw $t6,0xa34($t6) +/* 34224: 03190019 */ multu $t8,$t9 +/* 34228: 310c001f */ andi $t4,$t0,0x1f +/* 3422c: 8fa800ac */ lw $t0,0xac($sp) +/* 34230: 000c4840 */ sll $t1,$t4,0x1 +/* 34234: 01c96821 */ addu $t5,$t6,$t1 +/* 34238: 910c000d */ lbu $t4,0xd($t0) +/* 3423c: 24013f01 */ addiu $at,$zero,0x3f01 +/* 34240: 85af0000 */ lh $t7,0x0($t5) +/* 34244: 00005812 */ mflo $t3 +/* 34248: 00000000 */ sll $zero,$zero,0x0 +/* 3424c: 00000000 */ sll $zero,$zero,0x0 +/* 34250: 016c0019 */ multu $t3,$t4 +/* 34254: 00007012 */ mflo $t6 +/* 34258: 00000000 */ sll $zero,$zero,0x0 +/* 3425c: 00000000 */ sll $zero,$zero,0x0 +/* 34260: 01c1001a */ div $zero,$t6,$at +/* 34264: 00004812 */ mflo $t1 +/* 34268: 24017fff */ addiu $at,$zero,0x7fff +/* 3426c: 00000000 */ sll $zero,$zero,0x0 +/* 34270: 01e90019 */ multu $t7,$t1 +/* 34274: 00006812 */ mflo $t5 +/* 34278: 00000000 */ sll $zero,$zero,0x0 +/* 3427c: 00000000 */ sll $zero,$zero,0x0 +/* 34280: 01a1001a */ div $zero,$t5,$at +/* 34284: 00005012 */ mflo $t2 +/* 34288: 1d400003 */ bgtz $t2,.NB00034298 +/* 3428c: 00000000 */ sll $zero,$zero,0x0 +/* 34290: 10000023 */ beqz $zero,.NB00034320 +/* 34294: afa00078 */ sw $zero,0x78($sp) +.NB00034298: +/* 34298: 8fa90060 */ lw $t1,0x60($sp) +/* 3429c: 8fb900a8 */ lw $t9,0xa8($sp) +/* 342a0: 3c18800a */ lui $t8,0x800a +/* 342a4: 852d003a */ lh $t5,0x3a($t1) +/* 342a8: 852a0038 */ lh $t2,0x38($t1) +/* 342ac: 93280002 */ lbu $t0,0x2($t9) +/* 342b0: 8f180a34 */ lw $t8,0xa34($t8) +/* 342b4: 01aa0019 */ multu $t5,$t2 +/* 342b8: 310b001f */ andi $t3,$t0,0x1f +/* 342bc: 8fa800ac */ lw $t0,0xac($sp) +/* 342c0: 000b6040 */ sll $t4,$t3,0x1 +/* 342c4: 030c7021 */ addu $t6,$t8,$t4 +/* 342c8: 910b000d */ lbu $t3,0xd($t0) +/* 342cc: 24013f01 */ addiu $at,$zero,0x3f01 +/* 342d0: 85cf0000 */ lh $t7,0x0($t6) +/* 342d4: 0000c812 */ mflo $t9 +/* 342d8: 00000000 */ sll $zero,$zero,0x0 +/* 342dc: 00000000 */ sll $zero,$zero,0x0 +/* 342e0: 032b0019 */ multu $t9,$t3 +/* 342e4: 0000c012 */ mflo $t8 +/* 342e8: 00000000 */ sll $zero,$zero,0x0 +/* 342ec: 00000000 */ sll $zero,$zero,0x0 +/* 342f0: 0301001a */ div $zero,$t8,$at +/* 342f4: 00006012 */ mflo $t4 +/* 342f8: 24017fff */ addiu $at,$zero,0x7fff +/* 342fc: 00000000 */ sll $zero,$zero,0x0 +/* 34300: 01ec0019 */ multu $t7,$t4 +/* 34304: 00007012 */ mflo $t6 +/* 34308: 00000000 */ sll $zero,$zero,0x0 +/* 3430c: 00000000 */ sll $zero,$zero,0x0 +/* 34310: 01c1001a */ div $zero,$t6,$at +/* 34314: 00004812 */ mflo $t1 +/* 34318: 252dffff */ addiu $t5,$t1,-1 +/* 3431c: afad0078 */ sw $t5,0x78($sp) +.NB00034320: +/* 34320: 8fa40060 */ lw $a0,0x60($sp) +/* 34324: 8fa50078 */ lw $a1,0x78($sp) +/* 34328: 8fa60080 */ lw $a2,0x80($sp) +/* 3432c: 0c00f830 */ jal 0x3e0c0 +/* 34330: 2484000c */ addiu $a0,$a0,0xc +.NB00034334: +/* 34334: 1000009c */ beqz $zero,.NB000345a8 +/* 34338: 00000000 */ sll $zero,$zero,0x0 +.NB0003433c: +/* 3433c: 8faa0060 */ lw $t2,0x60($sp) +/* 34340: 91480044 */ lbu $t0,0x44($t2) +/* 34344: 31190002 */ andi $t9,$t0,0x2 +/* 34348: 17200079 */ bnez $t9,.NB00034530 +/* 3434c: 00000000 */ sll $zero,$zero,0x0 +/* 34350: 8fab00ac */ lw $t3,0xac($sp) +/* 34354: 8fac0060 */ lw $t4,0x60($sp) +/* 34358: 8d780000 */ lw $t8,0x0($t3) +/* 3435c: 930f000d */ lbu $t7,0xd($t8) +/* 34360: a58f003a */ sh $t7,0x3a($t4) +/* 34364: 8fb80060 */ lw $t8,0x60($sp) +/* 34368: 8fa900a8 */ lw $t1,0xa8($sp) +/* 3436c: 3c0e800a */ lui $t6,0x800a +/* 34370: 870f003a */ lh $t7,0x3a($t8) +/* 34374: 870c0038 */ lh $t4,0x38($t8) +/* 34378: 912d0002 */ lbu $t5,0x2($t1) +/* 3437c: 8dce0a34 */ lw $t6,0xa34($t6) +/* 34380: 01ec0019 */ multu $t7,$t4 +/* 34384: 31aa001f */ andi $t2,$t5,0x1f +/* 34388: 8fad00ac */ lw $t5,0xac($sp) +/* 3438c: 000a4040 */ sll $t0,$t2,0x1 +/* 34390: 01c8c821 */ addu $t9,$t6,$t0 +/* 34394: 91aa000d */ lbu $t2,0xd($t5) +/* 34398: 24013f01 */ addiu $at,$zero,0x3f01 +/* 3439c: 872b0000 */ lh $t3,0x0($t9) +/* 343a0: 00004812 */ mflo $t1 +/* 343a4: 00000000 */ sll $zero,$zero,0x0 +/* 343a8: 00000000 */ sll $zero,$zero,0x0 +/* 343ac: 012a0019 */ multu $t1,$t2 +/* 343b0: 00007012 */ mflo $t6 +/* 343b4: 00000000 */ sll $zero,$zero,0x0 +/* 343b8: 00000000 */ sll $zero,$zero,0x0 +/* 343bc: 01c1001a */ div $zero,$t6,$at +/* 343c0: 00004012 */ mflo $t0 +/* 343c4: 24017fff */ addiu $at,$zero,0x7fff +/* 343c8: 00000000 */ sll $zero,$zero,0x0 +/* 343cc: 01680019 */ multu $t3,$t0 +/* 343d0: 0000c812 */ mflo $t9 +/* 343d4: 00000000 */ sll $zero,$zero,0x0 +/* 343d8: 00000000 */ sll $zero,$zero,0x0 +/* 343dc: 0321001a */ div $zero,$t9,$at +/* 343e0: 0000c012 */ mflo $t8 +/* 343e4: 1f000003 */ bgtz $t8,.NB000343f4 +/* 343e8: 00000000 */ sll $zero,$zero,0x0 +/* 343ec: 10000023 */ beqz $zero,.NB0003447c +/* 343f0: afa00078 */ sw $zero,0x78($sp) +.NB000343f4: +/* 343f4: 8fa80060 */ lw $t0,0x60($sp) +/* 343f8: 8fac00a8 */ lw $t4,0xa8($sp) +/* 343fc: 3c0f800a */ lui $t7,0x800a +/* 34400: 8519003a */ lh $t9,0x3a($t0) +/* 34404: 85180038 */ lh $t8,0x38($t0) +/* 34408: 918d0002 */ lbu $t5,0x2($t4) +/* 3440c: 8def0a34 */ lw $t7,0xa34($t7) +/* 34410: 03380019 */ multu $t9,$t8 +/* 34414: 31a9001f */ andi $t1,$t5,0x1f +/* 34418: 8fad00ac */ lw $t5,0xac($sp) +/* 3441c: 00095040 */ sll $t2,$t1,0x1 +/* 34420: 01ea7021 */ addu $t6,$t7,$t2 +/* 34424: 91a9000d */ lbu $t1,0xd($t5) +/* 34428: 24013f01 */ addiu $at,$zero,0x3f01 +/* 3442c: 85cb0000 */ lh $t3,0x0($t6) +/* 34430: 00006012 */ mflo $t4 +/* 34434: 00000000 */ sll $zero,$zero,0x0 +/* 34438: 00000000 */ sll $zero,$zero,0x0 +/* 3443c: 01890019 */ multu $t4,$t1 +/* 34440: 00007812 */ mflo $t7 +/* 34444: 00000000 */ sll $zero,$zero,0x0 +/* 34448: 00000000 */ sll $zero,$zero,0x0 +/* 3444c: 01e1001a */ div $zero,$t7,$at +/* 34450: 00005012 */ mflo $t2 +/* 34454: 24017fff */ addiu $at,$zero,0x7fff +/* 34458: 00000000 */ sll $zero,$zero,0x0 +/* 3445c: 016a0019 */ multu $t3,$t2 +/* 34460: 00007012 */ mflo $t6 +/* 34464: 00000000 */ sll $zero,$zero,0x0 +/* 34468: 00000000 */ sll $zero,$zero,0x0 +/* 3446c: 01c1001a */ div $zero,$t6,$at +/* 34470: 00004012 */ mflo $t0 +/* 34474: 2519ffff */ addiu $t9,$t0,-1 +/* 34478: afb90078 */ sw $t9,0x78($sp) +.NB0003447c: +/* 3447c: 8fb800ac */ lw $t8,0xac($sp) +/* 34480: 8fa90060 */ lw $t1,0x60($sp) +/* 34484: 8f0d0000 */ lw $t5,0x0($t8) +/* 34488: c52a0028 */ lwc1 $f10,0x28($t1) +/* 3448c: c532002c */ lwc1 $f18,0x2c($t1) +/* 34490: 8dac0004 */ lw $t4,0x4($t5) +/* 34494: 448c3000 */ mtc1 $t4,$f6 +/* 34498: 00000000 */ sll $zero,$zero,0x0 +/* 3449c: 46803220 */ cvt.s.w $f8,$f6 +/* 344a0: 460a4403 */ div.s $f16,$f8,$f10 +/* 344a4: 46128103 */ div.s $f4,$f16,$f18 +/* 344a8: 4600218d */ trunc.w.s $f6,$f4 +/* 344ac: 440b3000 */ mfc1 $t3,$f6 +/* 344b0: 00000000 */ sll $zero,$zero,0x0 +/* 344b4: afab0080 */ sw $t3,0x80($sp) +/* 344b8: 3c0a8006 */ lui $t2,0x8006 +/* 344bc: 8d4a163c */ lw $t2,0x163c($t2) +/* 344c0: 8fa80080 */ lw $t0,0x80($sp) +/* 344c4: 8fb80060 */ lw $t8,0x60($sp) +/* 344c8: 8d4e0050 */ lw $t6,0x50($t2) +/* 344cc: 01c8c821 */ addu $t9,$t6,$t0 +/* 344d0: af19003c */ sw $t9,0x3c($t8) +/* 344d4: 8fa40060 */ lw $a0,0x60($sp) +/* 344d8: 8fa50078 */ lw $a1,0x78($sp) +/* 344dc: 8fa60080 */ lw $a2,0x80($sp) +/* 344e0: 0c00f830 */ jal 0x3e0c0 +/* 344e4: 2484000c */ addiu $a0,$a0,0xc +/* 344e8: 240d0002 */ addiu $t5,$zero,0x2 +/* 344ec: a7ad0094 */ sh $t5,0x94($sp) +/* 344f0: 8fac0060 */ lw $t4,0x60($sp) +/* 344f4: afac0098 */ sw $t4,0x98($sp) +/* 344f8: 3c048006 */ lui $a0,0x8006 +/* 344fc: 8c84163c */ lw $a0,0x163c($a0) +/* 34500: 27a50094 */ addiu $a1,$sp,0x94 +/* 34504: 8fa60080 */ lw $a2,0x80($sp) +/* 34508: 00003825 */ or $a3,$zero,$zero +/* 3450c: 0c00f678 */ jal 0x3d9e0 +/* 34510: 24840014 */ addiu $a0,$a0,0x14 +/* 34514: 8fa90060 */ lw $t1,0x60($sp) +/* 34518: 912f0044 */ lbu $t7,0x44($t1) +/* 3451c: 31eb0020 */ andi $t3,$t7,0x20 +/* 34520: 11600003 */ beqz $t3,.NB00034530 +/* 34524: 00000000 */ sll $zero,$zero,0x0 +/* 34528: 0c00d1a4 */ jal 0x34690 +/* 3452c: 8fa40060 */ lw $a0,0x60($sp) +.NB00034530: +/* 34530: 1000001d */ beqz $zero,.NB000345a8 +/* 34534: 00000000 */ sll $zero,$zero,0x0 +.NB00034538: +/* 34538: 0c00d188 */ jal 0x34620 +/* 3453c: 8fa40060 */ lw $a0,0x60($sp) +/* 34540: 10000019 */ beqz $zero,.NB000345a8 +/* 34544: 00000000 */ sll $zero,$zero,0x0 +.NB00034548: +/* 34548: 8faa0060 */ lw $t2,0x60($sp) +/* 3454c: 914e0044 */ lbu $t6,0x44($t2) +/* 34550: 31c80010 */ andi $t0,$t6,0x10 +/* 34554: 11000010 */ beqz $t0,.NB00034598 +/* 34558: 00000000 */ sll $zero,$zero,0x0 +/* 3455c: 8fb80060 */ lw $t8,0x60($sp) +/* 34560: 8fb900b8 */ lw $t9,0xb8($sp) +/* 34564: c708002c */ lwc1 $f8,0x2c($t8) +/* 34568: 87060038 */ lh $a2,0x38($t8) +/* 3456c: 93070041 */ lbu $a3,0x41($t8) +/* 34570: 8f24000c */ lw $a0,0xc($t9) +/* 34574: 8f250008 */ lw $a1,0x8($t9) +/* 34578: e7a80010 */ swc1 $f8,0x10($sp) +/* 3457c: 930d0042 */ lbu $t5,0x42($t8) +/* 34580: afad0014 */ sw $t5,0x14($sp) +/* 34584: 930c0043 */ lbu $t4,0x43($t8) +/* 34588: afac0018 */ sw $t4,0x18($sp) +/* 3458c: 8f090030 */ lw $t1,0x30($t8) +/* 34590: 0c00d36c */ jal 0x34db0 +/* 34594: afa9001c */ sw $t1,0x1c($sp) +.NB00034598: +/* 34598: 10000003 */ beqz $zero,.NB000345a8 +/* 3459c: 00000000 */ sll $zero,$zero,0x0 +.NB000345a0: +/* 345a0: 10000001 */ beqz $zero,.NB000345a8 +/* 345a4: 00000000 */ sll $zero,$zero,0x0 +.NB000345a8: +/* 345a8: 8faf00b8 */ lw $t7,0xb8($sp) +/* 345ac: 95eb0000 */ lhu $t3,0x0($t7) +/* 345b0: 316a02d1 */ andi $t2,$t3,0x2d1 +/* 345b4: afaa006c */ sw $t2,0x6c($sp) +/* 345b8: 8fae005c */ lw $t6,0x5c($sp) +/* 345bc: 11c00008 */ beqz $t6,.NB000345e0 +/* 345c0: afae0060 */ sw $t6,0x60($sp) +/* 345c4: 8fa8006c */ lw $t0,0x6c($sp) +/* 345c8: 15000005 */ bnez $t0,.NB000345e0 +/* 345cc: 00000000 */ sll $zero,$zero,0x0 +/* 345d0: 8fb90060 */ lw $t9,0x60($sp) +/* 345d4: 932d0044 */ lbu $t5,0x44($t9) +/* 345d8: 31ac0001 */ andi $t4,$t5,0x1 +/* 345dc: afac0068 */ sw $t4,0x68($sp) +.NB000345e0: +/* 345e0: 8fb80068 */ lw $t8,0x68($sp) +/* 345e4: 17000007 */ bnez $t8,.NB00034604 +/* 345e8: 00000000 */ sll $zero,$zero,0x0 +/* 345ec: 8fa90060 */ lw $t1,0x60($sp) +/* 345f0: 11200004 */ beqz $t1,.NB00034604 +/* 345f4: 00000000 */ sll $zero,$zero,0x0 +/* 345f8: 8faf006c */ lw $t7,0x6c($sp) +/* 345fc: 11e0fb27 */ beqz $t7,.NB0003329c +/* 34600: 00000000 */ sll $zero,$zero,0x0 +.NB00034604: +/* 34604: 10000001 */ beqz $zero,.NB0003460c +/* 34608: 00000000 */ sll $zero,$zero,0x0 +.NB0003460c: +/* 3460c: 8fbf0034 */ lw $ra,0x34($sp) +/* 34610: 8fb0002c */ lw $s0,0x2c($sp) +/* 34614: 8fb10030 */ lw $s1,0x30($sp) +/* 34618: 03e00008 */ jr $ra +/* 3461c: 27bd00b8 */ addiu $sp,$sp,0xb8 +); +#endif GLOBAL_ASM( glabel func00033090 @@ -2497,6 +4056,7 @@ glabel audioIsPlaying /* 3381c: 00000000 */ nop ); +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func00033820 /* 33820: 27bdffa0 */ addiu $sp,$sp,-96 @@ -2704,6 +4264,210 @@ glabel func00033820 /* 33b1c: 03e00008 */ jr $ra /* 33b20: 00000000 */ nop ); +#else +GLOBAL_ASM( +glabel func00033820 +/* 34db0: 27bdffa0 */ addiu $sp,$sp,-96 +/* 34db4: afbf0014 */ sw $ra,0x14($sp) +/* 34db8: afa40060 */ sw $a0,0x60($sp) +/* 34dbc: afa50064 */ sw $a1,0x64($sp) +/* 34dc0: afa60068 */ sw $a2,0x68($sp) +/* 34dc4: afa7006c */ sw $a3,0x6c($sp) +/* 34dc8: afa00058 */ sw $zero,0x58($sp) +/* 34dcc: a7a0004e */ sh $zero,0x4e($sp) +/* 34dd0: afa00040 */ sw $zero,0x40($sp) +/* 34dd4: 0c0041df */ jal 0x1077c +/* 34dd8: 00000000 */ sll $zero,$zero,0x0 +/* 34ddc: 10400003 */ beqz $v0,.NB00034dec +/* 34de0: 00000000 */ sll $zero,$zero,0x0 +/* 34de4: 100000aa */ beqz $zero,.NB00035090 +/* 34de8: 00001025 */ or $v0,$zero,$zero +.NB00034dec: +/* 34dec: 87ae0066 */ lh $t6,0x66($sp) +/* 34df0: 11c0009d */ beqz $t6,.NB00035068 +/* 34df4: 00000000 */ sll $zero,$zero,0x0 +.NB00034df8: +/* 34df8: 0c003e46 */ jal 0xf918 +/* 34dfc: 87a40066 */ lh $a0,0x66($sp) +/* 34e00: afa20050 */ sw $v0,0x50($sp) +/* 34e04: 8fa40060 */ lw $a0,0x60($sp) +/* 34e08: 0c00d248 */ jal 0x34920 +/* 34e0c: 8fa50050 */ lw $a1,0x50($sp) +/* 34e10: afa2005c */ sw $v0,0x5c($sp) +/* 34e14: 8faf005c */ lw $t7,0x5c($sp) +/* 34e18: 11e0005f */ beqz $t7,.NB00034f98 +/* 34e1c: 00000000 */ sll $zero,$zero,0x0 +/* 34e20: 3c198006 */ lui $t9,0x8006 +/* 34e24: 8f39163c */ lw $t9,0x163c($t9) +/* 34e28: 8fb8005c */ lw $t8,0x5c($sp) +/* 34e2c: af38003c */ sw $t8,0x3c($t9) +/* 34e30: 24080001 */ addiu $t0,$zero,0x1 +/* 34e34: a7a8002c */ sh $t0,0x2c($sp) +/* 34e38: 8fa9005c */ lw $t1,0x5c($sp) +/* 34e3c: afa90030 */ sw $t1,0x30($sp) +/* 34e40: 8fab005c */ lw $t3,0x5c($sp) +/* 34e44: 93aa006f */ lbu $t2,0x6f($sp) +/* 34e48: 916c0041 */ lbu $t4,0x41($t3) +/* 34e4c: 014c6821 */ addu $t5,$t2,$t4 +/* 34e50: 25aeffc0 */ addiu $t6,$t5,-64 +/* 34e54: afae003c */ sw $t6,0x3c($sp) +/* 34e58: 8faf003c */ lw $t7,0x3c($sp) +/* 34e5c: 29e10080 */ slti $at,$t7,0x80 +/* 34e60: 14200004 */ bnez $at,.NB00034e74 +/* 34e64: 00000000 */ sll $zero,$zero,0x0 +/* 34e68: 2418007f */ addiu $t8,$zero,0x7f +/* 34e6c: 10000005 */ beqz $zero,.NB00034e84 +/* 34e70: afb8003c */ sw $t8,0x3c($sp) +.NB00034e74: +/* 34e74: 8fb9003c */ lw $t9,0x3c($sp) +/* 34e78: 07210002 */ bgez $t9,.NB00034e84 +/* 34e7c: 00000000 */ sll $zero,$zero,0x0 +/* 34e80: afa0003c */ sw $zero,0x3c($sp) +.NB00034e84: +/* 34e84: 8fa8003c */ lw $t0,0x3c($sp) +/* 34e88: 8fa9005c */ lw $t1,0x5c($sp) +/* 34e8c: a1280041 */ sb $t0,0x41($t1) +/* 34e90: 8faa005c */ lw $t2,0x5c($sp) +/* 34e94: 97ab006a */ lhu $t3,0x6a($sp) +/* 34e98: 854c0038 */ lh $t4,0x38($t2) +/* 34e9c: 016c0019 */ multu $t3,$t4 +/* 34ea0: 00006812 */ mflo $t5 +/* 34ea4: 000d73c2 */ srl $t6,$t5,0xf +/* 34ea8: a54e0038 */ sh $t6,0x38($t2) +/* 34eac: 8faf005c */ lw $t7,0x5c($sp) +/* 34eb0: c7a60070 */ lwc1 $f6,0x70($sp) +/* 34eb4: c5e4002c */ lwc1 $f4,0x2c($t7) +/* 34eb8: 46062202 */ mul.s $f8,$f4,$f6 +/* 34ebc: e5e8002c */ swc1 $f8,0x2c($t7) +/* 34ec0: 93b80077 */ lbu $t8,0x77($sp) +/* 34ec4: 8fb9005c */ lw $t9,0x5c($sp) +/* 34ec8: a3380042 */ sb $t8,0x42($t9) +/* 34ecc: 93a8007b */ lbu $t0,0x7b($sp) +/* 34ed0: 8fa9005c */ lw $t1,0x5c($sp) +/* 34ed4: a1280043 */ sb $t0,0x43($t1) +/* 34ed8: 8fab0050 */ lw $t3,0x50($sp) +/* 34edc: 8d6c0004 */ lw $t4,0x4($t3) +/* 34ee0: 918d0001 */ lbu $t5,0x1($t4) +/* 34ee4: 000d7180 */ sll $t6,$t5,0x6 +/* 34ee8: 01cd7021 */ addu $t6,$t6,$t5 +/* 34eec: 000e70c0 */ sll $t6,$t6,0x3 +/* 34ef0: 01cd7021 */ addu $t6,$t6,$t5 +/* 34ef4: 000e7080 */ sll $t6,$t6,0x2 +/* 34ef8: 01cd7023 */ subu $t6,$t6,$t5 +/* 34efc: 000e7080 */ sll $t6,$t6,0x2 +/* 34f00: 01cd7021 */ addu $t6,$t6,$t5 +/* 34f04: 000e7080 */ sll $t6,$t6,0x2 +/* 34f08: 01cd7021 */ addu $t6,$t6,$t5 +/* 34f0c: afae0044 */ sw $t6,0x44($sp) +/* 34f10: 8faa005c */ lw $t2,0x5c($sp) +/* 34f14: 914f0044 */ lbu $t7,0x44($t2) +/* 34f18: 31f80010 */ andi $t8,$t7,0x10 +/* 34f1c: 13000014 */ beqz $t8,.NB00034f70 +/* 34f20: 00000000 */ sll $zero,$zero,0x0 +/* 34f24: 8fb9005c */ lw $t9,0x5c($sp) +/* 34f28: 2401ffef */ addiu $at,$zero,-17 +/* 34f2c: 93280044 */ lbu $t0,0x44($t9) +/* 34f30: 01014824 */ and $t1,$t0,$at +/* 34f34: a3290044 */ sb $t1,0x44($t9) +/* 34f38: 3c048006 */ lui $a0,0x8006 +/* 34f3c: 8c84163c */ lw $a0,0x163c($a0) +/* 34f40: 8fa60040 */ lw $a2,0x40($sp) +/* 34f44: 27a5002c */ addiu $a1,$sp,0x2c +/* 34f48: 00003825 */ or $a3,$zero,$zero +/* 34f4c: 24840014 */ addiu $a0,$a0,0x14 +/* 34f50: 0c00f678 */ jal 0x3d9e0 +/* 34f54: 24c60001 */ addiu $a2,$a2,0x1 +/* 34f58: 8fab0044 */ lw $t3,0x44($sp) +/* 34f5c: 256c0001 */ addiu $t4,$t3,0x1 +/* 34f60: afac0048 */ sw $t4,0x48($sp) +/* 34f64: 87ad0066 */ lh $t5,0x66($sp) +/* 34f68: 10000009 */ beqz $zero,.NB00034f90 +/* 34f6c: a7ad004e */ sh $t5,0x4e($sp) +.NB00034f70: +/* 34f70: 3c048006 */ lui $a0,0x8006 +/* 34f74: 8c84163c */ lw $a0,0x163c($a0) +/* 34f78: 8fa60044 */ lw $a2,0x44($sp) +/* 34f7c: 27a5002c */ addiu $a1,$sp,0x2c +/* 34f80: 00003825 */ or $a3,$zero,$zero +/* 34f84: 24840014 */ addiu $a0,$a0,0x14 +/* 34f88: 0c00f678 */ jal 0x3d9e0 +/* 34f8c: 24c60001 */ addiu $a2,$a2,0x1 +.NB00034f90: +/* 34f90: 8fae005c */ lw $t6,0x5c($sp) +/* 34f94: afae0058 */ sw $t6,0x58($sp) +.NB00034f98: +/* 34f98: 8faa0040 */ lw $t2,0x40($sp) +/* 34f9c: 8faf0044 */ lw $t7,0x44($sp) +/* 34fa0: 014fc021 */ addu $t8,$t2,$t7 +/* 34fa4: afb80040 */ sw $t8,0x40($sp) +/* 34fa8: 8fa80050 */ lw $t0,0x50($sp) +/* 34fac: 8d090004 */ lw $t1,0x4($t0) +/* 34fb0: afa90054 */ sw $t1,0x54($sp) +/* 34fb4: 8fb90054 */ lw $t9,0x54($sp) +/* 34fb8: 932c0002 */ lbu $t4,0x2($t9) +/* 34fbc: 932b0000 */ lbu $t3,0x0($t9) +/* 34fc0: 318d00c0 */ andi $t5,$t4,0xc0 +/* 34fc4: 000d7080 */ sll $t6,$t5,0x2 +/* 34fc8: 016e5021 */ addu $t2,$t3,$t6 +/* 34fcc: a7aa0066 */ sh $t2,0x66($sp) +/* 34fd0: 87af0066 */ lh $t7,0x66($sp) +/* 34fd4: 11e00004 */ beqz $t7,.NB00034fe8 +/* 34fd8: 00000000 */ sll $zero,$zero,0x0 +/* 34fdc: 8fb8005c */ lw $t8,0x5c($sp) +/* 34fe0: 1700ff85 */ bnez $t8,.NB00034df8 +/* 34fe4: 00000000 */ sll $zero,$zero,0x0 +.NB00034fe8: +/* 34fe8: 8fa80058 */ lw $t0,0x58($sp) +/* 34fec: 1100001e */ beqz $t0,.NB00035068 +/* 34ff0: 00000000 */ sll $zero,$zero,0x0 +/* 34ff4: 8fa90058 */ lw $t1,0x58($sp) +/* 34ff8: 91390044 */ lbu $t9,0x44($t1) +/* 34ffc: 372c0001 */ ori $t4,$t9,0x1 +/* 35000: a12c0044 */ sb $t4,0x44($t1) +/* 35004: 8fad007c */ lw $t5,0x7c($sp) +/* 35008: 8fab0058 */ lw $t3,0x58($sp) +/* 3500c: ad6d0030 */ sw $t5,0x30($t3) +/* 35010: 87ae004e */ lh $t6,0x4e($sp) +/* 35014: 11c00014 */ beqz $t6,.NB00035068 +/* 35018: 00000000 */ sll $zero,$zero,0x0 +/* 3501c: 8faa0058 */ lw $t2,0x58($sp) +/* 35020: 914f0044 */ lbu $t7,0x44($t2) +/* 35024: 35f80010 */ ori $t8,$t7,0x10 +/* 35028: a1580044 */ sb $t8,0x44($t2) +/* 3502c: 24080200 */ addiu $t0,$zero,0x200 +/* 35030: a7a8001c */ sh $t0,0x1c($sp) +/* 35034: 8fb90058 */ lw $t9,0x58($sp) +/* 35038: afb90020 */ sw $t9,0x20($sp) +/* 3503c: 87ac004e */ lh $t4,0x4e($sp) +/* 35040: afac0024 */ sw $t4,0x24($sp) +/* 35044: 8fa90060 */ lw $t1,0x60($sp) +/* 35048: afa90028 */ sw $t1,0x28($sp) +/* 3504c: 3c048006 */ lui $a0,0x8006 +/* 35050: 8c84163c */ lw $a0,0x163c($a0) +/* 35054: 27a5001c */ addiu $a1,$sp,0x1c +/* 35058: 8fa60048 */ lw $a2,0x48($sp) +/* 3505c: 00003825 */ or $a3,$zero,$zero +/* 35060: 0c00f678 */ jal 0x3d9e0 +/* 35064: 24840014 */ addiu $a0,$a0,0x14 +.NB00035068: +/* 35068: 8fad007c */ lw $t5,0x7c($sp) +/* 3506c: 11a00004 */ beqz $t5,.NB00035080 +/* 35070: 00000000 */ sll $zero,$zero,0x0 +/* 35074: 8fab0058 */ lw $t3,0x58($sp) +/* 35078: 8fae007c */ lw $t6,0x7c($sp) +/* 3507c: adcb0000 */ sw $t3,0x0($t6) +.NB00035080: +/* 35080: 10000003 */ beqz $zero,.NB00035090 +/* 35084: 8fa20058 */ lw $v0,0x58($sp) +/* 35088: 10000001 */ beqz $zero,.NB00035090 +/* 3508c: 00000000 */ sll $zero,$zero,0x0 +.NB00035090: +/* 35090: 8fbf0014 */ lw $ra,0x14($sp) +/* 35094: 27bd0060 */ addiu $sp,$sp,0x60 +/* 35098: 03e00008 */ jr $ra +/* 3509c: 00000000 */ sll $zero,$zero,0x0 +); +#endif #if VERSION >= VERSION_NTSC_FINAL GLOBAL_ASM( @@ -2751,7 +4515,7 @@ glabel audioStop /* 33bb8: 03e00008 */ jr $ra /* 33bbc: 00000000 */ nop ); -#else +#elif VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel audioStop /* 33b24: 27bdffd8 */ addiu $sp,$sp,-40 @@ -2795,8 +4559,43 @@ glabel audioStop /* 33bb0: 03e00008 */ jr $ra /* 33bb4: 00000000 */ nop ); +#else +GLOBAL_ASM( +glabel audioStop +/* 350a0: 27bdffd8 */ addiu $sp,$sp,-40 +/* 350a4: afbf0014 */ sw $ra,0x14($sp) +/* 350a8: afa40028 */ sw $a0,0x28($sp) +/* 350ac: 240e0400 */ addiu $t6,$zero,0x400 +/* 350b0: a7ae0018 */ sh $t6,0x18($sp) +/* 350b4: 8faf0028 */ lw $t7,0x28($sp) +/* 350b8: afaf001c */ sw $t7,0x1c($sp) +/* 350bc: 8fb80028 */ lw $t8,0x28($sp) +/* 350c0: 1300000d */ beqz $t8,.NB000350f8 +/* 350c4: 00000000 */ sll $zero,$zero,0x0 +/* 350c8: 8fb9001c */ lw $t9,0x1c($sp) +/* 350cc: 2401ffef */ addiu $at,$zero,-17 +/* 350d0: 93280044 */ lbu $t0,0x44($t9) +/* 350d4: 01014824 */ and $t1,$t0,$at +/* 350d8: a3290044 */ sb $t1,0x44($t9) +/* 350dc: 3c048006 */ lui $a0,0x8006 +/* 350e0: 8c84163c */ lw $a0,0x163c($a0) +/* 350e4: 27a50018 */ addiu $a1,$sp,0x18 +/* 350e8: 00003025 */ or $a2,$zero,$zero +/* 350ec: 00003825 */ or $a3,$zero,$zero +/* 350f0: 0c00f678 */ jal 0x3d9e0 +/* 350f4: 24840014 */ addiu $a0,$a0,0x14 +.NB000350f8: +/* 350f8: 10000001 */ beqz $zero,.NB00035100 +/* 350fc: 00000000 */ sll $zero,$zero,0x0 +.NB00035100: +/* 35100: 8fbf0014 */ lw $ra,0x14($sp) +/* 35104: 27bd0028 */ addiu $sp,$sp,0x28 +/* 35108: 03e00008 */ jr $ra +/* 3510c: 00000000 */ sll $zero,$zero,0x0 +); #endif +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func00033bc0 /* 33bc0: 27bdffd8 */ addiu $sp,$sp,-40 @@ -2830,6 +4629,7 @@ glabel func00033bc0 /* 33c28: 03e00008 */ jr $ra /* 33c2c: 00000000 */ nop ); +#endif GLOBAL_ASM( glabel func00033c30 @@ -2887,6 +4687,7 @@ glabel func00033c30 /* 33cec: 00000000 */ nop ); +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func00033cf0 /* 33cf0: 27bdffd0 */ addiu $sp,$sp,-48 @@ -2942,7 +4743,9 @@ glabel func00033cf0 /* 33da8: 03e00008 */ jr $ra /* 33dac: 00000000 */ nop ); +#endif +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func00033db0 /* 33db0: 27bdffe8 */ addiu $sp,$sp,-24 @@ -2957,6 +4760,7 @@ glabel func00033db0 /* 33dd0: 03e00008 */ jr $ra /* 33dd4: 00000000 */ nop ); +#endif GLOBAL_ASM( glabel func00033dd8 @@ -3054,6 +4858,7 @@ glabel func00033ec4 /* 33f04: 27bd0008 */ addiu $sp,$sp,0x8 ); +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func00033f08 /* 33f08: 3c028006 */ lui $v0,%hi(var8005f120) @@ -3064,7 +4869,9 @@ glabel func00033f08 /* 33f1c: 03e00008 */ jr $ra /* 33f20: 00000000 */ nop ); +#endif +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func00033f24 /* 33f24: 3c0e8006 */ lui $t6,%hi(var8005f12c) @@ -3076,7 +4883,9 @@ glabel func00033f24 /* 33f3c: 03e00008 */ jr $ra /* 33f40: 00000000 */ nop ); +#endif +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func00033f44 /* 33f44: 27bdffc8 */ addiu $sp,$sp,-56 @@ -3144,3 +4953,74 @@ glabel func00033f44 /* 34028: 03e00008 */ jr $ra /* 3402c: 00000000 */ nop ); +#endif + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func00035300nb +/* 35300: 27bdffc8 */ addiu $sp,$sp,-56 +/* 35304: afbf0014 */ sw $ra,0x14($sp) +/* 35308: afa40038 */ sw $a0,0x38($sp) +/* 3530c: afa5003c */ sw $a1,0x3c($sp) +/* 35310: 3c0e800a */ lui $t6,0x800a +/* 35314: 8dce0a34 */ lw $t6,0xa34($t6) +/* 35318: 11c0002e */ beqz $t6,.NB000353d4 +/* 3531c: 00000000 */ sll $zero,$zero,0x0 +/* 35320: 0c012688 */ jal 0x49a20 +/* 35324: 24040001 */ addiu $a0,$zero,0x1 +/* 35328: afa20034 */ sw $v0,0x34($sp) +/* 3532c: 3c0f8006 */ lui $t7,0x8006 +/* 35330: 8def1630 */ lw $t7,0x1630($t7) +/* 35334: afaf0030 */ sw $t7,0x30($sp) +/* 35338: 93a8003b */ lbu $t0,0x3b($sp) +/* 3533c: 3c19800a */ lui $t9,0x800a +/* 35340: 8f390a34 */ lw $t9,0xa34($t9) +/* 35344: 97b8003e */ lhu $t8,0x3e($sp) +/* 35348: 00084840 */ sll $t1,$t0,0x1 +/* 3534c: 03295021 */ addu $t2,$t9,$t1 +/* 35350: a5580000 */ sh $t8,0x0($t2) +/* 35354: 8fab0030 */ lw $t3,0x30($sp) +/* 35358: afa0002c */ sw $zero,0x2c($sp) +/* 3535c: 1160001b */ beqz $t3,.NB000353cc +/* 35360: 00000000 */ sll $zero,$zero,0x0 +.NB00035364: +/* 35364: 8fac0030 */ lw $t4,0x30($sp) +/* 35368: 93b9003b */ lbu $t9,0x3b($sp) +/* 3536c: 8d8d0008 */ lw $t5,0x8($t4) +/* 35370: 8dae0004 */ lw $t6,0x4($t5) +/* 35374: 91cf0002 */ lbu $t7,0x2($t6) +/* 35378: 31e8001f */ andi $t0,$t7,0x1f +/* 3537c: 1519000c */ bne $t0,$t9,.NB000353b0 +/* 35380: 00000000 */ sll $zero,$zero,0x0 +/* 35384: 24090800 */ addiu $t1,$zero,0x800 +/* 35388: a7a9001c */ sh $t1,0x1c($sp) +/* 3538c: 8fb80030 */ lw $t8,0x30($sp) +/* 35390: afb80020 */ sw $t8,0x20($sp) +/* 35394: 3c048006 */ lui $a0,0x8006 +/* 35398: 8c84163c */ lw $a0,0x163c($a0) +/* 3539c: 27a5001c */ addiu $a1,$sp,0x1c +/* 353a0: 00003025 */ or $a2,$zero,$zero +/* 353a4: 00003825 */ or $a3,$zero,$zero +/* 353a8: 0c00f678 */ jal 0x3d9e0 +/* 353ac: 24840014 */ addiu $a0,$a0,0x14 +.NB000353b0: +/* 353b0: 8faa002c */ lw $t2,0x2c($sp) +/* 353b4: 8fac0030 */ lw $t4,0x30($sp) +/* 353b8: 254b0001 */ addiu $t3,$t2,0x1 +/* 353bc: afab002c */ sw $t3,0x2c($sp) +/* 353c0: 8d8d0000 */ lw $t5,0x0($t4) +/* 353c4: 15a0ffe7 */ bnez $t5,.NB00035364 +/* 353c8: afad0030 */ sw $t5,0x30($sp) +.NB000353cc: +/* 353cc: 0c012688 */ jal 0x49a20 +/* 353d0: 8fa40034 */ lw $a0,0x34($sp) +.NB000353d4: +/* 353d4: 10000001 */ beqz $zero,.NB000353dc +/* 353d8: 00000000 */ sll $zero,$zero,0x0 +.NB000353dc: +/* 353dc: 8fbf0014 */ lw $ra,0x14($sp) +/* 353e0: 27bd0038 */ addiu $sp,$sp,0x38 +/* 353e4: 03e00008 */ jr $ra +/* 353e8: 00000000 */ sll $zero,$zero,0x0 +); +#endif diff --git a/src/lib/lib_37b00.c b/src/lib/lib_37b00.c index 2bb3113ea..092678cdb 100644 --- a/src/lib/lib_37b00.c +++ b/src/lib/lib_37b00.c @@ -39,6 +39,7 @@ u32 var8009c3f4; u32 var8009c3f8; u32 var8009c3fc; +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func00037b00 /* 37b00: 27bdffe0 */ addiu $sp,$sp,-32 @@ -207,6 +208,180 @@ glabel func00037b00 /* 37d80: 03e00008 */ jr $ra /* 37d84: 00000000 */ nop ); +#else +GLOBAL_ASM( +glabel func00037b00 +/* 38ec0: 27bdffe0 */ addiu $sp,$sp,-32 +/* 38ec4: afbf001c */ sw $ra,0x1c($sp) +/* 38ec8: afa40020 */ sw $a0,0x20($sp) +/* 38ecc: 3c04800a */ lui $a0,0x800a +/* 38ed0: 24840a90 */ addiu $a0,$a0,0xa90 +/* 38ed4: 0c013014 */ jal 0x4c050 +/* 38ed8: 24050064 */ addiu $a1,$zero,0x64 +/* 38edc: 3c047005 */ lui $a0,0x7005 +/* 38ee0: 248461b0 */ addiu $a0,$a0,0x61b0 +/* 38ee4: 0c00c47d */ jal 0x311f4 +/* 38ee8: 34058480 */ dli $a1,0x8480 +/* 38eec: 240e0001 */ addiu $t6,$zero,0x1 +/* 38ef0: afae0010 */ sw $t6,0x10($sp) +/* 38ef4: 00002025 */ or $a0,$zero,$zero +/* 38ef8: 00002825 */ or $a1,$zero,$zero +/* 38efc: 8fa60020 */ lw $a2,0x20($sp) +/* 38f00: 0c00c499 */ jal 0x31264 +/* 38f04: 34078480 */ dli $a3,0x8480 +/* 38f08: 3c01800a */ lui $at,0x800a +/* 38f0c: ac220af4 */ sw $v0,0xaf4($at) +/* 38f10: 240f2200 */ addiu $t7,$zero,0x2200 +/* 38f14: afaf0010 */ sw $t7,0x10($sp) +/* 38f18: 00002025 */ or $a0,$zero,$zero +/* 38f1c: 00002825 */ or $a1,$zero,$zero +/* 38f20: 8fa60020 */ lw $a2,0x20($sp) +/* 38f24: 0c00c499 */ jal 0x31264 +/* 38f28: 24070001 */ addiu $a3,$zero,0x1 +/* 38f2c: 3c018006 */ lui $at,0x8006 +/* 38f30: ac221c08 */ sw $v0,0x1c08($at) +/* 38f34: 24182200 */ addiu $t8,$zero,0x2200 +/* 38f38: afb80010 */ sw $t8,0x10($sp) +/* 38f3c: 00002025 */ or $a0,$zero,$zero +/* 38f40: 00002825 */ or $a1,$zero,$zero +/* 38f44: 8fa60020 */ lw $a2,0x20($sp) +/* 38f48: 0c00c499 */ jal 0x31264 +/* 38f4c: 24070001 */ addiu $a3,$zero,0x1 +/* 38f50: 3c018006 */ lui $at,0x8006 +/* 38f54: ac221c0c */ sw $v0,0x1c0c($at) +/* 38f58: 24190001 */ addiu $t9,$zero,0x1 +/* 38f5c: afb90010 */ sw $t9,0x10($sp) +/* 38f60: 00002025 */ or $a0,$zero,$zero +/* 38f64: 00002825 */ or $a1,$zero,$zero +/* 38f68: 8fa60020 */ lw $a2,0x20($sp) +/* 38f6c: 0c00c499 */ jal 0x31264 +/* 38f70: 24070400 */ addiu $a3,$zero,0x400 +/* 38f74: 3c01800a */ lui $at,0x800a +/* 38f78: ac220dd8 */ sw $v0,0xdd8($at) +/* 38f7c: 24080001 */ addiu $t0,$zero,0x1 +/* 38f80: afa80010 */ sw $t0,0x10($sp) +/* 38f84: 00002025 */ or $a0,$zero,$zero +/* 38f88: 00002825 */ or $a1,$zero,$zero +/* 38f8c: 8fa60020 */ lw $a2,0x20($sp) +/* 38f90: 0c00c499 */ jal 0x31264 +/* 38f94: 24070400 */ addiu $a3,$zero,0x400 +/* 38f98: 3c01800a */ lui $at,0x800a +/* 38f9c: ac220ddc */ sw $v0,0xddc($at) +/* 38fa0: 24090001 */ addiu $t1,$zero,0x1 +/* 38fa4: afa90010 */ sw $t1,0x10($sp) +/* 38fa8: 00002025 */ or $a0,$zero,$zero +/* 38fac: 00002825 */ or $a1,$zero,$zero +/* 38fb0: 8fa60020 */ lw $a2,0x20($sp) +/* 38fb4: 0c00c499 */ jal 0x31264 +/* 38fb8: 3407a410 */ dli $a3,0xa410 +/* 38fbc: 3c01800a */ lui $at,0x800a +/* 38fc0: ac220d40 */ sw $v0,0xd40($at) +/* 38fc4: 240a0001 */ addiu $t2,$zero,0x1 +/* 38fc8: afaa0010 */ sw $t2,0x10($sp) +/* 38fcc: 00002025 */ or $a0,$zero,$zero +/* 38fd0: 00002825 */ or $a1,$zero,$zero +/* 38fd4: 8fa60020 */ lw $a2,0x20($sp) +/* 38fd8: 0c00c499 */ jal 0x31264 +/* 38fdc: 34078000 */ dli $a3,0x8000 +/* 38fe0: 3c01800a */ lui $at,0x800a +/* 38fe4: ac220d44 */ sw $v0,0xd44($at) +/* 38fe8: 0c0115f5 */ jal 0x457d4 +/* 38fec: 00000000 */ sll $zero,$zero,0x0 +/* 38ff0: 240b0050 */ addiu $t3,$zero,0x50 +/* 38ff4: afab0010 */ sw $t3,0x10($sp) +/* 38ff8: 00002025 */ or $a0,$zero,$zero +/* 38ffc: 00002825 */ or $a1,$zero,$zero +/* 39000: 8fa60020 */ lw $a2,0x20($sp) +/* 39004: 0c00c499 */ jal 0x31264 +/* 39008: 24070001 */ addiu $a3,$zero,0x1 +/* 3900c: 3c01800a */ lui $at,0x800a +/* 39010: ac220a98 */ sw $v0,0xa98($at) +/* 39014: 240c0440 */ addiu $t4,$zero,0x440 +/* 39018: afac0010 */ sw $t4,0x10($sp) +/* 3901c: 00002025 */ or $a0,$zero,$zero +/* 39020: 00002825 */ or $a1,$zero,$zero +/* 39024: 8fa60020 */ lw $a2,0x20($sp) +/* 39028: 0c00c499 */ jal 0x31264 +/* 3902c: 24070001 */ addiu $a3,$zero,0x1 +/* 39030: 3c0d800a */ lui $t5,0x800a +/* 39034: 25ad0a90 */ addiu $t5,$t5,0xa90 +/* 39038: ada20044 */ sw $v0,0x44($t5) +/* 3903c: 3c01800a */ lui $at,0x800a +/* 39040: ac200ae0 */ sw $zero,0xae0($at) +/* 39044: 240e7fff */ addiu $t6,$zero,0x7fff +/* 39048: 3c01800a */ lui $at,0x800a +/* 3904c: ac2e0ae4 */ sw $t6,0xae4($at) +/* 39050: 3c01800a */ lui $at,0x800a +/* 39054: 240f0040 */ addiu $t7,$zero,0x40 +/* 39058: 24180040 */ addiu $t8,$zero,0x40 +/* 3905c: a4380aec */ sh $t8,0xaec($at) +/* 39060: a42f0aee */ sh $t7,0xaee($at) +/* 39064: 24197fff */ addiu $t9,$zero,0x7fff +/* 39068: 3c01800a */ lui $at,0x800a +/* 3906c: a4390a9e */ sh $t9,0xa9e($at) +/* 39070: 24080040 */ addiu $t0,$zero,0x40 +/* 39074: 3c01800a */ lui $at,0x800a +/* 39078: a4280a9c */ sh $t0,0xa9c($at) +/* 3907c: 3c09800a */ lui $t1,0x800a +/* 39080: 85290a9c */ lh $t1,0xa9c($t1) +/* 39084: 3c0c8006 */ lui $t4,0x8006 +/* 39088: 3c0d800a */ lui $t5,0x800a +/* 3908c: 312a007f */ andi $t2,$t1,0x7f +/* 39090: 000a5840 */ sll $t3,$t2,0x1 +/* 39094: 018b6021 */ addu $t4,$t4,$t3 +/* 39098: 858c1a80 */ lh $t4,0x1a80($t4) +/* 3909c: 85ad0a9e */ lh $t5,0xa9e($t5) +/* 390a0: 3c01800a */ lui $at,0x800a +/* 390a4: 018d0019 */ multu $t4,$t5 +/* 390a8: 00007012 */ mflo $t6 +/* 390ac: 000e7bc3 */ sra $t7,$t6,0xf +/* 390b0: a42f0aa0 */ sh $t7,0xaa0($at) +/* 390b4: 3c18800a */ lui $t8,0x800a +/* 390b8: 87180a9c */ lh $t8,0xa9c($t8) +/* 390bc: 3c0a8006 */ lui $t2,0x8006 +/* 390c0: 3c0b800a */ lui $t3,0x800a +/* 390c4: 3319007f */ andi $t9,$t8,0x7f +/* 390c8: 00194023 */ negu $t0,$t9 +/* 390cc: 00084840 */ sll $t1,$t0,0x1 +/* 390d0: 01495021 */ addu $t2,$t2,$t1 +/* 390d4: 854a1b7e */ lh $t2,0x1b7e($t2) +/* 390d8: 856b0a9e */ lh $t3,0xa9e($t3) +/* 390dc: 3c01800a */ lui $at,0x800a +/* 390e0: 014b0019 */ multu $t2,$t3 +/* 390e4: 00006012 */ mflo $t4 +/* 390e8: 000c6bc3 */ sra $t5,$t4,0xf +/* 390ec: a42d0aa2 */ sh $t5,0xaa2($at) +/* 390f0: 240e0001 */ addiu $t6,$zero,0x1 +/* 390f4: 3c01800a */ lui $at,0x800a +/* 390f8: a42e0ab4 */ sh $t6,0xab4($at) +/* 390fc: 240f7ffc */ addiu $t7,$zero,0x7ffc +/* 39100: 3c01800a */ lui $at,0x800a +/* 39104: a42f0aa4 */ sh $t7,0xaa4($at) +/* 39108: 3c18800a */ lui $t8,0x800a +/* 3910c: 87180a9c */ lh $t8,0xa9c($t8) +/* 39110: 33190080 */ andi $t9,$t8,0x80 +/* 39114: 13200005 */ beqz $t9,.NB0003912c +/* 39118: 00000000 */ sll $zero,$zero,0x0 +/* 3911c: 24080001 */ addiu $t0,$zero,0x1 +/* 39120: 3c01800a */ lui $at,0x800a +/* 39124: 10000003 */ beqz $zero,.NB00039134 +/* 39128: a4280aa6 */ sh $t0,0xaa6($at) +.NB0003912c: +/* 3912c: 3c01800a */ lui $at,0x800a +/* 39130: a4200aa6 */ sh $zero,0xaa6($at) +.NB00039134: +/* 39134: 3c047004 */ lui $a0,0x7004 +/* 39138: 0c00e7d8 */ jal 0x39f60 +/* 3913c: 24849f78 */ addiu $a0,$a0,-24712 +/* 39140: 10000001 */ beqz $zero,.NB00039148 +/* 39144: 00000000 */ sll $zero,$zero,0x0 +.NB00039148: +/* 39148: 8fbf001c */ lw $ra,0x1c($sp) +/* 3914c: 27bd0020 */ addiu $sp,$sp,0x20 +/* 39150: 03e00008 */ jr $ra +/* 39154: 00000000 */ sll $zero,$zero,0x0 +); +#endif GLOBAL_ASM( glabel func00037d88 diff --git a/src/lib/lib_513b0.c b/src/lib/lib_513b0.c index 5625e0a97..7fd4e4718 100644 --- a/src/lib/lib_513b0.c +++ b/src/lib/lib_513b0.c @@ -133,223 +133,4 @@ glabel func000513b0 /* 51564: 8fb50030 */ lw $s5,0x30($sp) /* 51568: 03e00008 */ jr $ra /* 5156c: 27bd0040 */ addiu $sp,$sp,0x40 -/* 51570: 27bdff90 */ addiu $sp,$sp,-112 -/* 51574: afbf001c */ sw $ra,0x1c($sp) -/* 51578: afb00018 */ sw $s0,0x18($sp) -/* 5157c: 00a08025 */ or $s0,$a1,$zero -/* 51580: afa40070 */ sw $a0,0x70($sp) -/* 51584: 0c012a18 */ jal __osSiGetAccess -/* 51588: afa60078 */ sw $a2,0x78($sp) -/* 5158c: 8fa40070 */ lw $a0,0x70($sp) -/* 51590: 0c012ea4 */ jal __osPfsGetStatus -/* 51594: 8fa50078 */ lw $a1,0x78($sp) -/* 51598: 0c012a29 */ jal __osSiRelAccess -/* 5159c: afa2006c */ sw $v0,0x6c($sp) -/* 515a0: 8fa3006c */ lw $v1,0x6c($sp) -/* 515a4: 8fae0070 */ lw $t6,0x70($sp) -/* 515a8: 02002025 */ or $a0,$s0,$zero -/* 515ac: 50600004 */ beqzl $v1,.L000515c0 -/* 515b0: ae0e0004 */ sw $t6,0x4($s0) -/* 515b4: 1000006b */ b .L00051764 -/* 515b8: 00601025 */ or $v0,$v1,$zero -/* 515bc: ae0e0004 */ sw $t6,0x4($s0) -.L000515c0: -/* 515c0: 8faf0078 */ lw $t7,0x78($sp) -/* 515c4: ae000000 */ sw $zero,0x0($s0) -/* 515c8: 0c0145de */ jal func00051778 -/* 515cc: ae0f0008 */ sw $t7,0x8($s0) -/* 515d0: 10400003 */ beqz $v0,.L000515e0 -/* 515d4: 02002025 */ or $a0,$s0,$zero -/* 515d8: 10000063 */ b .L00051768 -/* 515dc: 8fbf001c */ lw $ra,0x1c($sp) -.L000515e0: -/* 515e0: 0c013378 */ jal __osPfsSelectBank -/* 515e4: 00002825 */ or $a1,$zero,$zero -/* 515e8: 10400003 */ beqz $v0,.L000515f8 -/* 515ec: 24060001 */ addiu $a2,$zero,0x1 -/* 515f0: 1000005d */ b .L00051768 -/* 515f4: 8fbf001c */ lw $ra,0x1c($sp) -.L000515f8: -/* 515f8: 8e040004 */ lw $a0,0x4($s0) -/* 515fc: 8e050008 */ lw $a1,0x8($s0) -/* 51600: 0c012e18 */ jal __osContRamRead -/* 51604: 27a70048 */ addiu $a3,$sp,0x48 -/* 51608: 10400003 */ beqz $v0,.L00051618 -/* 5160c: 27a40048 */ addiu $a0,$sp,0x48 -/* 51610: 10000055 */ b .L00051768 -/* 51614: 8fbf001c */ lw $ra,0x1c($sp) -.L00051618: -/* 51618: 27a5006a */ addiu $a1,$sp,0x6a -/* 5161c: 0c013041 */ jal func0004c104 -/* 51620: 27a60068 */ addiu $a2,$sp,0x68 -/* 51624: 97b8006a */ lhu $t8,0x6a($sp) -/* 51628: 97b90064 */ lhu $t9,0x64($sp) -/* 5162c: 27a50048 */ addiu $a1,$sp,0x48 -/* 51630: afa50044 */ sw $a1,0x44($sp) -/* 51634: 17190004 */ bne $t8,$t9,.L00051648 -/* 51638: 97a90068 */ lhu $t1,0x68($sp) -/* 5163c: 97aa0066 */ lhu $t2,0x66($sp) -/* 51640: 512a000a */ beql $t1,$t2,.L0005166c -/* 51644: 97ad0060 */ lhu $t5,0x60($sp) -.L00051648: -/* 51648: 0c013154 */ jal func0004c550 -/* 5164c: 02002025 */ or $a0,$s0,$zero -/* 51650: 50400006 */ beqzl $v0,.L0005166c -/* 51654: 97ad0060 */ lhu $t5,0x60($sp) -/* 51658: 8e0b0000 */ lw $t3,0x0($s0) -/* 5165c: 356c0004 */ ori $t4,$t3,0x4 -/* 51660: 10000040 */ b .L00051764 -/* 51664: ae0c0000 */ sw $t4,0x0($s0) -/* 51668: 97ad0060 */ lhu $t5,0x60($sp) -.L0005166c: -/* 5166c: 27a50048 */ addiu $a1,$sp,0x48 -/* 51670: 02002025 */ or $a0,$s0,$zero -/* 51674: 31ae0001 */ andi $t6,$t5,0x1 -/* 51678: 55c00016 */ bnezl $t6,.L000516d4 -/* 5167c: 8fa40044 */ lw $a0,0x44($sp) -/* 51680: 0c013080 */ jal func0004c200 -/* 51684: 27a60020 */ addiu $a2,$sp,0x20 -/* 51688: 10400009 */ beqz $v0,.L000516b0 -/* 5168c: 00401825 */ or $v1,$v0,$zero -/* 51690: 2401000a */ addiu $at,$zero,0xa -/* 51694: 14410004 */ bne $v0,$at,.L000516a8 -/* 51698: 00000000 */ nop -/* 5169c: 8e0f0000 */ lw $t7,0x0($s0) -/* 516a0: 35f80004 */ ori $t8,$t7,0x4 -/* 516a4: ae180000 */ sw $t8,0x0($s0) -.L000516a8: -/* 516a8: 1000002e */ b .L00051764 -/* 516ac: 00601025 */ or $v0,$v1,$zero -.L000516b0: -/* 516b0: 97a90038 */ lhu $t1,0x38($sp) -/* 516b4: 27b90020 */ addiu $t9,$sp,0x20 -/* 516b8: afb90044 */ sw $t9,0x44($sp) -/* 516bc: 312a0001 */ andi $t2,$t1,0x1 -/* 516c0: 55400004 */ bnezl $t2,.L000516d4 -/* 516c4: 8fa40044 */ lw $a0,0x44($sp) -/* 516c8: 10000026 */ b .L00051764 -/* 516cc: 2402000b */ addiu $v0,$zero,0xb -/* 516d0: 8fa40044 */ lw $a0,0x44($sp) -.L000516d4: -/* 516d4: 2605000c */ addiu $a1,$s0,0xc -/* 516d8: 0c012c5c */ jal bcopy -/* 516dc: 24060020 */ addiu $a2,$zero,0x20 -/* 516e0: 8fab0044 */ lw $t3,0x44($sp) -/* 516e4: 24190010 */ addiu $t9,$zero,0x10 -/* 516e8: 24090008 */ addiu $t1,$zero,0x8 -/* 516ec: 916c001b */ lbu $t4,0x1b($t3) -/* 516f0: 8e040004 */ lw $a0,0x4($s0) -/* 516f4: 8e050008 */ lw $a1,0x8($s0) -/* 516f8: ae0c004c */ sw $t4,0x4c($s0) -/* 516fc: 8fad0044 */ lw $t5,0x44($sp) -/* 51700: 24060007 */ addiu $a2,$zero,0x7 -/* 51704: 2607002c */ addiu $a3,$s0,0x2c -/* 51708: 91ae001a */ lbu $t6,0x1a($t5) -/* 5170c: ae190050 */ sw $t9,0x50($s0) -/* 51710: ae090054 */ sw $t1,0x54($s0) -/* 51714: 31c200ff */ andi $v0,$t6,0xff -/* 51718: 000218c0 */ sll $v1,$v0,0x3 -/* 5171c: 00027840 */ sll $t7,$v0,0x1 -/* 51720: 24680008 */ addiu $t0,$v1,0x8 -/* 51724: 25f80003 */ addiu $t8,$t7,0x3 -/* 51728: 01035021 */ addu $t2,$t0,$v1 -/* 5172c: ae180060 */ sw $t8,0x60($s0) -/* 51730: ae080058 */ sw $t0,0x58($s0) -/* 51734: ae0a005c */ sw $t2,0x5c($s0) -/* 51738: 0c012e18 */ jal __osContRamRead -/* 5173c: a20e0064 */ sb $t6,0x64($s0) -/* 51740: 10400003 */ beqz $v0,.L00051750 -/* 51744: 00000000 */ nop -/* 51748: 10000007 */ b .L00051768 -/* 5174c: 8fbf001c */ lw $ra,0x1c($sp) -.L00051750: -/* 51750: 0c0135bc */ jal func0004d6f0 -/* 51754: 02002025 */ or $a0,$s0,$zero -/* 51758: 8e0b0000 */ lw $t3,0x0($s0) -/* 5175c: 356c0001 */ ori $t4,$t3,0x1 -/* 51760: ae0c0000 */ sw $t4,0x0($s0) -.L00051764: -/* 51764: 8fbf001c */ lw $ra,0x1c($sp) -.L00051768: -/* 51768: 8fb00018 */ lw $s0,0x18($sp) -/* 5176c: 27bd0070 */ addiu $sp,$sp,0x70 -/* 51770: 03e00008 */ jr $ra -/* 51774: 00000000 */ nop -); - -GLOBAL_ASM( -glabel func00051778 -/* 51778: 27bdff68 */ addiu $sp,$sp,-152 -/* 5177c: afbf0024 */ sw $ra,0x24($sp) -/* 51780: afb00020 */ sw $s0,0x20($sp) -/* 51784: 00808025 */ or $s0,$a0,$zero -/* 51788: 0c013378 */ jal __osPfsSelectBank -/* 5178c: 00002825 */ or $a1,$zero,$zero -/* 51790: 10400003 */ beqz $v0,.L000517a0 -/* 51794: 00003025 */ or $a2,$zero,$zero -/* 51798: 10000034 */ b .L0005186c -/* 5179c: 8fbf0024 */ lw $ra,0x24($sp) -.L000517a0: -/* 517a0: 8e040004 */ lw $a0,0x4($s0) -/* 517a4: 8e050008 */ lw $a1,0x8($s0) -/* 517a8: 0c012e18 */ jal __osContRamRead -/* 517ac: 27a70030 */ addiu $a3,$sp,0x30 -/* 517b0: 10400003 */ beqz $v0,.L000517c0 -/* 517b4: 27a30070 */ addiu $v1,$sp,0x70 -/* 517b8: 1000002c */ b .L0005186c -/* 517bc: 8fbf0024 */ lw $ra,0x24($sp) -.L000517c0: -/* 517c0: 00001025 */ or $v0,$zero,$zero -/* 517c4: 24040020 */ addiu $a0,$zero,0x20 -.L000517c8: -/* 517c8: 244e0001 */ addiu $t6,$v0,0x1 -/* 517cc: 244f0002 */ addiu $t7,$v0,0x2 -/* 517d0: 24580003 */ addiu $t8,$v0,0x3 -/* 517d4: a0620000 */ sb $v0,0x0($v1) -/* 517d8: 24420004 */ addiu $v0,$v0,0x4 -/* 517dc: a0780003 */ sb $t8,0x3($v1) -/* 517e0: a06f0002 */ sb $t7,0x2($v1) -/* 517e4: a06e0001 */ sb $t6,0x1($v1) -/* 517e8: 1444fff7 */ bne $v0,$a0,.L000517c8 -/* 517ec: 24630004 */ addiu $v1,$v1,0x4 -/* 517f0: 8e040004 */ lw $a0,0x4($s0) -/* 517f4: 8e050008 */ lw $a1,0x8($s0) -/* 517f8: afa00010 */ sw $zero,0x10($sp) -/* 517fc: 00003025 */ or $a2,$zero,$zero -/* 51800: 0c012d84 */ jal __osContRamWrite -/* 51804: 27a70070 */ addiu $a3,$sp,0x70 -/* 51808: 10400003 */ beqz $v0,.L00051818 -/* 5180c: 00003025 */ or $a2,$zero,$zero -/* 51810: 10000016 */ b .L0005186c -/* 51814: 8fbf0024 */ lw $ra,0x24($sp) -.L00051818: -/* 51818: 8e040004 */ lw $a0,0x4($s0) -/* 5181c: 8e050008 */ lw $a1,0x8($s0) -/* 51820: 0c012e18 */ jal __osContRamRead -/* 51824: 27a70050 */ addiu $a3,$sp,0x50 -/* 51828: 10400003 */ beqz $v0,.L00051838 -/* 5182c: 27a40070 */ addiu $a0,$sp,0x70 -/* 51830: 1000000e */ b .L0005186c -/* 51834: 8fbf0024 */ lw $ra,0x24($sp) -.L00051838: -/* 51838: 27a50050 */ addiu $a1,$sp,0x50 -/* 5183c: 0c013824 */ jal func0004e090 -/* 51840: 24060020 */ addiu $a2,$zero,0x20 -/* 51844: 10400003 */ beqz $v0,.L00051854 -/* 51848: 00003025 */ or $a2,$zero,$zero -/* 5184c: 10000006 */ b .L00051868 -/* 51850: 2402000b */ addiu $v0,$zero,0xb -.L00051854: -/* 51854: 8e040004 */ lw $a0,0x4($s0) -/* 51858: 8e050008 */ lw $a1,0x8($s0) -/* 5185c: afa00010 */ sw $zero,0x10($sp) -/* 51860: 0c012d84 */ jal __osContRamWrite -/* 51864: 27a70030 */ addiu $a3,$sp,0x30 -.L00051868: -/* 51868: 8fbf0024 */ lw $ra,0x24($sp) -.L0005186c: -/* 5186c: 8fb00020 */ lw $s0,0x20($sp) -/* 51870: 27bd0098 */ addiu $sp,$sp,0x98 -/* 51874: 03e00008 */ jr $ra -/* 51878: 00000000 */ nop ); diff --git a/src/lib/lib_51570.c b/src/lib/lib_51570.c new file mode 100644 index 000000000..34aedbc8c --- /dev/null +++ b/src/lib/lib_51570.c @@ -0,0 +1,233 @@ +#include +#include "constants.h" +#include "bss.h" +#include "lib/lib_4b170.h" +#include "lib/lib_4c090.h" +#include "lib/lib_4d6f0.h" +#include "lib/lib_513b0.h" +#include "lib/lib_52360.h" +#include "data.h" +#include "types.h" + +GLOBAL_ASM( +glabel func000051570 +/* 51570: 27bdff90 */ addiu $sp,$sp,-112 +/* 51574: afbf001c */ sw $ra,0x1c($sp) +/* 51578: afb00018 */ sw $s0,0x18($sp) +/* 5157c: 00a08025 */ or $s0,$a1,$zero +/* 51580: afa40070 */ sw $a0,0x70($sp) +/* 51584: 0c012a18 */ jal __osSiGetAccess +/* 51588: afa60078 */ sw $a2,0x78($sp) +/* 5158c: 8fa40070 */ lw $a0,0x70($sp) +/* 51590: 0c012ea4 */ jal __osPfsGetStatus +/* 51594: 8fa50078 */ lw $a1,0x78($sp) +/* 51598: 0c012a29 */ jal __osSiRelAccess +/* 5159c: afa2006c */ sw $v0,0x6c($sp) +/* 515a0: 8fa3006c */ lw $v1,0x6c($sp) +/* 515a4: 8fae0070 */ lw $t6,0x70($sp) +/* 515a8: 02002025 */ or $a0,$s0,$zero +/* 515ac: 50600004 */ beqzl $v1,.L000515c0 +/* 515b0: ae0e0004 */ sw $t6,0x4($s0) +/* 515b4: 1000006b */ b .L00051764 +/* 515b8: 00601025 */ or $v0,$v1,$zero +/* 515bc: ae0e0004 */ sw $t6,0x4($s0) +.L000515c0: +/* 515c0: 8faf0078 */ lw $t7,0x78($sp) +/* 515c4: ae000000 */ sw $zero,0x0($s0) +/* 515c8: 0c0145de */ jal func00051778 +/* 515cc: ae0f0008 */ sw $t7,0x8($s0) +/* 515d0: 10400003 */ beqz $v0,.L000515e0 +/* 515d4: 02002025 */ or $a0,$s0,$zero +/* 515d8: 10000063 */ b .L00051768 +/* 515dc: 8fbf001c */ lw $ra,0x1c($sp) +.L000515e0: +/* 515e0: 0c013378 */ jal __osPfsSelectBank +/* 515e4: 00002825 */ or $a1,$zero,$zero +/* 515e8: 10400003 */ beqz $v0,.L000515f8 +/* 515ec: 24060001 */ addiu $a2,$zero,0x1 +/* 515f0: 1000005d */ b .L00051768 +/* 515f4: 8fbf001c */ lw $ra,0x1c($sp) +.L000515f8: +/* 515f8: 8e040004 */ lw $a0,0x4($s0) +/* 515fc: 8e050008 */ lw $a1,0x8($s0) +/* 51600: 0c012e18 */ jal __osContRamRead +/* 51604: 27a70048 */ addiu $a3,$sp,0x48 +/* 51608: 10400003 */ beqz $v0,.L00051618 +/* 5160c: 27a40048 */ addiu $a0,$sp,0x48 +/* 51610: 10000055 */ b .L00051768 +/* 51614: 8fbf001c */ lw $ra,0x1c($sp) +.L00051618: +/* 51618: 27a5006a */ addiu $a1,$sp,0x6a +/* 5161c: 0c013041 */ jal func0004c104 +/* 51620: 27a60068 */ addiu $a2,$sp,0x68 +/* 51624: 97b8006a */ lhu $t8,0x6a($sp) +/* 51628: 97b90064 */ lhu $t9,0x64($sp) +/* 5162c: 27a50048 */ addiu $a1,$sp,0x48 +/* 51630: afa50044 */ sw $a1,0x44($sp) +/* 51634: 17190004 */ bne $t8,$t9,.L00051648 +/* 51638: 97a90068 */ lhu $t1,0x68($sp) +/* 5163c: 97aa0066 */ lhu $t2,0x66($sp) +/* 51640: 512a000a */ beql $t1,$t2,.L0005166c +/* 51644: 97ad0060 */ lhu $t5,0x60($sp) +.L00051648: +/* 51648: 0c013154 */ jal func0004c550 +/* 5164c: 02002025 */ or $a0,$s0,$zero +/* 51650: 50400006 */ beqzl $v0,.L0005166c +/* 51654: 97ad0060 */ lhu $t5,0x60($sp) +/* 51658: 8e0b0000 */ lw $t3,0x0($s0) +/* 5165c: 356c0004 */ ori $t4,$t3,0x4 +/* 51660: 10000040 */ b .L00051764 +/* 51664: ae0c0000 */ sw $t4,0x0($s0) +/* 51668: 97ad0060 */ lhu $t5,0x60($sp) +.L0005166c: +/* 5166c: 27a50048 */ addiu $a1,$sp,0x48 +/* 51670: 02002025 */ or $a0,$s0,$zero +/* 51674: 31ae0001 */ andi $t6,$t5,0x1 +/* 51678: 55c00016 */ bnezl $t6,.L000516d4 +/* 5167c: 8fa40044 */ lw $a0,0x44($sp) +/* 51680: 0c013080 */ jal func0004c200 +/* 51684: 27a60020 */ addiu $a2,$sp,0x20 +/* 51688: 10400009 */ beqz $v0,.L000516b0 +/* 5168c: 00401825 */ or $v1,$v0,$zero +/* 51690: 2401000a */ addiu $at,$zero,0xa +/* 51694: 14410004 */ bne $v0,$at,.L000516a8 +/* 51698: 00000000 */ nop +/* 5169c: 8e0f0000 */ lw $t7,0x0($s0) +/* 516a0: 35f80004 */ ori $t8,$t7,0x4 +/* 516a4: ae180000 */ sw $t8,0x0($s0) +.L000516a8: +/* 516a8: 1000002e */ b .L00051764 +/* 516ac: 00601025 */ or $v0,$v1,$zero +.L000516b0: +/* 516b0: 97a90038 */ lhu $t1,0x38($sp) +/* 516b4: 27b90020 */ addiu $t9,$sp,0x20 +/* 516b8: afb90044 */ sw $t9,0x44($sp) +/* 516bc: 312a0001 */ andi $t2,$t1,0x1 +/* 516c0: 55400004 */ bnezl $t2,.L000516d4 +/* 516c4: 8fa40044 */ lw $a0,0x44($sp) +/* 516c8: 10000026 */ b .L00051764 +/* 516cc: 2402000b */ addiu $v0,$zero,0xb +/* 516d0: 8fa40044 */ lw $a0,0x44($sp) +.L000516d4: +/* 516d4: 2605000c */ addiu $a1,$s0,0xc +/* 516d8: 0c012c5c */ jal bcopy +/* 516dc: 24060020 */ addiu $a2,$zero,0x20 +/* 516e0: 8fab0044 */ lw $t3,0x44($sp) +/* 516e4: 24190010 */ addiu $t9,$zero,0x10 +/* 516e8: 24090008 */ addiu $t1,$zero,0x8 +/* 516ec: 916c001b */ lbu $t4,0x1b($t3) +/* 516f0: 8e040004 */ lw $a0,0x4($s0) +/* 516f4: 8e050008 */ lw $a1,0x8($s0) +/* 516f8: ae0c004c */ sw $t4,0x4c($s0) +/* 516fc: 8fad0044 */ lw $t5,0x44($sp) +/* 51700: 24060007 */ addiu $a2,$zero,0x7 +/* 51704: 2607002c */ addiu $a3,$s0,0x2c +/* 51708: 91ae001a */ lbu $t6,0x1a($t5) +/* 5170c: ae190050 */ sw $t9,0x50($s0) +/* 51710: ae090054 */ sw $t1,0x54($s0) +/* 51714: 31c200ff */ andi $v0,$t6,0xff +/* 51718: 000218c0 */ sll $v1,$v0,0x3 +/* 5171c: 00027840 */ sll $t7,$v0,0x1 +/* 51720: 24680008 */ addiu $t0,$v1,0x8 +/* 51724: 25f80003 */ addiu $t8,$t7,0x3 +/* 51728: 01035021 */ addu $t2,$t0,$v1 +/* 5172c: ae180060 */ sw $t8,0x60($s0) +/* 51730: ae080058 */ sw $t0,0x58($s0) +/* 51734: ae0a005c */ sw $t2,0x5c($s0) +/* 51738: 0c012e18 */ jal __osContRamRead +/* 5173c: a20e0064 */ sb $t6,0x64($s0) +/* 51740: 10400003 */ beqz $v0,.L00051750 +/* 51744: 00000000 */ nop +/* 51748: 10000007 */ b .L00051768 +/* 5174c: 8fbf001c */ lw $ra,0x1c($sp) +.L00051750: +/* 51750: 0c0135bc */ jal func0004d6f0 +/* 51754: 02002025 */ or $a0,$s0,$zero +/* 51758: 8e0b0000 */ lw $t3,0x0($s0) +/* 5175c: 356c0001 */ ori $t4,$t3,0x1 +/* 51760: ae0c0000 */ sw $t4,0x0($s0) +.L00051764: +/* 51764: 8fbf001c */ lw $ra,0x1c($sp) +.L00051768: +/* 51768: 8fb00018 */ lw $s0,0x18($sp) +/* 5176c: 27bd0070 */ addiu $sp,$sp,0x70 +/* 51770: 03e00008 */ jr $ra +/* 51774: 00000000 */ nop +); + +GLOBAL_ASM( +glabel func00051778 +/* 51778: 27bdff68 */ addiu $sp,$sp,-152 +/* 5177c: afbf0024 */ sw $ra,0x24($sp) +/* 51780: afb00020 */ sw $s0,0x20($sp) +/* 51784: 00808025 */ or $s0,$a0,$zero +/* 51788: 0c013378 */ jal __osPfsSelectBank +/* 5178c: 00002825 */ or $a1,$zero,$zero +/* 51790: 10400003 */ beqz $v0,.L000517a0 +/* 51794: 00003025 */ or $a2,$zero,$zero +/* 51798: 10000034 */ b .L0005186c +/* 5179c: 8fbf0024 */ lw $ra,0x24($sp) +.L000517a0: +/* 517a0: 8e040004 */ lw $a0,0x4($s0) +/* 517a4: 8e050008 */ lw $a1,0x8($s0) +/* 517a8: 0c012e18 */ jal __osContRamRead +/* 517ac: 27a70030 */ addiu $a3,$sp,0x30 +/* 517b0: 10400003 */ beqz $v0,.L000517c0 +/* 517b4: 27a30070 */ addiu $v1,$sp,0x70 +/* 517b8: 1000002c */ b .L0005186c +/* 517bc: 8fbf0024 */ lw $ra,0x24($sp) +.L000517c0: +/* 517c0: 00001025 */ or $v0,$zero,$zero +/* 517c4: 24040020 */ addiu $a0,$zero,0x20 +.L000517c8: +/* 517c8: 244e0001 */ addiu $t6,$v0,0x1 +/* 517cc: 244f0002 */ addiu $t7,$v0,0x2 +/* 517d0: 24580003 */ addiu $t8,$v0,0x3 +/* 517d4: a0620000 */ sb $v0,0x0($v1) +/* 517d8: 24420004 */ addiu $v0,$v0,0x4 +/* 517dc: a0780003 */ sb $t8,0x3($v1) +/* 517e0: a06f0002 */ sb $t7,0x2($v1) +/* 517e4: a06e0001 */ sb $t6,0x1($v1) +/* 517e8: 1444fff7 */ bne $v0,$a0,.L000517c8 +/* 517ec: 24630004 */ addiu $v1,$v1,0x4 +/* 517f0: 8e040004 */ lw $a0,0x4($s0) +/* 517f4: 8e050008 */ lw $a1,0x8($s0) +/* 517f8: afa00010 */ sw $zero,0x10($sp) +/* 517fc: 00003025 */ or $a2,$zero,$zero +/* 51800: 0c012d84 */ jal __osContRamWrite +/* 51804: 27a70070 */ addiu $a3,$sp,0x70 +/* 51808: 10400003 */ beqz $v0,.L00051818 +/* 5180c: 00003025 */ or $a2,$zero,$zero +/* 51810: 10000016 */ b .L0005186c +/* 51814: 8fbf0024 */ lw $ra,0x24($sp) +.L00051818: +/* 51818: 8e040004 */ lw $a0,0x4($s0) +/* 5181c: 8e050008 */ lw $a1,0x8($s0) +/* 51820: 0c012e18 */ jal __osContRamRead +/* 51824: 27a70050 */ addiu $a3,$sp,0x50 +/* 51828: 10400003 */ beqz $v0,.L00051838 +/* 5182c: 27a40070 */ addiu $a0,$sp,0x70 +/* 51830: 1000000e */ b .L0005186c +/* 51834: 8fbf0024 */ lw $ra,0x24($sp) +.L00051838: +/* 51838: 27a50050 */ addiu $a1,$sp,0x50 +/* 5183c: 0c013824 */ jal func0004e090 +/* 51840: 24060020 */ addiu $a2,$zero,0x20 +/* 51844: 10400003 */ beqz $v0,.L00051854 +/* 51848: 00003025 */ or $a2,$zero,$zero +/* 5184c: 10000006 */ b .L00051868 +/* 51850: 2402000b */ addiu $v0,$zero,0xb +.L00051854: +/* 51854: 8e040004 */ lw $a0,0x4($s0) +/* 51858: 8e050008 */ lw $a1,0x8($s0) +/* 5185c: afa00010 */ sw $zero,0x10($sp) +/* 51860: 0c012d84 */ jal __osContRamWrite +/* 51864: 27a70030 */ addiu $a3,$sp,0x30 +.L00051868: +/* 51868: 8fbf0024 */ lw $ra,0x24($sp) +.L0005186c: +/* 5186c: 8fb00020 */ lw $s0,0x20($sp) +/* 51870: 27bd0098 */ addiu $sp,$sp,0x98 +/* 51874: 03e00008 */ jr $ra +/* 51878: 00000000 */ nop +); diff --git a/src/lib/lib_52360.c b/src/lib/lib_52360.c index 2e0f112de..ef7a120f7 100644 --- a/src/lib/lib_52360.c +++ b/src/lib/lib_52360.c @@ -63,4 +63,4 @@ glabel func00052360 /* 52424: 8fb10020 */ lw $s1,0x20($sp) /* 52428: 03e00008 */ jr $ra /* 5242c: 27bd0058 */ addiu $sp,$sp,0x58 -); \ No newline at end of file +); diff --git a/src/lib/main.c b/src/lib/main.c index 12b8626d5..abf8d1ab5 100644 --- a/src/lib/main.c +++ b/src/lib/main.c @@ -309,7 +309,7 @@ glabel mainInit /* d40c: 8dd9001c */ lw $t9,0x1c($t6) /* d410: 8dc10018 */ lw $at,0x18($t6) /* d414: adb9001c */ sw $t9,0x1c($t5) -/* d418: 0c0005b0 */ jal osGetMemSize +/* d418: 0c0005b0 */ jal initGetMemSize /* d41c: ada10018 */ sw $at,0x18($t5) /* d420: 3c010040 */ lui $at,0x40 /* d424: 34210001 */ ori $at,$at,0x1 @@ -593,7 +593,7 @@ glabel mainInit /* d838: 03e00008 */ jr $ra /* d83c: 00000000 */ nop ); -#else +#elif VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel mainInit /* d520: 27bdeb28 */ addiu $sp,$sp,-5336 @@ -714,7 +714,7 @@ glabel mainInit /* d6d4: 8dd9001c */ lw $t9,0x1c($t6) /* d6d8: 8dc10018 */ lw $at,0x18($t6) /* d6dc: adb9001c */ sw $t9,0x1c($t5) -/* d6e0: 0c0005b0 */ jal osGetMemSize +/* d6e0: 0c0005b0 */ jal initGetMemSize /* d6e4: ada10018 */ sw $at,0x18($t5) /* d6e8: 3c010040 */ lui $at,0x40 /* d6ec: 34210001 */ ori $at,$at,0x1 @@ -988,6 +988,381 @@ glabel mainInit /* dae0: 03e00008 */ jr $ra /* dae4: 27bd14d8 */ addiu $sp,$sp,0x14d8 ); +#else +GLOBAL_ASM( +glabel mainInit +/* da80: 27bdeb20 */ addiu $sp,$sp,-5344 +/* da84: afbf0034 */ sw $ra,0x34($sp) +/* da88: afb20030 */ sw $s2,0x30($sp) +/* da8c: afb1002c */ sw $s1,0x2c($sp) +/* da90: 0c003060 */ jal 0xc180 +/* da94: afb00028 */ sw $s0,0x28($sp) +/* da98: 0c0035b4 */ jal 0xd6d0 +/* da9c: 00000000 */ sll $zero,$zero,0x0 +/* daa0: 0c0022f0 */ jal 0x8bc0 +/* daa4: 00000000 */ sll $zero,$zero,0x0 +/* daa8: 0c0059d4 */ jal 0x16750 +/* daac: 00000000 */ sll $zero,$zero,0x0 +/* dab0: 0c004994 */ jal 0x12650 +/* dab4: 00000000 */ sll $zero,$zero,0x0 +/* dab8: 0c004beb */ jal 0x12fac +/* dabc: 00000000 */ sll $zero,$zero,0x0 +/* dac0: 0c004fea */ jal 0x13fa8 +/* dac4: 00000000 */ sll $zero,$zero,0x0 +/* dac8: 0c002714 */ jal 0x9c50 +/* dacc: 00000000 */ sll $zero,$zero,0x0 +/* dad0: 0c00c456 */ jal 0x31158 +/* dad4: 00000000 */ sll $zero,$zero,0x0 +/* dad8: 3c018006 */ lui $at,0x8006 +/* dadc: 0c0052b6 */ jal 0x14ad8 +/* dae0: ac22f2d0 */ sw $v0,-0xd30($at) +/* dae4: 27b11498 */ addiu $s1,$sp,0x1498 +/* dae8: 27b214d4 */ addiu $s2,$sp,0x14d4 +/* daec: 02402825 */ or $a1,$s2,$zero +/* daf0: 02202025 */ or $a0,$s1,$zero +/* daf4: 0c0125c4 */ jal 0x49710 +/* daf8: 24060001 */ addiu $a2,$zero,0x1 +/* dafc: 00008025 */ or $s0,$zero,$zero +/* db00: 3c070047 */ lui $a3,0x47 +.NB0000db04: +/* db04: 240e0000 */ addiu $t6,$zero,0x0 +/* db08: 240f0000 */ addiu $t7,$zero,0x0 +/* db0c: afaf0014 */ sw $t7,0x14($sp) +/* db10: afae0010 */ sw $t6,0x10($sp) +/* db14: 34e7868c */ ori $a3,$a3,0x868c +/* db18: 27a414b0 */ addiu $a0,$sp,0x14b0 +/* db1c: 24060000 */ addiu $a2,$zero,0x0 +/* db20: afb10018 */ sw $s1,0x18($sp) +/* db24: 0c0127bc */ jal 0x49ef0 +/* db28: afb2001c */ sw $s2,0x1c($sp) +/* db2c: 02202025 */ or $a0,$s1,$zero +/* db30: 02402825 */ or $a1,$s2,$zero +/* db34: 0c0126b0 */ jal 0x49ac0 +/* db38: 24060001 */ addiu $a2,$zero,0x1 +/* db3c: 24010001 */ addiu $at,$zero,0x1 +/* db40: 56010006 */ bnel $s0,$at,.NB0000db5c +/* db44: 2a010002 */ slti $at,$s0,0x2 +/* db48: 0c005310 */ jal 0x14c40 +/* db4c: 00000000 */ sll $zero,$zero,0x0 +/* db50: 10000007 */ beqz $zero,.NB0000db70 +/* db54: 26100001 */ addiu $s0,$s0,0x1 +/* db58: 2a010002 */ slti $at,$s0,0x2 +.NB0000db5c: +/* db5c: 54200004 */ bnezl $at,.NB0000db70 +/* db60: 26100001 */ addiu $s0,$s0,0x1 +/* db64: 0c005477 */ jal 0x151dc +/* db68: 00000000 */ sll $zero,$zero,0x0 +/* db6c: 26100001 */ addiu $s0,$s0,0x1 +.NB0000db70: +/* db70: 24010004 */ addiu $at,$zero,0x4 +/* db74: 5601ffe3 */ bnel $s0,$at,.NB0000db04 +/* db78: 3c070047 */ lui $a3,0x47 +/* db7c: 3c057005 */ lui $a1,0x7005 +/* db80: 24a550e8 */ addiu $a1,$a1,0x50e8 +/* db84: 0c004e18 */ jal 0x13860 +/* db88: 24040001 */ addiu $a0,$zero,0x1 +/* db8c: 14400004 */ bnez $v0,.NB0000dba0 +/* db90: 3c198000 */ lui $t9,0x8000 +/* db94: 24180001 */ addiu $t8,$zero,0x1 +/* db98: 3c018006 */ lui $at,0x8006 +/* db9c: ac38f2d0 */ sw $t8,-0xd30($at) +.NB0000dba0: +/* dba0: 8f390300 */ lw $t9,0x300($t9) +/* dba4: 24010001 */ addiu $at,$zero,0x1 +/* dba8: 00002025 */ or $a0,$zero,$zero +/* dbac: 13210005 */ beq $t9,$at,.NB0000dbc4 +/* dbb0: 24090001 */ addiu $t1,$zero,0x1 +/* dbb4: 3c018006 */ lui $at,0x8006 +/* dbb8: ac29f2d0 */ sw $t1,-0xd30($at) +.NB0000dbbc: +/* dbbc: 1000ffff */ beqz $zero,.NB0000dbbc +/* dbc0: 00000000 */ sll $zero,$zero,0x0 +.NB0000dbc4: +/* dbc4: 0c005790 */ jal 0x15e40 +/* dbc8: 24051000 */ addiu $a1,$zero,0x1000 +/* dbcc: 1440009e */ bnez $v0,.NB0000de48 +/* dbd0: 24040001 */ addiu $a0,$zero,0x1 +/* dbd4: 0c005790 */ jal 0x15e40 +/* dbd8: 24051000 */ addiu $a1,$zero,0x1000 +/* dbdc: 1440009a */ bnez $v0,.NB0000de48 +/* dbe0: 24040002 */ addiu $a0,$zero,0x2 +/* dbe4: 0c005790 */ jal 0x15e40 +/* dbe8: 24051000 */ addiu $a1,$zero,0x1000 +/* dbec: 14400096 */ bnez $v0,.NB0000de48 +/* dbf0: 24040003 */ addiu $a0,$zero,0x3 +/* dbf4: 0c005790 */ jal 0x15e40 +/* dbf8: 24051000 */ addiu $a1,$zero,0x1000 +/* dbfc: 14400092 */ bnez $v0,.NB0000de48 +/* dc00: 3c0b8006 */ lui $t3,0x8006 +/* dc04: afa01478 */ sw $zero,0x1478($sp) +/* dc08: 256bf63c */ addiu $t3,$t3,-2500 +/* dc0c: 8d610000 */ lw $at,0x0($t3) +/* dc10: 8d6e0004 */ lw $t6,0x4($t3) +/* dc14: 27aa1458 */ addiu $t2,$sp,0x1458 +/* dc18: ad410000 */ sw $at,0x0($t2) +/* dc1c: 8d610008 */ lw $at,0x8($t3) +/* dc20: ad4e0004 */ sw $t6,0x4($t2) +/* dc24: 8d6e000c */ lw $t6,0xc($t3) +/* dc28: ad410008 */ sw $at,0x8($t2) +/* dc2c: 8d610010 */ lw $at,0x10($t3) +/* dc30: ad4e000c */ sw $t6,0xc($t2) +/* dc34: 8d6e0014 */ lw $t6,0x14($t3) +/* dc38: ad410010 */ sw $at,0x10($t2) +/* dc3c: 8d610018 */ lw $at,0x18($t3) +/* dc40: ad4e0014 */ sw $t6,0x14($t2) +/* dc44: 8d6e001c */ lw $t6,0x1c($t3) +/* dc48: ad410018 */ sw $at,0x18($t2) +/* dc4c: 3c018006 */ lui $at,0x8006 +/* dc50: ad4e001c */ sw $t6,0x1c($t2) +/* dc54: 0c013d4c */ jal 0x4f530 +/* dc58: ac20f2f4 */ sw $zero,-0xd0c($at) +/* dc5c: 3c010040 */ lui $at,0x40 +/* dc60: 34210001 */ ori $at,$at,0x1 +/* dc64: 0041082b */ sltu $at,$v0,$at +/* dc68: 1020000e */ beqz $at,.NB0000dca4 +/* dc6c: 3c0301fb */ lui $v1,0x1fb +/* dc70: 3c0f8006 */ lui $t7,0x8006 +/* dc74: 8defe720 */ lw $t7,-0x18e0($t7) +/* dc78: 3c19803f */ lui $t9,0x803f +/* dc7c: 373950c0 */ ori $t9,$t9,0x50c0 +/* dc80: 3c01ffef */ lui $at,0xffef +/* dc84: 000fc0c0 */ sll $t8,$t7,0x3 +/* dc88: 03381023 */ subu $v0,$t9,$t8 +/* dc8c: 34216000 */ ori $at,$at,0x6000 +/* dc90: 00411021 */ addu $v0,$v0,$at +/* dc94: 30491fff */ andi $t1,$v0,0x1fff +/* dc98: 00491023 */ subu $v0,$v0,$t1 +/* dc9c: 10000002 */ beqz $zero,.NB0000dca8 +/* dca0: 2442e380 */ addiu $v0,$v0,-7296 +.NB0000dca4: +/* dca4: 3c028080 */ lui $v0,0x8080 +.NB0000dca8: +/* dca8: 3c01fff6 */ lui $at,0xfff6 +/* dcac: 3421a000 */ ori $at,$at,0xa000 +/* dcb0: 00411021 */ addu $v0,$v0,$at +/* dcb4: 2442ffc0 */ addiu $v0,$v0,-64 +/* dcb8: 3c018000 */ lui $at,0x8000 +/* dcbc: 00418825 */ or $s1,$v0,$at +/* dcc0: 2631003f */ addiu $s1,$s1,0x3f +/* dcc4: 362d003f */ ori $t5,$s1,0x3f +/* dcc8: 3c0a01fb */ lui $t2,0x1fb +/* dccc: 2465bac0 */ addiu $a1,$v1,-17728 +/* dcd0: 254ac5f0 */ addiu $t2,$t2,-14864 +/* dcd4: 39a4003f */ xori $a0,$t5,0x3f +/* dcd8: 00808825 */ or $s1,$a0,$zero +/* dcdc: 0c003664 */ jal 0xd990 +/* dce0: 01453023 */ subu $a2,$t2,$a1 +/* dce4: 3c01ffff */ lui $at,0xffff +/* dce8: 342141e0 */ ori $at,$at,0x41e0 +/* dcec: 02219021 */ addu $s2,$s1,$at +/* dcf0: 02402825 */ or $a1,$s2,$zero +/* dcf4: 02202025 */ or $a0,$s1,$zero +/* dcf8: 0c001da4 */ jal 0x7690 +/* dcfc: 27a60058 */ addiu $a2,$sp,0x58 +/* dd00: 3c050004 */ lui $a1,0x4 +/* dd04: 34a53800 */ ori $a1,$a1,0x3800 +/* dd08: 00003825 */ or $a3,$zero,$zero +/* dd0c: 24040500 */ addiu $a0,$zero,0x500 +/* dd10: 00075840 */ sll $t3,$a3,0x1 +.NB0000dd14: +/* dd14: 022b1821 */ addu $v1,$s1,$t3 +/* dd18: 00001025 */ or $v0,$zero,$zero +.NB0000dd1c: +/* dd1c: 00627021 */ addu $t6,$v1,$v0 +/* dd20: 24420002 */ addiu $v0,$v0,0x2 +/* dd24: 1444fffd */ bne $v0,$a0,.NB0000dd1c +/* dd28: a5c00000 */ sh $zero,0x0($t6) +/* dd2c: 24e70240 */ addiu $a3,$a3,0x240 +/* dd30: 00e5082a */ slt $at,$a3,$a1 +/* dd34: 5420fff7 */ bnezl $at,.NB0000dd14 +/* dd38: 00075840 */ sll $t3,$a3,0x1 +/* dd3c: 00003825 */ or $a3,$zero,$zero +/* dd40: 00003025 */ or $a2,$zero,$zero +/* dd44: 240503f6 */ addiu $a1,$zero,0x3f6 +.NB0000dd48: +/* dd48: 00077840 */ sll $t7,$a3,0x1 +/* dd4c: 0006c840 */ sll $t9,$a2,0x1 +/* dd50: 02592021 */ addu $a0,$s2,$t9 +/* dd54: 022f1821 */ addu $v1,$s1,$t7 +/* dd58: 00001025 */ or $v0,$zero,$zero +.NB0000dd5c: +/* dd5c: 0082c021 */ addu $t8,$a0,$v0 +/* dd60: 97090000 */ lhu $t1,0x0($t8) +/* dd64: 00626821 */ addu $t5,$v1,$v0 +/* dd68: 24420002 */ addiu $v0,$v0,0x2 +/* dd6c: 1445fffb */ bne $v0,$a1,.NB0000dd5c +/* dd70: a5a9008a */ sh $t1,0x8a($t5) +/* dd74: 24c601fb */ addiu $a2,$a2,0x1fb +/* dd78: 28c15f10 */ slti $at,$a2,0x5f10 +/* dd7c: 1420fff2 */ bnez $at,.NB0000dd48 +/* dd80: 24e70240 */ addiu $a3,$a3,0x240 +/* dd84: 0c002b0c */ jal 0xac30 +/* dd88: 24040002 */ addiu $a0,$zero,0x2 +/* dd8c: 0c00273c */ jal 0x9cf0 +/* dd90: 02202025 */ or $a0,$s1,$zero +/* dd94: 3c018006 */ lui $at,0x8006 +/* dd98: 3c118009 */ lui $s1,0x8009 +/* dd9c: ac321554 */ sw $s2,0x1554($at) +/* dda0: 26310160 */ addiu $s1,$s1,0x160 +/* dda4: 3c018006 */ lui $at,0x8006 +/* dda8: 264c0800 */ addiu $t4,$s2,0x800 +/* ddac: ac2c1550 */ sw $t4,0x1550($at) +/* ddb0: 02202025 */ or $a0,$s1,$zero +/* ddb4: 27a51478 */ addiu $a1,$sp,0x1478 +/* ddb8: 0c0126b0 */ jal 0x49ac0 +/* ddbc: 00003025 */ or $a2,$zero,$zero +/* ddc0: 14400006 */ bnez $v0,.NB0000dddc +/* ddc4: 02202025 */ or $a0,$s1,$zero +.NB0000ddc8: +/* ddc8: 27a51478 */ addiu $a1,$sp,0x1478 +/* ddcc: 0c0126b0 */ jal 0x49ac0 +/* ddd0: 00003025 */ or $a2,$zero,$zero +/* ddd4: 5040fffc */ beqzl $v0,.NB0000ddc8 +/* ddd8: 02202025 */ or $a0,$s1,$zero +.NB0000dddc: +/* dddc: 3c128006 */ lui $s2,0x8006 +/* dde0: 00008025 */ or $s0,$zero,$zero +/* dde4: 2652f5e8 */ addiu $s2,$s2,-2584 +/* dde8: 02202025 */ or $a0,$s1,$zero +.NB0000ddec: +/* ddec: 27a51478 */ addiu $a1,$sp,0x1478 +/* ddf0: 0c0126b0 */ jal 0x49ac0 +/* ddf4: 24060001 */ addiu $a2,$zero,0x1 +/* ddf8: 8faa1478 */ lw $t2,0x1478($sp) +/* ddfc: 24010001 */ addiu $at,$zero,0x1 +/* de00: 27ae1458 */ addiu $t6,$sp,0x1458 +/* de04: 854b0000 */ lh $t3,0x0($t2) +/* de08: 5561000b */ bnel $t3,$at,.NB0000de38 +/* de0c: 2a010006 */ slti $at,$s0,0x6 +/* de10: 0c002871 */ jal 0xa1c4 +/* de14: afae0054 */ sw $t6,0x54($sp) +/* de18: 3c058006 */ lui $a1,0x8006 +/* de1c: 24a5f610 */ addiu $a1,$a1,-2544 +/* de20: 02402025 */ or $a0,$s2,$zero +/* de24: 00003025 */ or $a2,$zero,$zero +/* de28: 0c00c411 */ jal 0x31044 +/* de2c: 8fa70054 */ lw $a3,0x54($sp) +/* de30: 26100001 */ addiu $s0,$s0,0x1 +/* de34: 2a010006 */ slti $at,$s0,0x6 +.NB0000de38: +/* de38: 5420ffec */ bnezl $at,.NB0000ddec +/* de3c: 02202025 */ or $a0,$s1,$zero +/* de40: 10000004 */ beqz $zero,.NB0000de54 +/* de44: 00000000 */ sll $zero,$zero,0x0 +.NB0000de48: +/* de48: 240f0001 */ addiu $t7,$zero,0x1 +/* de4c: 3c018006 */ lui $at,0x8006 +/* de50: ac2ff2f4 */ sw $t7,-0xd0c($at) +.NB0000de54: +/* de54: 0c001c6c */ jal 0x71b0 +/* de58: 00000000 */ sll $zero,$zero,0x0 +/* de5c: 0fc68554 */ jal 0xf1a1550 +/* de60: 00000000 */ sll $zero,$zero,0x0 +/* de64: 0fc585fd */ jal 0xf1617f4 +/* de68: 00000000 */ sll $zero,$zero,0x0 +/* de6c: 0fc5c2fc */ jal 0xf170bf0 +/* de70: 00000000 */ sll $zero,$zero,0x0 +/* de74: 0fc5c30c */ jal 0xf170c30 +/* de78: 00000000 */ sll $zero,$zero,0x0 +/* de7c: 3c198006 */ lui $t9,0x8006 +/* de80: 8f39f2d0 */ lw $t9,-0xd30($t9) +/* de84: 13200003 */ beqz $t9,.NB0000de94 +/* de88: 3c047005 */ lui $a0,0x7005 +/* de8c: 0c004dd3 */ jal 0x1374c +/* de90: 248450f0 */ addiu $a0,$a0,0x50f0 +.NB0000de94: +/* de94: 3c04800b */ lui $a0,0x800b +/* de98: 0c013100 */ jal 0x4c400 +/* de9c: 24841a70 */ addiu $a0,$a0,0x1a70 +/* dea0: 3c038009 */ lui $v1,0x8009 +/* dea4: 8c6330f0 */ lw $v1,0x30f0($v1) +/* dea8: 3c018000 */ lui $at,0x8000 +/* deac: 00412025 */ or $a0,$v0,$at +/* deb0: 0c004996 */ jal 0x12658 +/* deb4: 00642823 */ subu $a1,$v1,$a0 +/* deb8: 0c004ab1 */ jal 0x12ac4 +/* debc: 24040008 */ addiu $a0,$zero,0x8 +/* dec0: 0c004ab1 */ jal 0x12ac4 +/* dec4: 24040006 */ addiu $a0,$zero,0x6 +/* dec8: 0c003535 */ jal 0xd4d4 +/* decc: 00000000 */ sll $zero,$zero,0x0 +/* ded0: 0fc02bb0 */ jal 0xf00aec0 +/* ded4: 00000000 */ sll $zero,$zero,0x0 +/* ded8: 0fc5c69f */ jal 0xf171a7c +/* dedc: 00000000 */ sll $zero,$zero,0x0 +/* dee0: 0c000dbc */ jal 0x36f0 +/* dee4: 00000000 */ sll $zero,$zero,0x0 +/* dee8: 0fc02b90 */ jal 0xf00ae40 +/* deec: 00000000 */ sll $zero,$zero,0x0 +/* def0: 0fc00000 */ jal 0xf000000 +/* def4: 00000000 */ sll $zero,$zero,0x0 +/* def8: 0fc5890e */ jal 0xf162438 +/* defc: 00000000 */ sll $zero,$zero,0x0 +/* df00: 0fc40c5b */ jal 0xf10316c +/* df04: 00000000 */ sll $zero,$zero,0x0 +/* df08: 0c003c68 */ jal 0xf1a0 +/* df0c: 00000000 */ sll $zero,$zero,0x0 +/* df10: 0fc53628 */ jal 0xf14d8a0 +/* df14: 00000000 */ sll $zero,$zero,0x0 +/* df18: 0c005002 */ jal 0x14008 +/* df1c: 00000000 */ sll $zero,$zero,0x0 +/* df20: 0fc48954 */ jal 0xf122550 +/* df24: 00000000 */ sll $zero,$zero,0x0 +/* df28: 0fc59ef0 */ jal 0xf167bc0 +/* df2c: 00000000 */ sll $zero,$zero,0x0 +/* df30: 0fc02bac */ jal 0xf00aeb0 +/* df34: 00000000 */ sll $zero,$zero,0x0 +/* df38: 0c002708 */ jal 0x9c20 +/* df3c: 00000000 */ sll $zero,$zero,0x0 +/* df40: 0fc0021c */ jal 0xf000870 +/* df44: 00000000 */ sll $zero,$zero,0x0 +/* df48: 0fc00220 */ jal 0xf000880 +/* df4c: 00000000 */ sll $zero,$zero,0x0 +/* df50: 0fc00238 */ jal 0xf0008e0 +/* df54: 00000000 */ sll $zero,$zero,0x0 +/* df58: 0fc0023c */ jal 0xf0008f0 +/* df5c: 00000000 */ sll $zero,$zero,0x0 +/* df60: 0fc00240 */ jal 0xf000900 +/* df64: 00000000 */ sll $zero,$zero,0x0 +/* df68: 0fc02b8c */ jal 0xf00ae30 +/* df6c: 00000000 */ sll $zero,$zero,0x0 +/* df70: 0fc00244 */ jal 0xf000910 +/* df74: 00000000 */ sll $zero,$zero,0x0 +/* df78: 0fc00210 */ jal 0xf000840 +/* df7c: 00000000 */ sll $zero,$zero,0x0 +/* df80: 0fc60985 */ jal 0xf182614 +/* df84: 00000000 */ sll $zero,$zero,0x0 +/* df88: 0fc512be */ jal 0xf144af8 +/* df8c: 00000000 */ sll $zero,$zero,0x0 +/* df90: 0fc44b4c */ jal 0xf112d30 +/* df94: 00000000 */ sll $zero,$zero,0x0 +/* df98: 0fc512e3 */ jal 0xf144b8c +/* df9c: 00000000 */ sll $zero,$zero,0x0 +/* dfa0: 0c0091e8 */ jal 0x247a0 +/* dfa4: 00000000 */ sll $zero,$zero,0x0 +/* dfa8: 0fc00040 */ jal 0xf000100 +/* dfac: 00000000 */ sll $zero,$zero,0x0 +/* dfb0: 0fc0004c */ jal 0xf000130 +/* dfb4: 00000000 */ sll $zero,$zero,0x0 +/* dfb8: 0fc00214 */ jal 0xf000850 +/* dfbc: 00000000 */ sll $zero,$zero,0x0 +/* dfc0: 0fc00218 */ jal 0xf000860 +/* dfc4: 00000000 */ sll $zero,$zero,0x0 +/* dfc8: 0fc00024 */ jal 0xf000090 +/* dfcc: 00000000 */ sll $zero,$zero,0x0 +/* dfd0: 0c002767 */ jal 0x9d9c +/* dfd4: 00000000 */ sll $zero,$zero,0x0 +/* dfd8: 0c00281a */ jal 0xa068 +/* dfdc: 24040001 */ addiu $a0,$zero,0x1 +/* dfe0: 8fbf0034 */ lw $ra,0x34($sp) +/* dfe4: 3c018006 */ lui $at,0x8006 +/* dfe8: 8fb00028 */ lw $s0,0x28($sp) +/* dfec: 8fb1002c */ lw $s1,0x2c($sp) +/* dff0: 8fb20030 */ lw $s2,0x30($sp) +/* dff4: ac20f638 */ sw $zero,-0x9c8($at) +/* dff8: 03e00008 */ jr $ra +/* dffc: 27bd14e0 */ addiu $sp,$sp,0x14e0 +); #endif const char var70053a98[] = "-level_"; @@ -1060,7 +1435,7 @@ const char var70053aa0[] = " -ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma400"; // u8 sp50[5120]; // u32 stack; // -// if (osGetMemSize() <= 4 * 1024 * 1024) { +// if (initGetMemSize() <= 4 * 1024 * 1024) { // iVar5 = 0x803f50b8 - var8005cf84 * 8; // iVar5 -= 548864 * 2; // iVar5 = iVar5 - (iVar5 & 0x1fff) - 0x1c80; @@ -1220,6 +1595,28 @@ u32 var8005dd50 = 0x00000000; s32 g_MainStageNum = -1; u32 var8005dd58 = 0x00000000; +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func0000e000nb +/* e000: 240e0001 */ addiu $t6,$zero,0x1 +/* e004: 3c018006 */ lui $at,0x8006 +/* e008: 03e00008 */ jr $ra +/* e00c: ac2ef2dc */ sw $t6,-0xd24($at) +); +#endif + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func0000e010nb +/* e010: 3c028006 */ lui $v0,0x8006 +/* e014: 2442f2e0 */ addiu $v0,$v0,-3360 +/* e018: 8c4e0000 */ lw $t6,0x0($v0) +/* e01c: 39cf0001 */ xori $t7,$t6,0x1 +/* e020: 03e00008 */ jr $ra +/* e024: ac4f0000 */ sw $t7,0x0($v0) +); +#endif + void mainEntry(void) { mainInit(); @@ -1236,6 +1633,7 @@ void func0000db30(char *string, void *ptr) // empty } +#if VERSION >= VERSION_NTSC_1_0 /** * This function enters an infinite loop which iterates once per stage load. * Within this loop is an inner loop which runs very frequently and decides @@ -1481,7 +1879,604 @@ void mainLoop(void) // Unreachable func0f175fc8(); } +#else +GLOBAL_ASM( +glabel mainLoop +/* e07c: 27bdff18 */ addiu $sp,$sp,-232 +/* e080: 3c0f8006 */ lui $t7,0x8006 +/* e084: afbf003c */ sw $ra,0x3c($sp) +/* e088: afbe0038 */ sw $s8,0x38($sp) +/* e08c: afb70034 */ sw $s7,0x34($sp) +/* e090: afb60030 */ sw $s6,0x30($sp) +/* e094: afb5002c */ sw $s5,0x2c($sp) +/* e098: afb40028 */ sw $s4,0x28($sp) +/* e09c: afb30024 */ sw $s3,0x24($sp) +/* e0a0: afb20020 */ sw $s2,0x20($sp) +/* e0a4: afb1001c */ sw $s1,0x1c($sp) +/* e0a8: afb00018 */ sw $s0,0x18($sp) +/* e0ac: afa000e4 */ sw $zero,0xe4($sp) +/* e0b0: 25eff67c */ addiu $t7,$t7,-2436 +/* e0b4: 8de10000 */ lw $at,0x0($t7) +/* e0b8: 8de80004 */ lw $t0,0x4($t7) +/* e0bc: 27ae00c4 */ addiu $t6,$sp,0xc4 +/* e0c0: adc10000 */ sw $at,0x0($t6) +/* e0c4: adc80004 */ sw $t0,0x4($t6) +/* e0c8: 8de8000c */ lw $t0,0xc($t7) +/* e0cc: 8de10008 */ lw $at,0x8($t7) +/* e0d0: 3c04bc00 */ lui $a0,0xbc00 +/* e0d4: adc8000c */ sw $t0,0xc($t6) +/* e0d8: adc10008 */ sw $at,0x8($t6) +/* e0dc: 8de10010 */ lw $at,0x10($t7) +/* e0e0: 8de80014 */ lw $t0,0x14($t7) +/* e0e4: 00001825 */ or $v1,$zero,$zero +/* e0e8: adc10010 */ sw $at,0x10($t6) +/* e0ec: adc80014 */ sw $t0,0x14($t6) +/* e0f0: 8de8001c */ lw $t0,0x1c($t7) +/* e0f4: 8de10018 */ lw $at,0x18($t7) +/* e0f8: adc8001c */ sw $t0,0x1c($t6) +/* e0fc: adc10018 */ sw $at,0x18($t6) +/* e100: 24024f4a */ addiu $v0,$zero,0x4f4a +/* e104: 24014f4a */ addiu $at,$zero,0x4f4a +/* e108: 10410007 */ beq $v0,$at,.NB0000e128 +/* e10c: 24014c53 */ addiu $at,$zero,0x4c53 +/* e110: 10410005 */ beq $v0,$at,.NB0000e128 +/* e114: 2401504d */ addiu $at,$zero,0x504d +/* e118: 10410003 */ beq $v0,$at,.NB0000e128 +/* e11c: 24014d50 */ addiu $at,$zero,0x4d50 +/* e120: 54410008 */ bnel $v0,$at,.NB0000e144 +/* e124: 24030001 */ addiu $v1,$zero,0x1 +.NB0000e128: +/* e128: 24024653 */ addiu $v0,$zero,0x4653 +/* e12c: 24014653 */ addiu $at,$zero,0x4653 +/* e130: 10410004 */ beq $v0,$at,.NB0000e144 +/* e134: 24015245 */ addiu $at,$zero,0x5245 +/* e138: 10410002 */ beq $v0,$at,.NB0000e144 +/* e13c: 00000000 */ sll $zero,$zero,0x0 +/* e140: 24030001 */ addiu $v1,$zero,0x1 +.NB0000e144: +/* e144: 10600003 */ beqz $v1,.NB0000e154 +/* e148: 00000000 */ sll $zero,$zero,0x0 +.NB0000e14c: +/* e14c: 1000ffff */ beqz $zero,.NB0000e14c +/* e150: 00000000 */ sll $zero,$zero,0x0 +.NB0000e154: +/* e154: 0fc5c30e */ jal 0xf170c38 +/* e158: 00000000 */ sll $zero,$zero,0x0 +/* e15c: 3c018006 */ lui $at,0x8006 +/* e160: 3c048006 */ lui $a0,0x8006 +/* e164: ac20f2e4 */ sw $zero,-0xd1c($at) +/* e168: 0c004e49 */ jal 0x13924 +/* e16c: 2484f2d4 */ addiu $a0,$a0,-3372 +/* e170: 3c098006 */ lui $t1,0x8006 +/* e174: 8d29f2f4 */ lw $t1,-0xd0c($t1) +/* e178: 3c028006 */ lui $v0,0x8006 +/* e17c: 2442f2d4 */ addiu $v0,$v0,-3372 +/* e180: 11200002 */ beqz $t1,.NB0000e18c +/* e184: 240a005b */ addiu $t2,$zero,0x5b +/* e188: ac4a0000 */ sw $t2,0x0($v0) +.NB0000e18c: +/* e18c: 3c028006 */ lui $v0,0x8006 +/* e190: 2442f2d4 */ addiu $v0,$v0,-3372 +/* e194: 8c440000 */ lw $a0,0x0($v0) +/* e198: 2401005a */ addiu $at,$zero,0x5a +/* e19c: 10810016 */ beq $a0,$at,.NB0000e1f8 +/* e1a0: 00000000 */ sll $zero,$zero,0x0 +/* e1a4: 0fc06ba1 */ jal 0xf01ae84 +/* e1a8: 00000000 */ sll $zero,$zero,0x0 +/* e1ac: 3c0b8006 */ lui $t3,0x8006 +/* e1b0: 8d6bf2d4 */ lw $t3,-0xd2c($t3) +/* e1b4: 2961005a */ slti $at,$t3,0x5a +/* e1b8: 1020000f */ beqz $at,.NB0000e1f8 +/* e1bc: 00000000 */ sll $zero,$zero,0x0 +/* e1c0: 0fc06b9e */ jal 0xf01ae78 +/* e1c4: 00002025 */ or $a0,$zero,$zero +/* e1c8: 3c057005 */ lui $a1,0x7005 +/* e1cc: 24a55124 */ addiu $a1,$a1,0x5124 +/* e1d0: 0c004e18 */ jal 0x13860 +/* e1d4: 24040001 */ addiu $a0,$zero,0x1 +/* e1d8: 10400007 */ beqz $v0,.NB0000e1f8 +/* e1dc: 24040001 */ addiu $a0,$zero,0x1 +/* e1e0: 3c057005 */ lui $a1,0x7005 +/* e1e4: 0c004e18 */ jal 0x13860 +/* e1e8: 24a5512c */ addiu $a1,$a1,0x512c +/* e1ec: 90440000 */ lbu $a0,0x0($v0) +/* e1f0: 0fc59ed6 */ jal 0xf167b58 +/* e1f4: 2484ffd0 */ addiu $a0,$a0,-48 +.NB0000e1f8: +/* e1f8: 3c028006 */ lui $v0,0x8006 +/* e1fc: 2442f2d4 */ addiu $v0,$v0,-3372 +/* e200: 8c4c0000 */ lw $t4,0x0($v0) +/* e204: 24010026 */ addiu $at,$zero,0x26 +/* e208: 3c0d8009 */ lui $t5,0x8009 +/* e20c: 15810007 */ bne $t4,$at,.NB0000e22c +/* e210: 00000000 */ sll $zero,$zero,0x0 +/* e214: 91ad30e0 */ lbu $t5,0x30e0($t5) +/* e218: 24170001 */ addiu $s7,$zero,0x1 +/* e21c: 2419005d */ addiu $t9,$zero,0x5d +/* e220: 16ed0002 */ bne $s7,$t5,.NB0000e22c +/* e224: 00000000 */ sll $zero,$zero,0x0 +/* e228: ac590000 */ sw $t9,0x0($v0) +.NB0000e22c: +/* e22c: 0c012638 */ jal 0x498e0 +/* e230: 24170001 */ addiu $s7,$zero,0x1 +/* e234: 0c004d96 */ jal 0x13658 +/* e238: 00402025 */ or $a0,$v0,$zero +/* e23c: 3c1e8006 */ lui $s8,0x8006 +/* e240: 3c138009 */ lui $s3,0x8009 +/* e244: 3c12800a */ lui $s2,0x800a +/* e248: 3c108006 */ lui $s0,0x8006 +/* e24c: 2610f2ec */ addiu $s0,$s0,-3348 +/* e250: 2652e6c0 */ addiu $s2,$s2,-6464 +/* e254: 26730160 */ addiu $s3,$s3,0x160 +/* e258: 27def674 */ addiu $s8,$s8,-2444 +/* e25c: 2416ffff */ addiu $s6,$zero,-1 +/* e260: 27b50058 */ addiu $s5,$sp,0x58 +/* e264: 27b400b8 */ addiu $s4,$sp,0xb8 +.NB0000e268: +/* e268: ae000000 */ sw $zero,0x0($s0) +/* e26c: 3c188006 */ lui $t8,0x8006 +/* e270: 8f18f2d0 */ lw $t8,-0xd30($t8) +/* e274: 3c018006 */ lui $at,0x8006 +/* e278: ac37f2e8 */ sw $s7,-0xd18($at) +/* e27c: 3c018006 */ lui $at,0x8006 +/* e280: afa000b8 */ sw $zero,0xb8($sp) +/* e284: 1300007e */ beqz $t8,.NB0000e480 +/* e288: ac20f2f0 */ sw $zero,-0xd10($at) +/* e28c: 3c0e8006 */ lui $t6,0x8006 +/* e290: 8dcef2e4 */ lw $t6,-0xd1c($t6) +/* e294: 3c0f8009 */ lui $t7,0x8009 +/* e298: 15c00079 */ bnez $t6,.NB0000e480 +/* e29c: 00000000 */ sll $zero,$zero,0x0 +/* e2a0: 91ef30e0 */ lbu $t7,0x30e0($t7) +/* e2a4: 02c02825 */ or $a1,$s6,$zero +/* e2a8: 3c088006 */ lui $t0,0x8006 +/* e2ac: 16ef003c */ bne $s7,$t7,.NB0000e3a0 +/* e2b0: 00000000 */ sll $zero,$zero,0x0 +/* e2b4: 3c088006 */ lui $t0,0x8006 +/* e2b8: 8d08f2d4 */ lw $t0,-0xd2c($t0) +/* e2bc: 2901005a */ slti $at,$t0,0x5a +/* e2c0: 1020001f */ beqz $at,.NB0000e340 +/* e2c4: 00000000 */ sll $zero,$zero,0x0 +/* e2c8: 0fc0681e */ jal 0xf01a078 +/* e2cc: afa500b4 */ sw $a1,0xb4($sp) +/* e2d0: 28410002 */ slti $at,$v0,0x2 +/* e2d4: 1420001a */ bnez $at,.NB0000e340 +/* e2d8: 8fa500b4 */ lw $a1,0xb4($sp) +/* e2dc: 3c098006 */ lui $t1,0x8006 +/* e2e0: 8d29f4f0 */ lw $t1,-0xb10($t1) +/* e2e4: 3c068006 */ lui $a2,0x8006 +/* e2e8: 24c6f4f0 */ addiu $a2,$a2,-2832 +/* e2ec: 1120000e */ beqz $t1,.NB0000e328 +/* e2f0: 00002825 */ or $a1,$zero,$zero +/* e2f4: 3c048006 */ lui $a0,0x8006 +/* e2f8: 8c84f2d4 */ lw $a0,-0xd2c($a0) +/* e2fc: 3c0a8006 */ lui $t2,0x8006 +/* e300: 2542f4f0 */ addiu $v0,$t2,-2832 +/* e304: 8c430000 */ lw $v1,0x0($v0) +/* e308: 24840190 */ addiu $a0,$a0,0x190 +.NB0000e30c: +/* e30c: 50830007 */ beql $a0,$v1,.NB0000e32c +/* e310: 000558c0 */ sll $t3,$a1,0x3 +/* e314: 8c430008 */ lw $v1,0x8($v0) +/* e318: 24a50001 */ addiu $a1,$a1,0x1 +/* e31c: 24420008 */ addiu $v0,$v0,0x8 +/* e320: 1460fffa */ bnez $v1,.NB0000e30c +/* e324: 00000000 */ sll $zero,$zero,0x0 +.NB0000e328: +/* e328: 000558c0 */ sll $t3,$a1,0x3 +.NB0000e32c: +/* e32c: 00cb6021 */ addu $t4,$a2,$t3 +/* e330: 8d8d0000 */ lw $t5,0x0($t4) +/* e334: 15a00002 */ bnez $t5,.NB0000e340 +/* e338: 00000000 */ sll $zero,$zero,0x0 +/* e33c: 02c02825 */ or $a1,$s6,$zero +.NB0000e340: +/* e340: 3c068006 */ lui $a2,0x8006 +/* e344: 04a10010 */ bgez $a1,.NB0000e388 +/* e348: 24c6f4f0 */ addiu $a2,$a2,-2832 +/* e34c: 8cd90000 */ lw $t9,0x0($a2) +/* e350: 00002825 */ or $a1,$zero,$zero +/* e354: 3c048006 */ lui $a0,0x8006 +/* e358: 1320000b */ beqz $t9,.NB0000e388 +/* e35c: 3c188006 */ lui $t8,0x8006 +/* e360: 2702f4f0 */ addiu $v0,$t8,-2832 +/* e364: 8c430000 */ lw $v1,0x0($v0) +/* e368: 8c84f2d4 */ lw $a0,-0xd2c($a0) +.NB0000e36c: +/* e36c: 50830007 */ beql $a0,$v1,.NB0000e38c +/* e370: 000570c0 */ sll $t6,$a1,0x3 +/* e374: 8c430008 */ lw $v1,0x8($v0) +/* e378: 24a50001 */ addiu $a1,$a1,0x1 +/* e37c: 24420008 */ addiu $v0,$v0,0x8 +/* e380: 1460fffa */ bnez $v1,.NB0000e36c +/* e384: 00000000 */ sll $zero,$zero,0x0 +.NB0000e388: +/* e388: 000570c0 */ sll $t6,$a1,0x3 +.NB0000e38c: +/* e38c: 00ce7821 */ addu $t7,$a2,$t6 +/* e390: 0c004dd3 */ jal 0x1374c +/* e394: 8de40004 */ lw $a0,0x4($t7) +/* e398: 10000039 */ beqz $zero,.NB0000e480 +/* e39c: 00000000 */ sll $zero,$zero,0x0 +.NB0000e3a0: +/* e3a0: 8d08f2d4 */ lw $t0,-0xd2c($t0) +/* e3a4: 2901005a */ slti $at,$t0,0x5a +/* e3a8: 1020001f */ beqz $at,.NB0000e428 +/* e3ac: 00000000 */ sll $zero,$zero,0x0 +/* e3b0: 0fc0681e */ jal 0xf01a078 +/* e3b4: afa500b4 */ sw $a1,0xb4($sp) +/* e3b8: 28410002 */ slti $at,$v0,0x2 +/* e3bc: 1420001a */ bnez $at,.NB0000e428 +/* e3c0: 8fa500b4 */ lw $a1,0xb4($sp) +/* e3c4: 3c098006 */ lui $t1,0x8006 +/* e3c8: 8d29f2f8 */ lw $t1,-0xd08($t1) +/* e3cc: 3c068006 */ lui $a2,0x8006 +/* e3d0: 24c6f2f8 */ addiu $a2,$a2,-3336 +/* e3d4: 1120000e */ beqz $t1,.NB0000e410 +/* e3d8: 00002825 */ or $a1,$zero,$zero +/* e3dc: 3c048006 */ lui $a0,0x8006 +/* e3e0: 8c84f2d4 */ lw $a0,-0xd2c($a0) +/* e3e4: 3c0a8006 */ lui $t2,0x8006 +/* e3e8: 2542f2f8 */ addiu $v0,$t2,-3336 +/* e3ec: 8c430000 */ lw $v1,0x0($v0) +/* e3f0: 24840190 */ addiu $a0,$a0,0x190 +.NB0000e3f4: +/* e3f4: 50830007 */ beql $a0,$v1,.NB0000e414 +/* e3f8: 000558c0 */ sll $t3,$a1,0x3 +/* e3fc: 8c430008 */ lw $v1,0x8($v0) +/* e400: 24a50001 */ addiu $a1,$a1,0x1 +/* e404: 24420008 */ addiu $v0,$v0,0x8 +/* e408: 1460fffa */ bnez $v1,.NB0000e3f4 +/* e40c: 00000000 */ sll $zero,$zero,0x0 +.NB0000e410: +/* e410: 000558c0 */ sll $t3,$a1,0x3 +.NB0000e414: +/* e414: 00cb6021 */ addu $t4,$a2,$t3 +/* e418: 8d8d0000 */ lw $t5,0x0($t4) +/* e41c: 15a00002 */ bnez $t5,.NB0000e428 +/* e420: 00000000 */ sll $zero,$zero,0x0 +/* e424: 02c02825 */ or $a1,$s6,$zero +.NB0000e428: +/* e428: 3c068006 */ lui $a2,0x8006 +/* e42c: 04a10010 */ bgez $a1,.NB0000e470 +/* e430: 24c6f2f8 */ addiu $a2,$a2,-3336 +/* e434: 8cd90000 */ lw $t9,0x0($a2) +/* e438: 00002825 */ or $a1,$zero,$zero +/* e43c: 3c048006 */ lui $a0,0x8006 +/* e440: 1320000b */ beqz $t9,.NB0000e470 +/* e444: 3c188006 */ lui $t8,0x8006 +/* e448: 2702f2f8 */ addiu $v0,$t8,-3336 +/* e44c: 8c430000 */ lw $v1,0x0($v0) +/* e450: 8c84f2d4 */ lw $a0,-0xd2c($a0) +.NB0000e454: +/* e454: 50830007 */ beql $a0,$v1,.NB0000e474 +/* e458: 000570c0 */ sll $t6,$a1,0x3 +/* e45c: 8c430008 */ lw $v1,0x8($v0) +/* e460: 24a50001 */ addiu $a1,$a1,0x1 +/* e464: 24420008 */ addiu $v0,$v0,0x8 +/* e468: 1460fffa */ bnez $v1,.NB0000e454 +/* e46c: 00000000 */ sll $zero,$zero,0x0 +.NB0000e470: +/* e470: 000570c0 */ sll $t6,$a1,0x3 +.NB0000e474: +/* e474: 00ce7821 */ addu $t7,$a2,$t6 +/* e478: 0c004dd3 */ jal 0x1374c +/* e47c: 8de40004 */ lw $a0,0x4($t7) +.NB0000e480: +/* e480: 3c018006 */ lui $at,0x8006 +/* e484: ac20f2e4 */ sw $zero,-0xd1c($at) +/* e488: 0c004ab1 */ jal 0x12ac4 +/* e48c: 24040007 */ addiu $a0,$zero,0x7 +/* e490: 0c004ab1 */ jal 0x12ac4 +/* e494: 24040004 */ addiu $a0,$zero,0x4 +/* e498: 0fc58709 */ jal 0xf161c24 +/* e49c: 24040004 */ addiu $a0,$zero,0x4 +/* e4a0: 3c057005 */ lui $a1,0x7005 +/* e4a4: 24a55134 */ addiu $a1,$a1,0x5134 +/* e4a8: 0c004e18 */ jal 0x13860 +/* e4ac: 02e02025 */ or $a0,$s7,$zero +/* e4b0: 1040000b */ beqz $v0,.NB0000e4e0 +/* e4b4: 02e02025 */ or $a0,$s7,$zero +/* e4b8: 3c057005 */ lui $a1,0x7005 +/* e4bc: 0c004e18 */ jal 0x13860 +/* e4c0: 24a55138 */ addiu $a1,$a1,0x5138 +/* e4c4: 00402025 */ or $a0,$v0,$zero +/* e4c8: 00002825 */ or $a1,$zero,$zero +/* e4cc: 0c004f16 */ jal 0x13c58 +/* e4d0: 00003025 */ or $a2,$zero,$zero +/* e4d4: 00024280 */ sll $t0,$v0,0xa +/* e4d8: 3c018006 */ lui $at,0x8006 +/* e4dc: ac28f2d8 */ sw $t0,-0xd28($at) +.NB0000e4e0: +/* e4e0: 3c048006 */ lui $a0,0x8006 +/* e4e4: 8c84f2d8 */ lw $a0,-0xd28($a0) +/* e4e8: 0c004a0e */ jal 0x12838 +/* e4ec: 24050004 */ addiu $a1,$zero,0x4 +/* e4f0: 3c058006 */ lui $a1,0x8006 +/* e4f4: 8ca5f2d8 */ lw $a1,-0xd28($a1) +/* e4f8: 0c004bed */ jal 0x12fb4 +/* e4fc: 00402025 */ or $a0,$v0,$zero +/* e500: 3c048006 */ lui $a0,0x8006 +/* e504: 0fc02bf4 */ jal 0xf00afd0 +/* e508: 8c84f2d4 */ lw $a0,-0xd2c($a0) +/* e50c: 0fc48964 */ jal 0xf122590 +/* e510: 00000000 */ sll $zero,$zero,0x0 +/* e514: 3c098006 */ lui $t1,0x8006 +/* e518: 8d29f2d4 */ lw $t1,-0xd2c($t1) +/* e51c: 02e02025 */ or $a0,$s7,$zero +/* e520: 3c057005 */ lui $a1,0x7005 +/* e524: 2921005a */ slti $at,$t1,0x5a +/* e528: 14200003 */ bnez $at,.NB0000e538 +/* e52c: 00000000 */ sll $zero,$zero,0x0 +/* e530: 10000017 */ beqz $zero,.NB0000e590 +/* e534: 00008825 */ or $s1,$zero,$zero +.NB0000e538: +/* e538: 0c004e18 */ jal 0x13860 +/* e53c: 24a5513c */ addiu $a1,$a1,0x513c +/* e540: 1040000b */ beqz $v0,.NB0000e570 +/* e544: 02e08825 */ or $s1,$s7,$zero +/* e548: 3c057005 */ lui $a1,0x7005 +/* e54c: 24a55144 */ addiu $a1,$a1,0x5144 +/* e550: 0c004e18 */ jal 0x13860 +/* e554: 02e02025 */ or $a0,$s7,$zero +/* e558: 00402025 */ or $a0,$v0,$zero +/* e55c: 00002825 */ or $a1,$zero,$zero +/* e560: 0c004f16 */ jal 0x13c58 +/* e564: 00003025 */ or $a2,$zero,$zero +/* e568: 10000001 */ beqz $zero,.NB0000e570 +/* e56c: 00408825 */ or $s1,$v0,$zero +.NB0000e570: +/* e570: 0fc0681e */ jal 0xf01a078 +/* e574: 00000000 */ sll $zero,$zero,0x0 +/* e578: 28410002 */ slti $at,$v0,0x2 +/* e57c: 54200005 */ bnezl $at,.NB0000e594 +/* e580: 2a210002 */ slti $at,$s1,0x2 +/* e584: 0fc0681e */ jal 0xf01a078 +/* e588: 00000000 */ sll $zero,$zero,0x0 +/* e58c: 00408825 */ or $s1,$v0,$zero +.NB0000e590: +/* e590: 2a210002 */ slti $at,$s1,0x2 +.NB0000e594: +/* e594: 10200005 */ beqz $at,.NB0000e5ac +/* e598: 02e02025 */ or $a0,$s7,$zero +/* e59c: ae400294 */ sw $zero,0x294($s2) +/* e5a0: ae560298 */ sw $s6,0x298($s2) +/* e5a4: 10000012 */ beqz $zero,.NB0000e5f0 +/* e5a8: ae56029c */ sw $s6,0x29c($s2) +.NB0000e5ac: +/* e5ac: 3c057005 */ lui $a1,0x7005 +/* e5b0: 0c004e18 */ jal 0x13860 +/* e5b4: 24a5514c */ addiu $a1,$a1,0x514c +/* e5b8: 10400005 */ beqz $v0,.NB0000e5d0 +/* e5bc: 02e02025 */ or $a0,$s7,$zero +/* e5c0: ae400294 */ sw $zero,0x294($s2) +/* e5c4: ae570298 */ sw $s7,0x298($s2) +/* e5c8: 10000009 */ beqz $zero,.NB0000e5f0 +/* e5cc: ae56029c */ sw $s6,0x29c($s2) +.NB0000e5d0: +/* e5d0: 3c057005 */ lui $a1,0x7005 +/* e5d4: 0c004e18 */ jal 0x13860 +/* e5d8: 24a55154 */ addiu $a1,$a1,0x5154 +/* e5dc: 10400004 */ beqz $v0,.NB0000e5f0 +/* e5e0: 00000000 */ sll $zero,$zero,0x0 +/* e5e4: ae400294 */ sw $zero,0x294($s2) +/* e5e8: ae560298 */ sw $s6,0x298($s2) +/* e5ec: ae57029c */ sw $s7,0x29c($s2) +.NB0000e5f0: +/* e5f0: 0fc48979 */ jal 0xf1225e4 +/* e5f4: 02202025 */ or $a0,$s1,$zero +/* e5f8: 3c057005 */ lui $a1,0x7005 +/* e5fc: 24a5515c */ addiu $a1,$a1,0x515c +/* e600: 0c004e18 */ jal 0x13860 +/* e604: 02e02025 */ or $a0,$s7,$zero +/* e608: 10400002 */ beqz $v0,.NB0000e614 +/* e60c: 240c0003 */ addiu $t4,$zero,0x3 +/* e610: ae57031c */ sw $s7,0x31c($s2) +.NB0000e614: +/* e614: 8e4a0298 */ lw $t2,0x298($s2) +/* e618: 3c01800b */ lui $at,0x800b +/* e61c: 05410004 */ bgez $t2,.NB0000e630 +/* e620: 00000000 */ sll $zero,$zero,0x0 +/* e624: 8e4b029c */ lw $t3,0x29c($s2) +/* e628: 05620006 */ bltzl $t3,.NB0000e644 +/* e62c: 8e4d0470 */ lw $t5,0x470($s2) +.NB0000e630: +/* e630: 0fc60755 */ jal 0xf181d54 +/* e634: a42c144e */ sh $t4,0x144e($at) +/* e638: 10000033 */ beqz $zero,.NB0000e708 +/* e63c: 00000000 */ sll $zero,$zero,0x0 +/* e640: 8e4d0470 */ lw $t5,0x470($s2) +.NB0000e644: +/* e644: 51a00006 */ beqzl $t5,.NB0000e660 +/* e648: 8e590314 */ lw $t9,0x314($s2) +/* e64c: 0fc60755 */ jal 0xf181d54 +/* e650: 00000000 */ sll $zero,$zero,0x0 +/* e654: 1000002c */ beqz $zero,.NB0000e708 +/* e658: 00000000 */ sll $zero,$zero,0x0 +/* e65c: 8e590314 */ lw $t9,0x314($s2) +.NB0000e660: +/* e660: 2a210002 */ slti $at,$s1,0x2 +/* e664: 17200028 */ bnez $t9,.NB0000e708 +/* e668: 00000000 */ sll $zero,$zero,0x0 +/* e66c: 5020000a */ beqzl $at,.NB0000e698 +/* e670: 240e0001 */ addiu $t6,$zero,0x1 +/* e674: 8e58031c */ lw $t8,0x31c($s2) +/* e678: 02e02025 */ or $a0,$s7,$zero +/* e67c: 3c057005 */ lui $a1,0x7005 +/* e680: 57000005 */ bnezl $t8,.NB0000e698 +/* e684: 240e0001 */ addiu $t6,$zero,0x1 +/* e688: 0c004e18 */ jal 0x13860 +/* e68c: 24a55164 */ addiu $a1,$a1,0x5164 +/* e690: 1040001d */ beqz $v0,.NB0000e708 +/* e694: 240e0001 */ addiu $t6,$zero,0x1 +.NB0000e698: +/* e698: 3c01800b */ lui $at,0x800b +/* e69c: a42e144e */ sh $t6,0x144e($at) +/* e6a0: 2a210002 */ slti $at,$s1,0x2 +/* e6a4: 14200006 */ bnez $at,.NB0000e6c0 +/* e6a8: 3c0d8006 */ lui $t5,0x8006 +/* e6ac: 3c02800b */ lui $v0,0x800b +/* e6b0: 24421438 */ addiu $v0,$v0,0x1438 +/* e6b4: 944f0016 */ lhu $t7,0x16($v0) +/* e6b8: 35e80002 */ ori $t0,$t7,0x2 +/* e6bc: a4480016 */ sh $t0,0x16($v0) +.NB0000e6c0: +/* e6c0: 2a210003 */ slti $at,$s1,0x3 +/* e6c4: 14200005 */ bnez $at,.NB0000e6dc +/* e6c8: 3c02800b */ lui $v0,0x800b +/* e6cc: 24421438 */ addiu $v0,$v0,0x1438 +/* e6d0: 94490016 */ lhu $t1,0x16($v0) +/* e6d4: 352a0004 */ ori $t2,$t1,0x4 +/* e6d8: a44a0016 */ sh $t2,0x16($v0) +.NB0000e6dc: +/* e6dc: 2a210004 */ slti $at,$s1,0x4 +/* e6e0: 14200005 */ bnez $at,.NB0000e6f8 +/* e6e4: 3c0b800b */ lui $t3,0x800b +/* e6e8: 956b144e */ lhu $t3,0x144e($t3) +/* e6ec: 3c01800b */ lui $at,0x800b +/* e6f0: 356c0008 */ ori $t4,$t3,0x8 +/* e6f4: a42c144e */ sh $t4,0x144e($at) +.NB0000e6f8: +/* e6f8: 8dadf2d4 */ lw $t5,-0xd2c($t5) +/* e6fc: 3c01800b */ lui $at,0x800b +/* e700: 0fc60755 */ jal 0xf181d54 +/* e704: a02d1449 */ sb $t5,0x1449($at) +.NB0000e708: +/* e708: 0fc58724 */ jal 0xf161c90 +/* e70c: 00000000 */ sll $zero,$zero,0x0 +/* e710: 0c005310 */ jal 0x14c40 +/* e714: 00000000 */ sll $zero,$zero,0x0 +/* e718: 0c005049 */ jal 0x14124 +/* e71c: 00000000 */ sll $zero,$zero,0x0 +/* e720: 3c048006 */ lui $a0,0x8006 +/* e724: 0fc5c34b */ jal 0xf170d2c +/* e728: 8c84f2d4 */ lw $a0,-0xd2c($a0) +/* e72c: 3c048006 */ lui $a0,0x8006 +/* e730: 0fc589ee */ jal 0xf1627b8 +/* e734: 8c84f2d4 */ lw $a0,-0xd2c($a0) +/* e738: 3c048006 */ lui $a0,0x8006 +/* e73c: 0c002778 */ jal 0x9de0 +/* e740: 8c84f2d4 */ lw $a0,-0xd2c($a0) +/* e744: 0fc59f11 */ jal 0xf167c44 +/* e748: 00000000 */ sll $zero,$zero,0x0 +/* e74c: 0c00270c */ jal 0x9c30 +/* e750: 00000000 */ sll $zero,$zero,0x0 +/* e754: 02602025 */ or $a0,$s3,$zero +/* e758: 02802825 */ or $a1,$s4,$zero +/* e75c: 0c0126b0 */ jal 0x49ac0 +/* e760: 00003025 */ or $a2,$zero,$zero +/* e764: 10560006 */ beq $v0,$s6,.NB0000e780 +/* e768: 02602025 */ or $a0,$s3,$zero +.NB0000e76c: +/* e76c: 02802825 */ or $a1,$s4,$zero +/* e770: 0c0126b0 */ jal 0x49ac0 +/* e774: 00003025 */ or $a2,$zero,$zero +/* e778: 5456fffc */ bnel $v0,$s6,.NB0000e76c +/* e77c: 02602025 */ or $a0,$s3,$zero +.NB0000e780: +/* e780: 8fd90000 */ lw $t9,0x0($s8) +/* e784: 07220004 */ bltzl $t9,.NB0000e798 +/* e788: 02602025 */ or $a0,$s3,$zero +/* e78c: 8e180000 */ lw $t8,0x0($s0) +/* e790: 13000038 */ beqz $t8,.NB0000e874 +/* e794: 02602025 */ or $a0,$s3,$zero +.NB0000e798: +/* e798: 02802825 */ or $a1,$s4,$zero +/* e79c: 0c0126b0 */ jal 0x49ac0 +/* e7a0: 02e03025 */ or $a2,$s7,$zero +/* e7a4: 0c0006fd */ jal 0x1bf4 +/* e7a8: 00000000 */ sll $zero,$zero,0x0 +/* e7ac: 8fae00b8 */ lw $t6,0xb8($sp) +/* e7b0: 24010002 */ addiu $at,$zero,0x2 +/* e7b4: 85c70000 */ lh $a3,0x0($t6) +/* e7b8: 10f70007 */ beq $a3,$s7,.NB0000e7d8 +/* e7bc: 00000000 */ sll $zero,$zero,0x0 +/* e7c0: 10e10018 */ beq $a3,$at,.NB0000e824 +/* e7c4: 24010005 */ addiu $at,$zero,0x5 +/* e7c8: 10e1001a */ beq $a3,$at,.NB0000e834 +/* e7cc: 240d0004 */ addiu $t5,$zero,0x4 +/* e7d0: 1000001a */ beqz $zero,.NB0000e83c +/* e7d4: 02a02025 */ or $a0,$s5,$zero +.NB0000e7d8: +/* e7d8: 0c012638 */ jal 0x498e0 +/* e7dc: 00000000 */ sll $zero,$zero,0x0 +/* e7e0: 8e480028 */ lw $t0,0x28($s2) +/* e7e4: 3c01000b */ lui $at,0xb +/* e7e8: 3421ebc2 */ ori $at,$at,0xebc2 +/* e7ec: 01010019 */ multu $t0,$at +/* e7f0: 8e4f0018 */ lw $t7,0x18($s2) +/* e7f4: 3c01fffa */ lui $at,0xfffa +/* e7f8: 34210a1f */ ori $at,$at,0xa1f +/* e7fc: 004f1823 */ subu $v1,$v0,$t7 +/* e800: 00004812 */ mflo $t1 +/* e804: 01215021 */ addu $t2,$t1,$at +/* e808: 006a082b */ sltu $at,$v1,$t2 +/* e80c: 54200014 */ bnezl $at,.NB0000e860 +/* e810: 8fd80000 */ lw $t8,0x0($s8) +/* e814: 0c003a3b */ jal 0xe8ec +/* e818: 00000000 */ sll $zero,$zero,0x0 +/* e81c: 10000010 */ beqz $zero,.NB0000e860 +/* e820: 8fd80000 */ lw $t8,0x0($s8) +.NB0000e824: +/* e824: 8e0b0000 */ lw $t3,0x0($s0) +/* e828: 256cffff */ addiu $t4,$t3,-1 +/* e82c: 1000000b */ beqz $zero,.NB0000e85c +/* e830: ae0c0000 */ sw $t4,0x0($s0) +.NB0000e834: +/* e834: 10000009 */ beqz $zero,.NB0000e85c +/* e838: ae0d0000 */ sw $t5,0x0($s0) +.NB0000e83c: +/* e83c: 3c057005 */ lui $a1,0x7005 +/* e840: 24a5516c */ addiu $a1,$a1,0x516c +/* e844: 0c004fc1 */ jal 0x13f04 +/* e848: 8fa600b8 */ lw $a2,0xb8($sp) +/* e84c: 0c003074 */ jal 0xc1d0 +/* e850: 02a02025 */ or $a0,$s5,$zero +/* e854: 24190045 */ addiu $t9,$zero,0x45 +/* e858: a0190000 */ sb $t9,0x0($zero) +.NB0000e85c: +/* e85c: 8fd80000 */ lw $t8,0x0($s8) +.NB0000e860: +/* e860: 0702ffcd */ bltzl $t8,.NB0000e798 +/* e864: 02602025 */ or $a0,$s3,$zero +/* e868: 8e0e0000 */ lw $t6,0x0($s0) +/* e86c: 55c0ffca */ bnezl $t6,.NB0000e798 +/* e870: 02602025 */ or $a0,$s3,$zero +.NB0000e874: +/* e874: 0fc59e56 */ jal 0xf167958 +/* e878: 00000000 */ sll $zero,$zero,0x0 +/* e87c: 0c004acc */ jal 0x12b30 +/* e880: 24040004 */ addiu $a0,$zero,0x4 +/* e884: 0c004acc */ jal 0x12b30 +/* e888: 24040007 */ addiu $a0,$zero,0x7 +/* e88c: 0fc58709 */ jal 0xf161c24 +/* e890: 24040004 */ addiu $a0,$zero,0x4 +/* e894: 0c00281a */ jal 0xa068 +/* e898: 02e02025 */ or $a0,$s7,$zero +/* e89c: 8fcf0000 */ lw $t7,0x0($s8) +/* e8a0: 8fa800e4 */ lw $t0,0xe4($sp) +/* e8a4: 3c018006 */ lui $at,0x8006 +/* e8a8: ac2ff2d4 */ sw $t7,-0xd2c($at) +/* e8ac: 1100fe6e */ beqz $t0,.NB0000e268 +/* e8b0: afd60000 */ sw $s6,0x0($s8) +/* e8b4: 0fc5c31a */ jal 0xf170c68 +/* e8b8: 00000000 */ sll $zero,$zero,0x0 +/* e8bc: 8fbf003c */ lw $ra,0x3c($sp) +/* e8c0: 8fb00018 */ lw $s0,0x18($sp) +/* e8c4: 8fb1001c */ lw $s1,0x1c($sp) +/* e8c8: 8fb20020 */ lw $s2,0x20($sp) +/* e8cc: 8fb30024 */ lw $s3,0x24($sp) +/* e8d0: 8fb40028 */ lw $s4,0x28($sp) +/* e8d4: 8fb5002c */ lw $s5,0x2c($sp) +/* e8d8: 8fb60030 */ lw $s6,0x30($sp) +/* e8dc: 8fb70034 */ lw $s7,0x34($sp) +/* e8e0: 8fbe0038 */ lw $s8,0x38($sp) +/* e8e4: 03e00008 */ jr $ra +/* e8e8: 27bd00e8 */ addiu $sp,$sp,0xe8 +); +#endif +#if VERSION >= VERSION_NTSC_1_0 void mainTick(void) { Gfx *gdl; @@ -1545,13 +2540,401 @@ void mainTick(void) func00009aa0(0x10000); } } +#else +GLOBAL_ASM( +glabel mainTick +/* e8ec: 27bdff68 */ addiu $sp,$sp,-152 +/* e8f0: 3c0f8006 */ lui $t7,0x8006 +/* e8f4: afbf001c */ sw $ra,0x1c($sp) +/* e8f8: afb10018 */ sw $s1,0x18($sp) +/* e8fc: afb00014 */ sw $s0,0x14($sp) +/* e900: 25eff69c */ addiu $t7,$t7,-2404 +/* e904: 8de10000 */ lw $at,0x0($t7) +/* e908: 8de80004 */ lw $t0,0x4($t7) +/* e90c: 27ae0070 */ addiu $t6,$sp,0x70 +/* e910: adc10000 */ sw $at,0x0($t6) +/* e914: adc80004 */ sw $t0,0x4($t6) +/* e918: 8de8000c */ lw $t0,0xc($t7) +/* e91c: 8de10008 */ lw $at,0x8($t7) +/* e920: 3c098006 */ lui $t1,0x8006 +/* e924: adc8000c */ sw $t0,0xc($t6) +/* e928: adc10008 */ sw $at,0x8($t6) +/* e92c: 8de10010 */ lw $at,0x10($t7) +/* e930: 8de80014 */ lw $t0,0x14($t7) +/* e934: 3c0a8006 */ lui $t2,0x8006 +/* e938: adc10010 */ sw $at,0x10($t6) +/* e93c: adc80014 */ sw $t0,0x14($t6) +/* e940: 8de8001c */ lw $t0,0x1c($t7) +/* e944: 8de10018 */ lw $at,0x18($t7) +/* e948: adc8001c */ sw $t0,0x1c($t6) +/* e94c: adc10018 */ sw $at,0x18($t6) +/* e950: 8d29f674 */ lw $t1,-0x98c($t1) +/* e954: 05230148 */ bgezl $t1,.NB0000ee78 +/* e958: 8fbf001c */ lw $ra,0x1c($sp) +/* e95c: 8d4af2ec */ lw $t2,-0xd14($t2) +/* e960: 2d410002 */ sltiu $at,$t2,0x2 +/* e964: 50200144 */ beqzl $at,.NB0000ee78 +/* e968: 8fbf001c */ lw $ra,0x1c($sp) +/* e96c: 0fc59f11 */ jal 0xf167c44 +/* e970: 00000000 */ sll $zero,$zero,0x0 +/* e974: 0c00270e */ jal 0x9c38 +/* e978: 00000000 */ sll $zero,$zero,0x0 +/* e97c: 0c00270c */ jal 0x9c30 +/* e980: 00000000 */ sll $zero,$zero,0x0 +/* e984: 0c002710 */ jal 0x9c40 +/* e988: 3c040002 */ lui $a0,0x2 +/* e98c: 0c000dbe */ jal 0x36f8 +/* e990: 00000000 */ sll $zero,$zero,0x0 +/* e994: 0c005477 */ jal 0x151dc +/* e998: 00000000 */ sll $zero,$zero,0x0 +/* e99c: 0c00073e */ jal 0x1cf8 +/* e9a0: 00002025 */ or $a0,$zero,$zero +/* e9a4: 3c048006 */ lui $a0,0x8006 +/* e9a8: 8c84f2e8 */ lw $a0,-0xd18($a0) +/* e9ac: 1080011c */ beqz $a0,.NB0000ee20 +/* e9b0: 00000000 */ sll $zero,$zero,0x0 +/* e9b4: 0fc5889f */ jal 0xf16227c +/* e9b8: 00000000 */ sll $zero,$zero,0x0 +/* e9bc: 244b0008 */ addiu $t3,$v0,0x8 +/* e9c0: afa20090 */ sw $v0,0x90($sp) +/* e9c4: afab0094 */ sw $t3,0x94($sp) +/* e9c8: 3c0cf510 */ lui $t4,0xf510 +/* e9cc: 3c0d0700 */ lui $t5,0x700 +/* e9d0: ac4d0004 */ sw $t5,0x4($v0) +/* e9d4: ac4c0000 */ sw $t4,0x0($v0) +/* e9d8: 8fb90094 */ lw $t9,0x94($sp) +/* e9dc: 3c0ef500 */ lui $t6,0xf500 +/* e9e0: 35ce0100 */ ori $t6,$t6,0x100 +/* e9e4: 27380008 */ addiu $t8,$t9,0x8 +/* e9e8: afb80094 */ sw $t8,0x94($sp) +/* e9ec: 3c0f0600 */ lui $t7,0x600 +/* e9f0: 3c088006 */ lui $t0,0x8006 +/* e9f4: af2f0004 */ sw $t7,0x4($t9) +/* e9f8: af2e0000 */ sw $t6,0x0($t9) +/* e9fc: 8d08f678 */ lw $t0,-0x988($t0) +/* ea00: 15000006 */ bnez $t0,.NB0000ea1c +/* ea04: 00002025 */ or $a0,$zero,$zero +/* ea08: 0c005790 */ jal 0x15e40 +/* ea0c: 2405000c */ addiu $a1,$zero,0xc +/* ea10: 2401000c */ addiu $at,$zero,0xc +/* ea14: 1441001a */ bne $v0,$at,.NB0000ea80 +/* ea18: 00002025 */ or $a0,$zero,$zero +.NB0000ea1c: +/* ea1c: 0c00573c */ jal 0x15cf0 +/* ea20: 00002025 */ or $a0,$zero,$zero +/* ea24: 00028e00 */ sll $s1,$v0,0x18 +/* ea28: 00114e03 */ sra $t1,$s1,0x18 +/* ea2c: 01208825 */ or $s1,$t1,$zero +/* ea30: 0c005766 */ jal 0x15d98 +/* ea34: 00002025 */ or $a0,$zero,$zero +/* ea38: a3a2003b */ sb $v0,0x3b($sp) +/* ea3c: 00002025 */ or $a0,$zero,$zero +/* ea40: 0c005790 */ jal 0x15e40 +/* ea44: 3405ffff */ dli $a1,0xffff +/* ea48: 3050ffff */ andi $s0,$v0,0xffff +/* ea4c: 00002025 */ or $a0,$zero,$zero +/* ea50: 0c0057c0 */ jal 0x15f00 +/* ea54: 3405ffff */ dli $a1,0xffff +/* ea58: 00112600 */ sll $a0,$s1,0x18 +/* ea5c: 00045603 */ sra $t2,$a0,0x18 +/* ea60: 01402025 */ or $a0,$t2,$zero +/* ea64: 83a5003b */ lb $a1,0x3b($sp) +/* ea68: 3206ffff */ andi $a2,$s0,0xffff +/* ea6c: 0fc4651b */ jal 0xf11946c +/* ea70: 3047ffff */ andi $a3,$v0,0xffff +/* ea74: 3c018006 */ lui $at,0x8006 +/* ea78: 10000021 */ beqz $zero,.NB0000eb00 +/* ea7c: ac22f678 */ sw $v0,-0x988($at) +.NB0000ea80: +/* ea80: 0c005790 */ jal 0x15e40 +/* ea84: 24051000 */ addiu $a1,$zero,0x1000 +/* ea88: 14400005 */ bnez $v0,.NB0000eaa0 +/* ea8c: 3c0b8008 */ lui $t3,0x8008 +/* ea90: 8d6b86f4 */ lw $t3,-0x790c($t3) +/* ea94: 3c018008 */ lui $at,0x8008 +/* ea98: 10000019 */ beqz $zero,.NB0000eb00 +/* ea9c: ac2b86f0 */ sw $t3,-0x7910($at) +.NB0000eaa0: +/* eaa0: 0c00573c */ jal 0x15cf0 +/* eaa4: 00002025 */ or $a0,$zero,$zero +/* eaa8: 00028e00 */ sll $s1,$v0,0x18 +/* eaac: 00116603 */ sra $t4,$s1,0x18 +/* eab0: 01808825 */ or $s1,$t4,$zero +/* eab4: 0c005766 */ jal 0x15d98 +/* eab8: 00002025 */ or $a0,$zero,$zero +/* eabc: a3a2003b */ sb $v0,0x3b($sp) +/* eac0: 00002025 */ or $a0,$zero,$zero +/* eac4: 0c005790 */ jal 0x15e40 +/* eac8: 3405ffff */ dli $a1,0xffff +/* eacc: 3050ffff */ andi $s0,$v0,0xffff +/* ead0: 00002025 */ or $a0,$zero,$zero +/* ead4: 0c0057c0 */ jal 0x15f00 +/* ead8: 3405ffff */ dli $a1,0xffff +/* eadc: 00112600 */ sll $a0,$s1,0x18 +/* eae0: 00046e03 */ sra $t5,$a0,0x18 +/* eae4: 01a02025 */ or $a0,$t5,$zero +/* eae8: 83a5003b */ lb $a1,0x3b($sp) +/* eaec: 3206ffff */ andi $a2,$s0,0xffff +/* eaf0: 0fc4651b */ jal 0xf11946c +/* eaf4: 3047ffff */ andi $a3,$v0,0xffff +/* eaf8: 3c018006 */ lui $at,0x8006 +/* eafc: ac22f678 */ sw $v0,-0x988($at) +.NB0000eb00: +/* eb00: 0fc599c9 */ jal 0xf166724 +/* eb04: 00000000 */ sll $zero,$zero,0x0 +/* eb08: 0fc48e7f */ jal 0xf1239fc +/* eb0c: 00000000 */ sll $zero,$zero,0x0 +/* eb10: 3c198006 */ lui $t9,0x8006 +/* eb14: 8f39f2d4 */ lw $t9,-0xd2c($t9) +/* eb18: 3c10800a */ lui $s0,0x800a +/* eb1c: 2610e6c0 */ addiu $s0,$s0,-6464 +/* eb20: 2b21005a */ slti $at,$t9,0x5a +/* eb24: 10200055 */ beqz $at,.NB0000ec7c +/* eb28: 00000000 */ sll $zero,$zero,0x0 +/* eb2c: 8e18006c */ lw $t8,0x6c($s0) +/* eb30: 00008825 */ or $s1,$zero,$zero +/* eb34: 00002825 */ or $a1,$zero,$zero +/* eb38: 13000003 */ beqz $t8,.NB0000eb48 +/* eb3c: 00002025 */ or $a0,$zero,$zero +/* eb40: 10000001 */ beqz $zero,.NB0000eb48 +/* eb44: 24050001 */ addiu $a1,$zero,0x1 +.NB0000eb48: +/* eb48: 8e0e0068 */ lw $t6,0x68($s0) +/* eb4c: 00001825 */ or $v1,$zero,$zero +/* eb50: 00001025 */ or $v0,$zero,$zero +/* eb54: 11c00003 */ beqz $t6,.NB0000eb64 +/* eb58: 00000000 */ sll $zero,$zero,0x0 +/* eb5c: 10000001 */ beqz $zero,.NB0000eb64 +/* eb60: 24040001 */ addiu $a0,$zero,0x1 +.NB0000eb64: +/* eb64: 8e0f0064 */ lw $t7,0x64($s0) +/* eb68: 11e00003 */ beqz $t7,.NB0000eb78 +/* eb6c: 00000000 */ sll $zero,$zero,0x0 +/* eb70: 10000001 */ beqz $zero,.NB0000eb78 +/* eb74: 24030001 */ addiu $v1,$zero,0x1 +.NB0000eb78: +/* eb78: 8e080070 */ lw $t0,0x70($s0) +/* eb7c: 11000003 */ beqz $t0,.NB0000eb8c +/* eb80: 00000000 */ sll $zero,$zero,0x0 +/* eb84: 10000001 */ beqz $zero,.NB0000eb8c +/* eb88: 24020001 */ addiu $v0,$zero,0x1 +.NB0000eb8c: +/* eb8c: 00434821 */ addu $t1,$v0,$v1 +/* eb90: 01245021 */ addu $t2,$t1,$a0 +/* eb94: 01455821 */ addu $t3,$t2,$a1 +/* eb98: 19600038 */ blez $t3,.NB0000ec7c +/* eb9c: 00000000 */ sll $zero,$zero,0x0 +.NB0000eba0: +/* eba0: 0fc48ec2 */ jal 0xf123b08 +/* eba4: 02202025 */ or $a0,$s1,$zero +/* eba8: 0fc48d5b */ jal 0xf12356c +/* ebac: 00402025 */ or $a0,$v0,$zero +/* ebb0: 3c0c8006 */ lui $t4,0x8006 +/* ebb4: 8d8cf2d4 */ lw $t4,-0xd2c($t4) +/* ebb8: 2401004e */ addiu $at,$zero,0x4e +/* ebbc: 55810006 */ bnel $t4,$at,.NB0000ebd8 +/* ebc0: 8e020284 */ lw $v0,0x284($s0) +/* ebc4: 0fc06a36 */ jal 0xf01a8d8 +/* ebc8: 00000000 */ sll $zero,$zero,0x0 +/* ebcc: 1440000b */ bnez $v0,.NB0000ebfc +/* ebd0: 00000000 */ sll $zero,$zero,0x0 +/* ebd4: 8e020284 */ lw $v0,0x284($s0) +.NB0000ebd8: +/* ebd8: 84440634 */ lh $a0,0x634($v0) +/* ebdc: 0c002f9f */ jal 0xbe7c +/* ebe0: 84450636 */ lh $a1,0x636($v0) +/* ebe4: 8e020284 */ lw $v0,0x284($s0) +/* ebe8: c44c1854 */ lwc1 $f12,0x1854($v0) +/* ebec: c44e1858 */ lwc1 $f14,0x1858($v0) +/* ebf0: 84460630 */ lh $a2,0x630($v0) +/* ebf4: 0c002feb */ jal 0xbfac +/* ebf8: 84470632 */ lh $a3,0x632($v0) +.NB0000ebfc: +/* ebfc: 0fc59e2f */ jal 0xf1678bc +/* ec00: 00000000 */ sll $zero,$zero,0x0 +/* ec04: 8e0d006c */ lw $t5,0x6c($s0) +/* ec08: 26310001 */ addiu $s1,$s1,0x1 +/* ec0c: 00002825 */ or $a1,$zero,$zero +/* ec10: 11a00003 */ beqz $t5,.NB0000ec20 +/* ec14: 00002025 */ or $a0,$zero,$zero +/* ec18: 10000001 */ beqz $zero,.NB0000ec20 +/* ec1c: 24050001 */ addiu $a1,$zero,0x1 +.NB0000ec20: +/* ec20: 8e190068 */ lw $t9,0x68($s0) +/* ec24: 00001825 */ or $v1,$zero,$zero +/* ec28: 00001025 */ or $v0,$zero,$zero +/* ec2c: 13200003 */ beqz $t9,.NB0000ec3c +/* ec30: 00000000 */ sll $zero,$zero,0x0 +/* ec34: 10000001 */ beqz $zero,.NB0000ec3c +/* ec38: 24040001 */ addiu $a0,$zero,0x1 +.NB0000ec3c: +/* ec3c: 8e180064 */ lw $t8,0x64($s0) +/* ec40: 13000003 */ beqz $t8,.NB0000ec50 +/* ec44: 00000000 */ sll $zero,$zero,0x0 +/* ec48: 10000001 */ beqz $zero,.NB0000ec50 +/* ec4c: 24030001 */ addiu $v1,$zero,0x1 +.NB0000ec50: +/* ec50: 8e0e0070 */ lw $t6,0x70($s0) +/* ec54: 11c00003 */ beqz $t6,.NB0000ec64 +/* ec58: 00000000 */ sll $zero,$zero,0x0 +/* ec5c: 10000001 */ beqz $zero,.NB0000ec64 +/* ec60: 24020001 */ addiu $v0,$zero,0x1 +.NB0000ec64: +/* ec64: 00437821 */ addu $t7,$v0,$v1 +/* ec68: 01e44021 */ addu $t0,$t7,$a0 +/* ec6c: 01054821 */ addu $t1,$t0,$a1 +/* ec70: 0229082a */ slt $at,$s1,$t1 +/* ec74: 1420ffca */ bnez $at,.NB0000eba0 +/* ec78: 00000000 */ sll $zero,$zero,0x0 +.NB0000ec7c: +/* ec7c: 0fc59012 */ jal 0xf164048 +/* ec80: 8fa40094 */ lw $a0,0x94($sp) +/* ec84: afa20094 */ sw $v0,0x94($sp) +/* ec88: 0c000dc0 */ jal 0x3700 +/* ec8c: 27a40094 */ addiu $a0,$sp,0x94 +/* ec90: 0fc4665b */ jal 0xf11996c +/* ec94: 00000000 */ sll $zero,$zero,0x0 +/* ec98: 1040003e */ beqz $v0,.NB0000ed94 +/* ec9c: 2407ffff */ addiu $a3,$zero,-1 +/* eca0: 8faa0094 */ lw $t2,0x94($sp) +/* eca4: 3c0ce700 */ lui $t4,0xe700 +/* eca8: 3c18ba00 */ lui $t8,0xba00 +/* ecac: 254b0008 */ addiu $t3,$t2,0x8 +/* ecb0: afab0094 */ sw $t3,0x94($sp) +/* ecb4: ad400004 */ sw $zero,0x4($t2) +/* ecb8: ad4c0000 */ sw $t4,0x0($t2) +/* ecbc: 8fad0094 */ lw $t5,0x94($sp) +/* ecc0: 37181402 */ ori $t8,$t8,0x1402 +/* ecc4: 3c08f900 */ lui $t0,0xf900 +/* ecc8: 25b90008 */ addiu $t9,$t5,0x8 +/* eccc: afb90094 */ sw $t9,0x94($sp) +/* ecd0: ada00004 */ sw $zero,0x4($t5) +/* ecd4: adb80000 */ sw $t8,0x0($t5) +/* ecd8: 8fae0094 */ lw $t6,0x94($sp) +/* ecdc: 3c0bee00 */ lui $t3,0xee00 +/* ece0: 3c19b900 */ lui $t9,0xb900 +/* ece4: 25cf0008 */ addiu $t7,$t6,0x8 +/* ece8: afaf0094 */ sw $t7,0x94($sp) +/* ecec: adc70004 */ sw $a3,0x4($t6) +/* ecf0: adc80000 */ sw $t0,0x0($t6) +/* ecf4: 8fa90094 */ lw $t1,0x94($sp) +/* ecf8: 37390201 */ ori $t9,$t9,0x201 +/* ecfc: 24180004 */ addiu $t8,$zero,0x4 +/* ed00: 252a0008 */ addiu $t2,$t1,0x8 +/* ed04: afaa0094 */ sw $t2,0x94($sp) +/* ed08: ad270004 */ sw $a3,0x4($t1) +/* ed0c: ad2b0000 */ sw $t3,0x0($t1) +/* ed10: 8fac0094 */ lw $t4,0x94($sp) +/* ed14: 3c090fa5 */ lui $t1,0xfa5 +/* ed18: 3c08b900 */ lui $t0,0xb900 +/* ed1c: 258d0008 */ addiu $t5,$t4,0x8 +/* ed20: afad0094 */ sw $t5,0x94($sp) +/* ed24: ad980004 */ sw $t8,0x4($t4) +/* ed28: ad990000 */ sw $t9,0x0($t4) +/* ed2c: 8fae0094 */ lw $t6,0x94($sp) +/* ed30: 3508031d */ ori $t0,$t0,0x31d +/* ed34: 35294040 */ ori $t1,$t1,0x4040 +/* ed38: 25cf0008 */ addiu $t7,$t6,0x8 +/* ed3c: afaf0094 */ sw $t7,0x94($sp) +/* ed40: adc90004 */ sw $t1,0x4($t6) +/* ed44: adc80000 */ sw $t0,0x0($t6) +/* ed48: 8fb00094 */ lw $s0,0x94($sp) +/* ed4c: 260b0008 */ addiu $t3,$s0,0x8 +/* ed50: 0c002f77 */ jal 0xbddc +/* ed54: afab0094 */ sw $t3,0x94($sp) +/* ed58: 00028c00 */ sll $s1,$v0,0x10 +/* ed5c: 00116403 */ sra $t4,$s1,0x10 +/* ed60: 0c002f7b */ jal 0xbdec +/* ed64: 01808825 */ or $s1,$t4,$zero +/* ed68: 244dffff */ addiu $t5,$v0,-1 +/* ed6c: 31b903ff */ andi $t9,$t5,0x3ff +/* ed70: 262fffff */ addiu $t7,$s1,-1 +/* ed74: 31e803ff */ andi $t0,$t7,0x3ff +/* ed78: 0019c080 */ sll $t8,$t9,0x2 +/* ed7c: 3c01f600 */ lui $at,0xf600 +/* ed80: 03017025 */ or $t6,$t8,$at +/* ed84: 00084b80 */ sll $t1,$t0,0xe +/* ed88: 01c95025 */ or $t2,$t6,$t1 +/* ed8c: ae0a0000 */ sw $t2,0x0($s0) +/* ed90: ae000004 */ sw $zero,0x4($s0) +.NB0000ed94: +/* ed94: 0c0051a1 */ jal 0x14684 +/* ed98: 8fa40094 */ lw $a0,0x94($sp) +/* ed9c: 0c0050b5 */ jal 0x142d4 +/* eda0: afa20094 */ sw $v0,0x94($sp) +/* eda4: 0fc4663a */ jal 0xf1198e8 +/* eda8: 00000000 */ sll $zero,$zero,0x0 +/* edac: 28410002 */ slti $at,$v0,0x2 +/* edb0: 14200004 */ bnez $at,.NB0000edc4 +/* edb4: 00000000 */ sll $zero,$zero,0x0 +/* edb8: 0c002712 */ jal 0x9c48 +/* edbc: 8fa40094 */ lw $a0,0x94($sp) +/* edc0: afa20094 */ sw $v0,0x94($sp) +.NB0000edc4: +/* edc4: 3c0b8006 */ lui $t3,0x8006 +/* edc8: 8d6bf678 */ lw $t3,-0x988($t3) +/* edcc: 51600007 */ beqzl $t3,.NB0000edec +/* edd0: 8fac0094 */ lw $t4,0x94($sp) +/* edd4: 0fc4649c */ jal 0xf119270 +/* edd8: 00000000 */ sll $zero,$zero,0x0 +/* eddc: 0fc4633d */ jal 0xf118cf4 +/* ede0: 8fa40094 */ lw $a0,0x94($sp) +/* ede4: afa20094 */ sw $v0,0x94($sp) +/* ede8: 8fac0094 */ lw $t4,0x94($sp) +.NB0000edec: +/* edec: 3c19e900 */ lui $t9,0xe900 +/* edf0: 3c08b800 */ lui $t0,0xb800 +/* edf4: 258d0008 */ addiu $t5,$t4,0x8 +/* edf8: afad0094 */ sw $t5,0x94($sp) +/* edfc: ad800004 */ sw $zero,0x4($t4) +/* ee00: ad990000 */ sw $t9,0x0($t4) +/* ee04: 8fb80094 */ lw $t8,0x94($sp) +/* ee08: 3c048006 */ lui $a0,0x8006 +/* ee0c: 270f0008 */ addiu $t7,$t8,0x8 +/* ee10: afaf0094 */ sw $t7,0x94($sp) +/* ee14: af000004 */ sw $zero,0x4($t8) +/* ee18: af080000 */ sw $t0,0x0($t8) +/* ee1c: 8c84f2e8 */ lw $a0,-0xd18($a0) +.NB0000ee20: +/* ee20: 50800006 */ beqzl $a0,.NB0000ee3c +/* ee24: 8fa40090 */ lw $a0,0x90($sp) +/* ee28: 0fc588d6 */ jal 0xf162358 +/* ee2c: 00000000 */ sll $zero,$zero,0x0 +/* ee30: 0c002871 */ jal 0xa1c4 +/* ee34: 00000000 */ sll $zero,$zero,0x0 +/* ee38: 8fa40090 */ lw $a0,0x90($sp) +.NB0000ee3c: +/* ee3c: 8fa50094 */ lw $a1,0x94($sp) +/* ee40: 00003025 */ or $a2,$zero,$zero +/* ee44: 0c00c411 */ jal 0x31044 +/* ee48: 27a70070 */ addiu $a3,$sp,0x70 +/* ee4c: 3c028006 */ lui $v0,0x8006 +/* ee50: 2442f2ec */ addiu $v0,$v0,-3348 +/* ee54: 8c4e0000 */ lw $t6,0x0($v0) +/* ee58: 25c90001 */ addiu $t1,$t6,0x1 +/* ee5c: 0c004c0a */ jal 0x13028 +/* ee60: ac490000 */ sw $t1,0x0($v0) +/* ee64: 0fc59f51 */ jal 0xf167d44 +/* ee68: 00000000 */ sll $zero,$zero,0x0 +/* ee6c: 0c002710 */ jal 0x9c40 +/* ee70: 3c040001 */ lui $a0,0x1 +/* ee74: 8fbf001c */ lw $ra,0x1c($sp) +.NB0000ee78: +/* ee78: 8fb00014 */ lw $s0,0x14($sp) +/* ee7c: 8fb10018 */ lw $s1,0x18($sp) +/* ee80: 03e00008 */ jr $ra +/* ee84: 27bd0098 */ addiu $sp,$sp,0x98 +); +#endif void mainEndStage(void) { envStopNosedive(); if (var8005d9d0 == 0) { +#if VERSION >= VERSION_NTSC_1_0 func0f11c6d0(); +#endif contDisableTemporarily(); if (g_Vars.coopplayernum >= 0) { @@ -1589,7 +2972,9 @@ void mainEndStage(void) void mainSetStageNum(s32 stagenum) { +#if VERSION >= VERSION_NTSC_1_0 func0f11c6d0(); +#endif g_MainStageNum = stagenum; } diff --git a/src/lib/memory.c b/src/lib/memory.c index 93e69fba9..4b80e2bed 100644 --- a/src/lib/memory.c +++ b/src/lib/memory.c @@ -67,9 +67,9 @@ void memInit(u32 heapstart, u32 heaplen) g_OnboardMemoryPools[MEMPOOL_STAGE].rightpos = heapstart + heaplen; // If 8MB, reserve the entire expansion pak for additional mempool 4 - extraend = 0x80000000 + osGetMemSize(); + extraend = 0x80000000 + initGetMemSize(); - if (osGetMemSize() > 4 * 1024 * 1024) { + if (initGetMemSize() > 4 * 1024 * 1024) { g_ExpansionMemoryPools[MEMPOOL_STAGE].start = 0x80400000; g_ExpansionMemoryPools[MEMPOOL_STAGE].rightpos = extraend; } @@ -171,6 +171,7 @@ glabel memAllocFromBank // return allocation; //} +#if VERSION >= VERSION_NTSC_1_0 void *malloc(u32 len, u8 pool) { void *allocation = (void *)memAllocFromBank(g_OnboardMemoryPools, len, pool); @@ -187,6 +188,86 @@ void *malloc(u32 len, u8 pool) return allocation; } +#else +GLOBAL_ASM( +glabel malloc +/* 12838: 27bdff78 */ addiu $sp,$sp,-136 +/* 1283c: afa40088 */ sw $a0,0x88($sp) +/* 12840: afbf001c */ sw $ra,0x1c($sp) +/* 12844: afa5008c */ sw $a1,0x8c($sp) +/* 12848: 3c04800a */ lui $a0,0x800a +/* 1284c: 2484c280 */ addiu $a0,$a0,-15744 +/* 12850: 93a6008f */ lbu $a2,0x8f($sp) +/* 12854: 0c0049f1 */ jal 0x127c4 +/* 12858: 8fa50088 */ lw $a1,0x88($sp) +/* 1285c: 10400003 */ beqz $v0,.NB0001286c +/* 12860: 3c04800a */ lui $a0,0x800a +/* 12864: 10000036 */ beqz $zero,.NB00012940 +/* 12868: 8fbf001c */ lw $ra,0x1c($sp) +.NB0001286c: +/* 1286c: 2484c338 */ addiu $a0,$a0,-15560 +/* 12870: 8fa50088 */ lw $a1,0x88($sp) +/* 12874: 0c0049f1 */ jal 0x127c4 +/* 12878: 93a6008f */ lbu $a2,0x8f($sp) +/* 1287c: 10400003 */ beqz $v0,.NB0001288c +/* 12880: afa20084 */ sw $v0,0x84($sp) +/* 12884: 1000002e */ beqz $zero,.NB00012940 +/* 12888: 8fbf001c */ lw $ra,0x1c($sp) +.NB0001288c: +/* 1288c: 93a2008f */ lbu $v0,0x8f($sp) +/* 12890: 24010008 */ addiu $at,$zero,0x8 +/* 12894: 10410028 */ beq $v0,$at,.NB00012938 +/* 12898: 24010007 */ addiu $at,$zero,0x7 +/* 1289c: 10410026 */ beq $v0,$at,.NB00012938 +/* 128a0: 8fae0088 */ lw $t6,0x88($sp) +/* 128a4: 11c00024 */ beqz $t6,.NB00012938 +/* 128a8: 24010004 */ addiu $at,$zero,0x4 +/* 128ac: 14410011 */ bne $v0,$at,.NB000128f4 +/* 128b0: 24040006 */ addiu $a0,$zero,0x6 +/* 128b4: 24040004 */ addiu $a0,$zero,0x4 +/* 128b8: 0c004a7c */ jal 0x129f0 +/* 128bc: 00002825 */ or $a1,$zero,$zero +/* 128c0: afa20028 */ sw $v0,0x28($sp) +/* 128c4: 24040004 */ addiu $a0,$zero,0x4 +/* 128c8: 0c004a91 */ jal 0x12a44 +/* 128cc: 00002825 */ or $a1,$zero,$zero +/* 128d0: 3c057005 */ lui $a1,0x7005 +/* 128d4: 24a556f0 */ addiu $a1,$a1,0x56f0 +/* 128d8: 27a40034 */ addiu $a0,$sp,0x34 +/* 128dc: 8fa60088 */ lw $a2,0x88($sp) +/* 128e0: 8fa70028 */ lw $a3,0x28($sp) +/* 128e4: 0c004fc1 */ jal 0x13f04 +/* 128e8: afa20010 */ sw $v0,0x10($sp) +/* 128ec: 1000000e */ beqz $zero,.NB00012928 +/* 128f0: 00000000 */ sll $zero,$zero,0x0 +.NB000128f4: +/* 128f4: 0c004a7c */ jal 0x129f0 +/* 128f8: 00002825 */ or $a1,$zero,$zero +/* 128fc: afa20028 */ sw $v0,0x28($sp) +/* 12900: 24040006 */ addiu $a0,$zero,0x6 +/* 12904: 0c004a91 */ jal 0x12a44 +/* 12908: 00002825 */ or $a1,$zero,$zero +/* 1290c: 3c057005 */ lui $a1,0x7005 +/* 12910: 24a55710 */ addiu $a1,$a1,0x5710 +/* 12914: 27a40034 */ addiu $a0,$sp,0x34 +/* 12918: 8fa60088 */ lw $a2,0x88($sp) +/* 1291c: 8fa70028 */ lw $a3,0x28($sp) +/* 12920: 0c004fc1 */ jal 0x13f04 +/* 12924: afa20010 */ sw $v0,0x10($sp) +.NB00012928: +/* 12928: 0c003074 */ jal 0xc1d0 +/* 1292c: 27a40034 */ addiu $a0,$sp,0x34 +/* 12930: 240f0045 */ addiu $t7,$zero,0x45 +/* 12934: a00f0000 */ sb $t7,0x0($zero) +.NB00012938: +/* 12938: 8fa20084 */ lw $v0,0x84($sp) +/* 1293c: 8fbf001c */ lw $ra,0x1c($sp) +.NB00012940: +/* 12940: 27bd0088 */ addiu $sp,$sp,0x88 +/* 12944: 03e00008 */ jr $ra +/* 12948: 00000000 */ sll $zero,$zero,0x0 +); +#endif /** * Reallocate the given allocation in the given pool. @@ -242,6 +323,52 @@ u32 memGetFree(u8 poolnum, u32 bank) return pool->rightpos - pool->leftpos; } +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func00012a44nb +/* 12a44: afa40000 */ sw $a0,0x0($sp) +/* 12a48: 308e00ff */ andi $t6,$a0,0xff +/* 12a4c: 14a00008 */ bnez $a1,.NB00012a70 +/* 12a50: 01c02025 */ or $a0,$t6,$zero +/* 12a54: 000e7880 */ sll $t7,$t6,0x2 +/* 12a58: 01ee7821 */ addu $t7,$t7,$t6 +/* 12a5c: 3c18800a */ lui $t8,0x800a +/* 12a60: 2718c280 */ addiu $t8,$t8,-15744 +/* 12a64: 000f7880 */ sll $t7,$t7,0x2 +/* 12a68: 10000007 */ beqz $zero,.NB00012a88 +/* 12a6c: 01f81821 */ addu $v1,$t7,$t8 +.NB00012a70: +/* 12a70: 0004c880 */ sll $t9,$a0,0x2 +/* 12a74: 0324c821 */ addu $t9,$t9,$a0 +/* 12a78: 3c08800a */ lui $t0,0x800a +/* 12a7c: 2508c338 */ addiu $t0,$t0,-15560 +/* 12a80: 0019c880 */ sll $t9,$t9,0x2 +/* 12a84: 03281821 */ addu $v1,$t9,$t0 +.NB00012a88: +/* 12a88: 8c690008 */ lw $t1,0x8($v1) +/* 12a8c: 8c6a0000 */ lw $t2,0x0($v1) +/* 12a90: 03e00008 */ jr $ra +/* 12a94: 012a1023 */ subu $v0,$t1,$t2 +); +#endif + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func00012a98nb +/* 12a98: 27bdffe8 */ addiu $sp,$sp,-24 +/* 12a9c: 00802825 */ or $a1,$a0,$zero +/* 12aa0: afbf0014 */ sw $ra,0x14($sp) +/* 12aa4: 30ae000f */ andi $t6,$a1,0xf +/* 12aa8: 01c02825 */ or $a1,$t6,$zero +/* 12aac: 0c004a0e */ jal 0x12838 +/* 12ab0: 00042102 */ srl $a0,$a0,0x4 +/* 12ab4: 8fbf0014 */ lw $ra,0x14($sp) +/* 12ab8: 27bd0018 */ addiu $sp,$sp,0x18 +/* 12abc: 03e00008 */ jr $ra +/* 12ac0: 00000000 */ sll $zero,$zero,0x0 +); +#endif + /** * Reset the pool's left side to its start address, effectively freeing the left * side of the pool. diff --git a/src/lib/model.c b/src/lib/model.c index 8e1b95b0a..16e4030e9 100644 --- a/src/lib/model.c +++ b/src/lib/model.c @@ -429,6 +429,8 @@ glabel func0001a9e8 /* 1aa18: 27bd0018 */ addiu $sp,$sp,0x18 ); +#if VERSION >= VERSION_NTSC_1_0 +// ntsc-beta has this function in another file void *modelGetNodeData(struct model *model, struct modelnode *node) { u32 index = 0; @@ -473,6 +475,7 @@ void *modelGetNodeData(struct model *model, struct modelnode *node) return &datas[index]; } +#endif void modelNodeGetPosition(struct model *model, struct modelnode *node, struct coord *pos) { @@ -4914,6 +4917,15 @@ void modelSetAnimFlipFunction(struct model *model, void *callback) } } +#if VERSION == VERSION_NTSC_BETA +void modelSetAnimUnk6c(struct model *model, s32 value) +{ + if (model->anim) { + model->anim->unk6c = value; + } +} +#endif + void modelSetAnimSpeed(struct model *model, f32 speed, f32 startframe) { struct anim *anim = model->anim; diff --git a/src/lib/sched.c b/src/lib/sched.c index 7fc5e7917..7460d2edf 100644 --- a/src/lib/sched.c +++ b/src/lib/sched.c @@ -289,8 +289,6 @@ void func00002078(OSSched *sc) func00001b98(sc->frameCount); } -//#if VERSION >= VERSION_NTSC_1_0 -#if VERSION >= 0 void __scHandleRetrace(OSSched *sc) { s32 state; @@ -343,7 +341,6 @@ void __scHandleRetrace(OSSched *sc) } #endif } -#endif void __scHandleRSP(OSSched *sc) { diff --git a/src/lib/ultra/libc/llcvt.c b/src/lib/ultra/libc/llcvt.c index 1d879c433..a13b8e66b 100644 --- a/src/lib/ultra/libc/llcvt.c +++ b/src/lib/ultra/libc/llcvt.c @@ -1,8 +1,71 @@ +#include "constants.h" + long long __f_to_ll(float f) { return f; } +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func00005abcnb +/* 5abc: 46006109 */ trunc.l.s $f4,$f12 +/* 5ac0: 44222000 */ dmfc1 $v0,$f4 +/* 5ac4: 00000000 */ sll $zero,$zero,0x0 +/* 5ac8: 0002183c */ dsll32 $v1,$v0,0x0 +/* 5acc: 0003183f */ dsra32 $v1,$v1,0x0 +/* 5ad0: 03e00008 */ jr $ra +/* 5ad4: 0002103f */ dsra32 $v0,$v0,0x0 +); +#endif + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func00005b74nb +/* 5b74: 444ef800 */ cfc1 $t6,$31 +/* 5b78: 24020001 */ addiu $v0,$zero,0x1 +/* 5b7c: 44c2f800 */ ctc1 $v0,$31 +/* 5b80: 00000000 */ sll $zero,$zero,0x0 +/* 5b84: 46006125 */ cvt.l.s $f4,$f12 +/* 5b88: 4442f800 */ cfc1 $v0,$31 +/* 5b8c: 00000000 */ sll $zero,$zero,0x0 +/* 5b90: 30410004 */ andi $at,$v0,0x4 +/* 5b94: 30420078 */ andi $v0,$v0,0x78 +/* 5b98: 10400014 */ beqz $v0,.NB00005bec +/* 5b9c: 3c015f00 */ lui $at,0x5f00 +/* 5ba0: 44812000 */ mtc1 $at,$f4 +/* 5ba4: 24020001 */ addiu $v0,$zero,0x1 +/* 5ba8: 46046101 */ sub.s $f4,$f12,$f4 +/* 5bac: 44c2f800 */ ctc1 $v0,$31 +/* 5bb0: 00000000 */ sll $zero,$zero,0x0 +/* 5bb4: 46002125 */ cvt.l.s $f4,$f4 +/* 5bb8: 4442f800 */ cfc1 $v0,$31 +/* 5bbc: 00000000 */ sll $zero,$zero,0x0 +/* 5bc0: 30410004 */ andi $at,$v0,0x4 +/* 5bc4: 30420078 */ andi $v0,$v0,0x78 +/* 5bc8: 14400006 */ bnez $v0,.NB00005be4 +/* 5bcc: 00000000 */ sll $zero,$zero,0x0 +/* 5bd0: 3c0f8000 */ lui $t7,0x8000 +/* 5bd4: 000f783c */ dsll32 $t7,$t7,0x0 +/* 5bd8: 44222000 */ dmfc1 $v0,$f4 +/* 5bdc: 10000007 */ beqz $zero,.NB00005bfc +/* 5be0: 004f1025 */ or $v0,$v0,$t7 +.NB00005be4: +/* 5be4: 10000005 */ beqz $zero,.NB00005bfc +/* 5be8: 2402ffff */ addiu $v0,$zero,-1 +.NB00005bec: +/* 5bec: 44222000 */ dmfc1 $v0,$f4 +/* 5bf0: 00000000 */ sll $zero,$zero,0x0 +/* 5bf4: 0440fffb */ bltz $v0,.NB00005be4 +/* 5bf8: 00000000 */ sll $zero,$zero,0x0 +.NB00005bfc: +/* 5bfc: 44cef800 */ ctc1 $t6,$31 +/* 5c00: 0002183c */ dsll32 $v1,$v0,0x0 +/* 5c04: 0003183f */ dsra32 $v1,$v1,0x0 +/* 5c08: 03e00008 */ jr $ra +/* 5c0c: 0002103f */ dsra32 $v0,$v0,0x0 +); +#endif + GLOBAL_ASM( glabel __f_to_ull /* 5a7c: 444ef800 */ cfc1 $t6,$31 @@ -61,7 +124,38 @@ double __ll_to_d(long long s) return s; } +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func00005c28nb +/* 5c28: afa40000 */ sw $a0,0x0($sp) +/* 5c2c: afa50004 */ sw $a1,0x4($sp) +/* 5c30: dfae0000 */ ld $t6,0x0($sp) +/* 5c34: 44ae2000 */ dmtc1 $t6,$f4 +/* 5c38: 03e00008 */ jr $ra +/* 5c3c: 46a02020 */ cvt.s.l $f0,$f4 +); +#endif + float __ull_to_f(unsigned long long u) { return u; } + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func00005c70nb +/* 5c70: afa40000 */ sw $a0,0x0($sp) +/* 5c74: afa50004 */ sw $a1,0x4($sp) +/* 5c78: dfae0000 */ ld $t6,0x0($sp) +/* 5c7c: 44ae2000 */ dmtc1 $t6,$f4 +/* 5c80: 05c10005 */ bgez $t6,.NB00005c98 +/* 5c84: 46a02020 */ cvt.s.l $f0,$f4 +/* 5c88: 3c014f80 */ lui $at,0x4f80 +/* 5c8c: 44813000 */ mtc1 $at,$f6 +/* 5c90: 00000000 */ sll $zero,$zero,0x0 +/* 5c94: 46060000 */ add.s $f0,$f0,$f6 +.NB00005c98: +/* 5c98: 03e00008 */ jr $ra +/* 5c9c: 00000000 */ sll $zero,$zero,0x0 +); +#endif diff --git a/src/lib/ultra/os/atomic.c b/src/lib/ultra/os/atomic.c new file mode 100644 index 000000000..1bdf2f2bf --- /dev/null +++ b/src/lib/ultra/os/atomic.c @@ -0,0 +1,30 @@ +#include +#include "data.h" + +GLOBAL_ASM( +glabel __osAtomicDec +/* 4b730: 27bdffe0 */ addiu $sp,$sp,-32 +/* 4b734: afbf0014 */ sw $ra,0x14($sp) +/* 4b738: 0c012a60 */ jal 0x4a980 +/* 4b73c: afa40020 */ sw $a0,0x20($sp) +/* 4b740: 8fae0020 */ lw $t6,0x20($sp) +/* 4b744: afa2001c */ sw $v0,0x1c($sp) +/* 4b748: 8dcf0000 */ lw $t7,0x0($t6) +/* 4b74c: 11e00006 */ beqz $t7,.NB0004b768 +/* 4b750: 00000000 */ sll $zero,$zero,0x0 +/* 4b754: 25f8ffff */ addiu $t8,$t7,-1 +/* 4b758: add80000 */ sw $t8,0x0($t6) +/* 4b75c: 24190001 */ addiu $t9,$zero,0x1 +/* 4b760: 10000002 */ beqz $zero,.NB0004b76c +/* 4b764: afb90018 */ sw $t9,0x18($sp) +.NB0004b768: +/* 4b768: afa00018 */ sw $zero,0x18($sp) +.NB0004b76c: +/* 4b76c: 0c012a7c */ jal 0x4a9f0 +/* 4b770: 8fa4001c */ lw $a0,0x1c($sp) +/* 4b774: 8fbf0014 */ lw $ra,0x14($sp) +/* 4b778: 8fa20018 */ lw $v0,0x18($sp) +/* 4b77c: 27bd0020 */ addiu $sp,$sp,0x20 +/* 4b780: 03e00008 */ jr $ra +/* 4b784: 00000000 */ sll $zero,$zero,0x0 +); diff --git a/src/lib/ultra/os/getmemsize.c b/src/lib/ultra/os/getmemsize.c new file mode 100644 index 000000000..a71714316 --- /dev/null +++ b/src/lib/ultra/os/getmemsize.c @@ -0,0 +1,79 @@ +#include +#include "data.h" + +GLOBAL_ASM( +glabel osGetMemSize +/* 4f530: 27bdfff0 */ addiu $sp,$sp,-16 +/* 4f534: 3c0e0040 */ lui $t6,0x40 +/* 4f538: afae0008 */ sw $t6,0x8($sp) +.NB0004f53c: +/* 4f53c: 8faf0008 */ lw $t7,0x8($sp) +/* 4f540: 3c01a000 */ lui $at,0xa000 +/* 4f544: 3c19a000 */ lui $t9,0xa000 +/* 4f548: 01e1c021 */ addu $t8,$t7,$at +/* 4f54c: afb8000c */ sw $t8,0xc($sp) +/* 4f550: 032fc821 */ addu $t9,$t9,$t7 +/* 4f554: 8f390000 */ lw $t9,0x0($t9) +/* 4f558: 3c08a010 */ lui $t0,0xa010 +/* 4f55c: 010f4021 */ addu $t0,$t0,$t7 +/* 4f560: afb90004 */ sw $t9,0x4($sp) +/* 4f564: 8d08fffc */ lw $t0,-0x4($t0) +/* 4f568: 3c09a000 */ lui $t1,0xa000 +/* 4f56c: 012f4821 */ addu $t1,$t1,$t7 +/* 4f570: afa80000 */ sw $t0,0x0($sp) +/* 4f574: 8d290000 */ lw $t1,0x0($t1) +/* 4f578: 2401ffff */ addiu $at,$zero,-1 +/* 4f57c: 3c0c0010 */ lui $t4,0x10 +/* 4f580: 01215026 */ xor $t2,$t1,$at +/* 4f584: 3c01a000 */ lui $at,0xa000 +/* 4f588: 002f0821 */ addu $at,$at,$t7 +/* 4f58c: ac2a0000 */ sw $t2,0x0($at) +/* 4f590: 8fab000c */ lw $t3,0xc($sp) +/* 4f594: 2401ffff */ addiu $at,$zero,-1 +/* 4f598: 018b6021 */ addu $t4,$t4,$t3 +/* 4f59c: 8d8cfffc */ lw $t4,-0x4($t4) +/* 4f5a0: 01816826 */ xor $t5,$t4,$at +/* 4f5a4: 3c010010 */ lui $at,0x10 +/* 4f5a8: 002b0821 */ addu $at,$at,$t3 +/* 4f5ac: ac2dfffc */ sw $t5,-0x4($at) +/* 4f5b0: 8fae000c */ lw $t6,0xc($sp) +/* 4f5b4: 8fb90004 */ lw $t9,0x4($sp) +/* 4f5b8: 2401ffff */ addiu $at,$zero,-1 +/* 4f5bc: 8dd80000 */ lw $t8,0x0($t6) +/* 4f5c0: 03214026 */ xor $t0,$t9,$at +/* 4f5c4: 17080009 */ bne $t8,$t0,.NB0004f5ec +/* 4f5c8: 00000000 */ sll $zero,$zero,0x0 +/* 4f5cc: 3c090010 */ lui $t1,0x10 +/* 4f5d0: 8faa0000 */ lw $t2,0x0($sp) +/* 4f5d4: 012e4821 */ addu $t1,$t1,$t6 +/* 4f5d8: 8d29fffc */ lw $t1,-0x4($t1) +/* 4f5dc: 2401ffff */ addiu $at,$zero,-1 +/* 4f5e0: 01417826 */ xor $t7,$t2,$at +/* 4f5e4: 112f0003 */ beq $t1,$t7,.NB0004f5f4 +/* 4f5e8: 00000000 */ sll $zero,$zero,0x0 +.NB0004f5ec: +/* 4f5ec: 10000013 */ beqz $zero,.NB0004f63c +/* 4f5f0: 8fa20008 */ lw $v0,0x8($sp) +.NB0004f5f4: +/* 4f5f4: 8fac0004 */ lw $t4,0x4($sp) +/* 4f5f8: 8fad000c */ lw $t5,0xc($sp) +/* 4f5fc: 3c010010 */ lui $at,0x10 +/* 4f600: adac0000 */ sw $t4,0x0($t5) +/* 4f604: 8fb9000c */ lw $t9,0xc($sp) +/* 4f608: 8fab0000 */ lw $t3,0x0($sp) +/* 4f60c: 00390821 */ addu $at,$at,$t9 +/* 4f610: ac2bfffc */ sw $t3,-0x4($at) +/* 4f614: 8fb80008 */ lw $t8,0x8($sp) +/* 4f618: 3c010010 */ lui $at,0x10 +/* 4f61c: 03014021 */ addu $t0,$t8,$at +/* 4f620: afa80008 */ sw $t0,0x8($sp) +/* 4f624: 8fae0008 */ lw $t6,0x8($sp) +/* 4f628: 3c010080 */ lui $at,0x80 +/* 4f62c: 01c1082b */ sltu $at,$t6,$at +/* 4f630: 1420ffc2 */ bnez $at,.NB0004f53c +/* 4f634: 00000000 */ sll $zero,$zero,0x0 +/* 4f638: 8fa20008 */ lw $v0,0x8($sp) +.NB0004f63c: +/* 4f63c: 03e00008 */ jr $ra +/* 4f640: 27bd0010 */ addiu $sp,$sp,0x10 +);; diff --git a/src/lib/ultra/os/syncputchars.c b/src/lib/ultra/os/syncputchars.c new file mode 100644 index 000000000..398efa0a1 --- /dev/null +++ b/src/lib/ultra/os/syncputchars.c @@ -0,0 +1,71 @@ +#include +#include "data.h" + +GLOBAL_ASM( +glabel __osSyncPutChars +/* 4100: 27bdffc8 */ addiu $sp,$sp,-56 +/* 4104: 93a30034 */ lbu $v1,0x34($sp) +/* 4108: 0004c080 */ sll $t8,$a0,0x2 +/* 410c: 30aa0003 */ andi $t2,$a1,0x3 +/* 4110: 3079ff03 */ andi $t9,$v1,0xff03 +/* 4114: 03194025 */ or $t0,$t8,$t9 +/* 4118: 310bfffc */ andi $t3,$t0,0xfffc +/* 411c: 014b6025 */ or $t4,$t2,$t3 +/* 4120: afbf001c */ sw $ra,0x1c($sp) +/* 4124: afb00018 */ sw $s0,0x18($sp) +/* 4128: a3ac0034 */ sb $t4,0x34($sp) +/* 412c: 18a00009 */ blez $a1,.NB00004154 +/* 4130: 00001025 */ or $v0,$zero,$zero +/* 4134: 27a30034 */ addiu $v1,$sp,0x34 +/* 4138: 00c02025 */ or $a0,$a2,$zero +.NB0000413c: +/* 413c: 908d0000 */ lbu $t5,0x0($a0) +/* 4140: 24420001 */ addiu $v0,$v0,0x1 +/* 4144: 24630001 */ addiu $v1,$v1,0x1 +/* 4148: 24840001 */ addiu $a0,$a0,0x1 +/* 414c: 1445fffb */ bne $v0,$a1,.NB0000413c +/* 4150: a06d0000 */ sb $t5,0x0($v1) +.NB00004154: +/* 4154: 3c108006 */ lui $s0,0x8006 +/* 4158: 2610e6e4 */ addiu $s0,$s0,-6428 +/* 415c: 0c012dcc */ jal 0x4b730 +/* 4160: 02002025 */ or $a0,$s0,$zero +/* 4164: 14400005 */ bnez $v0,.NB0000417c +/* 4168: 00000000 */ sll $zero,$zero,0x0 +.NB0000416c: +/* 416c: 0c012dcc */ jal 0x4b730 +/* 4170: 02002025 */ or $a0,$s0,$zero +/* 4174: 1040fffd */ beqz $v0,.NB0000416c +/* 4178: 00000000 */ sll $zero,$zero,0x0 +.NB0000417c: +/* 417c: 0c012a60 */ jal 0x4a980 +/* 4180: 00000000 */ sll $zero,$zero,0x0 +/* 4184: afa2002c */ sw $v0,0x2c($sp) +/* 4188: 27ae0034 */ addiu $t6,$sp,0x34 +/* 418c: 8dcf0000 */ lw $t7,0x0($t6) +/* 4190: 3c18c000 */ lui $t8,0xc000 +/* 4194: 0c012de4 */ jal 0x4b790 +/* 4198: af0f0000 */ sw $t7,0x0($t8) +/* 419c: 30592000 */ andi $t9,$v0,0x2000 +/* 41a0: 57200007 */ bnezl $t9,.NB000041c0 +/* 41a4: 3c09c000 */ lui $t1,0xc000 +.NB000041a8: +/* 41a8: 0c012de4 */ jal 0x4b790 +/* 41ac: 00000000 */ sll $zero,$zero,0x0 +/* 41b0: 30482000 */ andi $t0,$v0,0x2000 +/* 41b4: 1100fffc */ beqz $t0,.NB000041a8 +/* 41b8: 00000000 */ sll $zero,$zero,0x0 +/* 41bc: 3c09c000 */ lui $t1,0xc000 +.NB000041c0: +/* 41c0: ad20000c */ sw $zero,0xc($t1) +/* 41c4: 8e0a0000 */ lw $t2,0x0($s0) +/* 41c8: 8fa4002c */ lw $a0,0x2c($sp) +/* 41cc: 254b0001 */ addiu $t3,$t2,0x1 +/* 41d0: 0c012a7c */ jal 0x4a9f0 +/* 41d4: ae0b0000 */ sw $t3,0x0($s0) +/* 41d8: 8fbf001c */ lw $ra,0x1c($sp) +/* 41dc: 8fb00018 */ lw $s0,0x18($sp) +/* 41e0: 27bd0038 */ addiu $sp,$sp,0x38 +/* 41e4: 03e00008 */ jr $ra +/* 41e8: 00000000 */ sll $zero,$zero,0x0 +);