From 64d382372e5005f26879382437e2e6aa3847c0cf Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sun, 4 Oct 2020 15:18:15 +1000 Subject: [PATCH] Rename many libultra files --- ld/libfiles.inc | 102 ++-- src/boot/boot.c | 7 - src/game/camdraw.c | 1 - src/game/chr/chr.c | 1 - src/game/chr/chraicommands.c | 1 - src/game/dlights.c | 1 - src/game/explosion.c | 1 - src/game/game_006bd0.c | 1 - src/game/game_015470.c | 1 - src/game/game_01afc0.c | 1 - src/game/game_0601b0.c | 1 - src/game/game_092610.c | 1 - src/game/game_095320.c | 1 - src/game/game_097ba0.c | 1 - src/game/game_0abe70.c | 1 - src/game/game_0b63b0.c | 1 - src/game/game_0d4690.c | 1 - src/game/game_0d5a90.c | 1 - src/game/game_0e0770.c | 1 - src/game/game_0f09f0.c | 2 - src/game/game_0fd660.c | 1 - src/game/game_12f6c0.c | 1 - src/game/game_1371b0.c | 1 - src/game/game_150820.c | 1 - src/game/game_1531a0.c | 1 - src/game/game_157db0.c | 6 +- src/game/game_167ae0.c | 1 - src/game/game_16e810.c | 5 +- src/game/gamefile.c | 2 +- src/game/pak/pak.c | 2 - src/game/propobj.c | 1 - src/game/smoke.c | 1 - src/game/timing.c | 1 - src/game/wallhit.c | 1 - src/game/weather.c | 2 - src/include/lib/lib_03050.h | 12 - src/include/lib/lib_034f0.h | 13 - src/include/lib/lib_03ee0.h | 9 - src/include/lib/lib_04a80.h | 9 - src/include/lib/lib_05a60.h | 11 + src/include/lib/lib_05dc0.h | 8 + src/include/lib/lib_34d0.h | 9 + src/include/lib/lib_481e0.h | 13 - src/include/lib/lib_48520.h | 8 - src/include/lib/lib_48650.h | 9 - src/include/lib/lib_488e0.h | 9 - src/include/lib/lib_48b20.h | 8 - src/include/lib/lib_491b0.h | 13 - src/include/lib/lib_49640.h | 8 - src/include/lib/lib_49780.h | 1 - src/include/lib/lib_49a90.h | 10 - src/include/lib/lib_49c20.h | 10 - src/include/lib/lib_4a810.h | 6 - src/include/lib/lib_4a980.h | 9 - src/include/lib/lib_4acc0.h | 9 - src/include/lib/lib_4ace0.h | 8 - src/include/lib/lib_4ad30.h | 8 - src/include/lib/lib_4ad80.h | 8 - src/include/lib/lib_4b160.h | 8 - src/include/lib/lib_4b170.h | 2 +- src/include/lib/lib_4b480.h | 8 - src/include/lib/lib_4b5e0.h | 2 - src/include/lib/lib_4ba90.h | 13 - src/include/lib/lib_4e470.h | 1 - src/include/lib/lib_4e530.h | 8 - src/include/lib/lib_4f350.h | 6 - src/include/lib/lib_4f400.h | 9 - src/include/lib/lib_50130.h | 8 - src/include/lib/lib_51880.h | 8 - src/include/lib/lib_51890.h | 1 - src/include/lib/lib_51900.h | 8 - src/include/lib/lib_51a60.h | 9 - src/include/lib/lib_51c10.h | 8 - src/include/lib/lib_51c60.h | 9 - src/include/lib/lib_52070.h | 9 - src/include/lib/lib_520c0.h | 8 + src/lib/lib_034d0.c | 19 + src/lib/lib_04a80.c | 508 ------------------ src/lib/lib_05a60.c | 104 ++++ src/lib/lib_05dc0.c | 37 ++ src/lib/lib_05e40.c | 4 +- src/lib/lib_06100.c | 4 - src/lib/lib_06330.c | 2 - src/lib/lib_06550.c | 4 +- src/lib/lib_070d0.c | 1 - src/lib/lib_08a20.c | 4 - src/lib/lib_09660.c | 6 +- src/lib/lib_0c000.c | 5 - src/lib/lib_0d0a0.c | 3 - src/lib/lib_0d520.c | 5 - src/lib/lib_0e9d0.c | 1 - src/lib/lib_12dc0.c | 1 - src/lib/lib_13710.c | 1 - src/lib/lib_13750.c | 1 - src/lib/lib_13900.c | 9 +- src/lib/lib_159b0.c | 2 - src/lib/lib_1a500.c | 1 - src/lib/lib_233c0.c | 2 +- src/lib/lib_317f0.c | 2 - src/lib/lib_34030.c | 2 - src/lib/lib_37b00.c | 3 +- src/lib/lib_3a100.c | 1 - src/lib/lib_3c4d0.c | 5 +- src/lib/lib_3e730.c | 7 +- src/lib/lib_43dd0.c | 2 +- src/lib/lib_44bc0.c | 1 - src/lib/lib_44f60.c | 3 +- src/lib/lib_47a90.c | 1 - src/lib/lib_481e0.c | 260 --------- src/lib/lib_485e0.c | 1 - src/lib/lib_48830.c | 1 - src/lib/lib_48cd0.c | 1 - src/lib/lib_48dc0.c | 1 - src/lib/lib_48ef0.c | 1 - src/lib/lib_48f50.c | 1 - src/lib/lib_490b0.c | 2 - src/lib/lib_49780.c | 209 ------- src/lib/lib_49a90.c | 139 ----- src/lib/lib_4a810.c | 133 ----- src/lib/lib_4acc0.c | 27 - src/lib/lib_4b160.c | 19 - src/lib/lib_4b170.c | 2 +- src/lib/lib_4b550.c | 1 - src/lib/lib_4b5e0.c | 322 ----------- src/lib/lib_4c090.c | 7 +- src/lib/lib_4cc10.c | 1 - src/lib/lib_4d000.c | 6 +- src/lib/lib_4d6f0.c | 58 -- src/lib/lib_4e3c0.c | 1 - src/lib/lib_4e470.c | 53 -- src/lib/lib_4e640.c | 9 + src/lib/lib_4e690.c | 1 - src/lib/lib_4f5e0.c | 2 - src/lib/lib_50480.c | 1 - src/lib/lib_50a00.c | 7 +- src/lib/lib_513b0.c | 4 +- src/lib/lib_51880.c | 19 - src/lib/lib_51890.c | 29 - src/lib/lib_51ec0.c | 126 ----- src/lib/{lib_52070.c => lib_520c0.c} | 41 +- src/lib/ultra/io/conteeplongread.c | 45 ++ .../io/conteeplongwrite.c} | 17 +- src/lib/ultra/io/conteepprobe.c | 36 ++ .../{lib_50130.c => ultra/io/conteepread.c} | 99 +--- .../{lib_4ba90.c => ultra/io/conteepwrite.c} | 180 +------ src/lib/{lib_4f350.c => ultra/io/contquery.c} | 19 +- src/lib/ultra/io/contramread.c | 156 ++++++ src/lib/ultra/io/contramwrite.c | 165 ++++++ .../{lib_4f400.c => ultra/io/contreaddata.c} | 12 - .../{lib_4a980.c => ultra/io/controller.c} | 24 +- src/lib/{lib_49c20.c => ultra/io/devmgr.c} | 264 +-------- src/lib/ultra/io/epirawdma.c | 141 +++++ .../{lib_51a60.c => ultra/io/epirawread.c} | 37 +- .../{lib_51900.c => ultra/io/epirawwrite.c} | 14 +- src/lib/ultra/io/pfsgetstatus.c | 164 ++++++ src/lib/ultra/io/pfsisplug.c | 215 ++++++++ src/lib/ultra/io/piacs.c | 62 +++ src/lib/{lib_4e530.c => ultra/io/pidma.c} | 44 +- src/lib/ultra/io/pigetcmdq.c | 18 + src/lib/ultra/io/pimgr.c | 101 ++++ src/lib/ultra/io/pirawdma.c | 63 +++ src/lib/ultra/io/pirawread.c | 27 + src/lib/ultra/io/piread.c | 21 + src/lib/ultra/io/si.c | 19 + src/lib/ultra/io/siacs.c | 62 +++ src/lib/ultra/io/sirawdma.c | 55 ++ src/lib/{lib_4ace0.c => ultra/io/sirawread.c} | 15 +- .../{lib_4ad30.c => ultra/io/sirawwrite.c} | 15 +- src/lib/{lib_49640.c => ultra/io/vi.c} | 16 +- src/lib/{lib_03050.c => ultra/io/vimgr.c} | 141 +---- src/lib/ultra/io/viswapcontext.c | 209 +++++++ src/lib/ultra/os/createmesgqueue.c | 17 + .../{lib_03ee0.c => ultra/os/createthread.c} | 15 +- src/lib/ultra/os/destroythread.c | 80 +++ src/lib/{lib_034f0.c => ultra/os/exceptasm.c} | 45 +- src/lib/ultra/os/getcause.c | 9 + src/lib/ultra/os/getcount.c | 9 + src/lib/ultra/os/getsr.c | 9 + src/lib/ultra/os/initialize.c | 167 ++++++ src/lib/ultra/os/interrupt.c | 46 ++ src/lib/ultra/os/invaldcache.c | 54 ++ .../{lib_48150.c => ultra/os/invalicache.c} | 14 +- src/lib/ultra/os/jammesg.c | 97 ++++ src/lib/ultra/os/maptlb.c | 59 ++ src/lib/{lib_51c60.c => ultra/os/probetlb.c} | 32 +- src/lib/{lib_48650.c => ultra/os/recvmesg.c} | 62 +-- src/lib/ultra/os/resetglobalintmask.c | 29 + src/lib/{lib_488e0.c => ultra/os/sendmesg.c} | 84 +-- src/lib/ultra/os/setcompare.c | 9 + .../{lib_48520.c => ultra/os/seteventmesg.c} | 16 +- src/lib/ultra/os/setfpccsr.c | 9 + src/lib/ultra/os/setglobalintmask.c | 25 + src/lib/ultra/os/setintmask.c | 46 ++ src/lib/ultra/os/setsr.c | 9 + src/lib/ultra/os/setthreadpri.c | 64 +++ src/lib/{lib_48b20.c => ultra/os/settimer.c} | 15 +- src/lib/ultra/os/startthread.c | 95 ++++ src/lib/ultra/os/stopthread.c | 58 ++ src/lib/ultra/os/stoptimer.c | 69 +++ src/lib/ultra/os/thread.c | 24 + src/lib/{lib_491b0.c => ultra/os/timerintr.c} | 61 +-- .../os/virtualtophysical.c} | 15 +- .../os/writebackdcache.c} | 14 +- .../{lib_51c10.c => ultra/os/yieldthread.c} | 16 +- 204 files changed, 2910 insertions(+), 3643 deletions(-) delete mode 100644 src/include/lib/lib_03050.h delete mode 100644 src/include/lib/lib_034f0.h delete mode 100644 src/include/lib/lib_03ee0.h create mode 100644 src/include/lib/lib_05a60.h create mode 100644 src/include/lib/lib_05dc0.h create mode 100644 src/include/lib/lib_34d0.h delete mode 100644 src/include/lib/lib_481e0.h delete mode 100644 src/include/lib/lib_48520.h delete mode 100644 src/include/lib/lib_48650.h delete mode 100644 src/include/lib/lib_488e0.h delete mode 100644 src/include/lib/lib_48b20.h delete mode 100644 src/include/lib/lib_491b0.h delete mode 100644 src/include/lib/lib_49640.h delete mode 100644 src/include/lib/lib_49a90.h delete mode 100644 src/include/lib/lib_49c20.h delete mode 100644 src/include/lib/lib_4a810.h delete mode 100644 src/include/lib/lib_4a980.h delete mode 100644 src/include/lib/lib_4acc0.h delete mode 100644 src/include/lib/lib_4ace0.h delete mode 100644 src/include/lib/lib_4ad30.h delete mode 100644 src/include/lib/lib_4ad80.h delete mode 100644 src/include/lib/lib_4b160.h delete mode 100644 src/include/lib/lib_4b480.h delete mode 100644 src/include/lib/lib_4ba90.h delete mode 100644 src/include/lib/lib_4e530.h delete mode 100644 src/include/lib/lib_4f350.h delete mode 100644 src/include/lib/lib_4f400.h delete mode 100644 src/include/lib/lib_50130.h delete mode 100644 src/include/lib/lib_51880.h delete mode 100644 src/include/lib/lib_51900.h delete mode 100644 src/include/lib/lib_51a60.h delete mode 100644 src/include/lib/lib_51c10.h delete mode 100644 src/include/lib/lib_51c60.h delete mode 100644 src/include/lib/lib_52070.h create mode 100644 src/include/lib/lib_520c0.h create mode 100644 src/lib/lib_034d0.c create mode 100644 src/lib/lib_05a60.c create mode 100644 src/lib/lib_05dc0.c delete mode 100644 src/lib/lib_481e0.c delete mode 100644 src/lib/lib_49a90.c delete mode 100644 src/lib/lib_4a810.c delete mode 100644 src/lib/lib_4acc0.c delete mode 100644 src/lib/lib_4b160.c create mode 100644 src/lib/lib_4e640.c delete mode 100644 src/lib/lib_51880.c rename src/lib/{lib_52070.c => lib_520c0.c} (85%) create mode 100644 src/lib/ultra/io/conteeplongread.c rename src/lib/{lib_06440.c => ultra/io/conteeplongwrite.c} (88%) create mode 100644 src/lib/ultra/io/conteepprobe.c rename src/lib/{lib_50130.c => ultra/io/conteepread.c} (66%) rename src/lib/{lib_4ba90.c => ultra/io/conteepwrite.c} (61%) rename src/lib/{lib_4f350.c => ultra/io/contquery.c} (81%) create mode 100644 src/lib/ultra/io/contramread.c create mode 100644 src/lib/ultra/io/contramwrite.c rename src/lib/{lib_4f400.c => ultra/io/contreaddata.c} (92%) rename src/lib/{lib_4a980.c => ultra/io/controller.c} (94%) rename src/lib/{lib_49c20.c => ultra/io/devmgr.c} (53%) create mode 100644 src/lib/ultra/io/epirawdma.c rename src/lib/{lib_51a60.c => ultra/io/epirawread.c} (75%) rename src/lib/{lib_51900.c => ultra/io/epirawwrite.c} (92%) create mode 100644 src/lib/ultra/io/pfsgetstatus.c create mode 100644 src/lib/ultra/io/pfsisplug.c create mode 100644 src/lib/ultra/io/piacs.c rename src/lib/{lib_4e530.c => ultra/io/pidma.c} (69%) create mode 100644 src/lib/ultra/io/pigetcmdq.c create mode 100644 src/lib/ultra/io/pimgr.c create mode 100644 src/lib/ultra/io/pirawdma.c create mode 100644 src/lib/ultra/io/pirawread.c create mode 100644 src/lib/ultra/io/piread.c create mode 100644 src/lib/ultra/io/si.c create mode 100644 src/lib/ultra/io/siacs.c create mode 100644 src/lib/ultra/io/sirawdma.c rename src/lib/{lib_4ace0.c => ultra/io/sirawread.c} (71%) rename src/lib/{lib_4ad30.c => ultra/io/sirawwrite.c} (70%) rename src/lib/{lib_49640.c => ultra/io/vi.c} (90%) rename src/lib/{lib_03050.c => ultra/io/vimgr.c} (63%) create mode 100644 src/lib/ultra/io/viswapcontext.c create mode 100644 src/lib/ultra/os/createmesgqueue.c rename src/lib/{lib_03ee0.c => ultra/os/createthread.c} (86%) create mode 100644 src/lib/ultra/os/destroythread.c rename src/lib/{lib_034f0.c => ultra/os/exceptasm.c} (96%) create mode 100644 src/lib/ultra/os/getcause.c create mode 100644 src/lib/ultra/os/getcount.c create mode 100644 src/lib/ultra/os/getsr.c create mode 100644 src/lib/ultra/os/initialize.c create mode 100644 src/lib/ultra/os/interrupt.c create mode 100644 src/lib/ultra/os/invaldcache.c rename src/lib/{lib_48150.c => ultra/os/invalicache.c} (80%) create mode 100644 src/lib/ultra/os/jammesg.c create mode 100644 src/lib/ultra/os/maptlb.c rename src/lib/{lib_51c60.c => ultra/os/probetlb.c} (68%) rename src/lib/{lib_48650.c => ultra/os/recvmesg.c} (61%) create mode 100644 src/lib/ultra/os/resetglobalintmask.c rename src/lib/{lib_488e0.c => ultra/os/sendmesg.c} (54%) create mode 100644 src/lib/ultra/os/setcompare.c rename src/lib/{lib_48520.c => ultra/os/seteventmesg.c} (84%) create mode 100644 src/lib/ultra/os/setfpccsr.c create mode 100644 src/lib/ultra/os/setglobalintmask.c create mode 100644 src/lib/ultra/os/setintmask.c create mode 100644 src/lib/ultra/os/setsr.c create mode 100644 src/lib/ultra/os/setthreadpri.c rename src/lib/{lib_48b20.c => ultra/os/settimer.c} (87%) create mode 100644 src/lib/ultra/os/startthread.c create mode 100644 src/lib/ultra/os/stopthread.c create mode 100644 src/lib/ultra/os/stoptimer.c create mode 100644 src/lib/ultra/os/thread.c rename src/lib/{lib_491b0.c => ultra/os/timerintr.c} (85%) rename src/lib/{lib_4b480.c => ultra/os/virtualtophysical.c} (79%) rename src/lib/{lib_4ad80.c => ultra/os/writebackdcache.c} (80%) rename src/lib/{lib_51c10.c => ultra/os/yieldthread.c} (70%) diff --git a/ld/libfiles.inc b/ld/libfiles.inc index d38e34484..439ebc813 100644 --- a/ld/libfiles.inc +++ b/ld/libfiles.inc @@ -1,16 +1,22 @@ #define LIBFILES(section) \ - build/ROMID/lib/lib_03050.o (section); \ - build/ROMID/lib/lib_034f0.o (section); \ - build/ROMID/lib/lib_03ee0.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/lib_03fb0.o (section); \ build/ROMID/lib/lib_04320.o (section); \ build/ROMID/lib/lib_04790.o (section); \ build/ROMID/lib/lib_04840.o (section); \ build/ROMID/lib/lib_04a80.o (section); \ + build/ROMID/lib/ultra/io/pfsisplug.o (section); \ + build/ROMID/lib/lib_05a60.o (section); \ + build/ROMID/lib/ultra/os/initialize.o (section); \ + build/ROMID/lib/lib_05dc0.o (section); \ build/ROMID/lib/lib_05e40.o (section); \ build/ROMID/lib/lib_06100.o (section); \ build/ROMID/lib/lib_06330.o (section); \ - build/ROMID/lib/lib_06440.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); \ @@ -72,43 +78,61 @@ build/ROMID/lib/lib_47a90.o (section); \ build/ROMID/lib/lib_47d20.o (section); \ build/ROMID/lib/lib_48120.o (section); \ - build/ROMID/lib/lib_48150.o (section); \ + build/ROMID/lib/ultra/os/invalicache.o (section); \ build/ROMID/lib/lib_481d0.o (section); \ - build/ROMID/lib/lib_481e0.o (section); \ - build/ROMID/lib/lib_48520.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/lib_485e0.o (section); \ - build/ROMID/lib/lib_48650.o (section); \ + build/ROMID/lib/ultra/os/setintmask.o (section); \ + build/ROMID/lib/ultra/os/recvmesg.o (section); \ build/ROMID/lib/lib_48830.o (section); \ - build/ROMID/lib/lib_488e0.o (section); \ - build/ROMID/lib/lib_48b20.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/lib_48c00.o (section); \ build/ROMID/lib/lib_48cd0.o (section); \ build/ROMID/lib/lib_48dc0.o (section); \ build/ROMID/lib/lib_48ef0.o (section); \ build/ROMID/lib/lib_48f50.o (section); \ build/ROMID/lib/lib_490b0.o (section); \ - build/ROMID/lib/lib_491b0.o (section); \ - build/ROMID/lib/lib_49640.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/lib_49780.o (section); \ - build/ROMID/lib/lib_49a90.o (section); \ - build/ROMID/lib/lib_49c20.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/lib_4a360.o (section); \ build/ROMID/lib/lib_4a5e0.o (section); \ build/ROMID/lib/lib_4a680.o (section); \ - build/ROMID/lib/lib_4a810.o (section); \ - build/ROMID/lib/lib_4a980.o (section); \ - build/ROMID/lib/lib_4acc0.o (section); \ - build/ROMID/lib/lib_4ace0.o (section); \ - build/ROMID/lib/lib_4ad30.o (section); \ - build/ROMID/lib/lib_4ad80.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/lib_4ae00.o (section); \ - build/ROMID/lib/lib_4b160.o (section); \ + build/ROMID/lib/ultra/os/getcause.o (section); \ build/ROMID/lib/lib_4b170.o (section); \ - build/ROMID/lib/lib_4b480.o (section); \ + build/ROMID/lib/ultra/os/virtualtophysical.o (section); \ build/ROMID/lib/lib_4b500.o (section); \ build/ROMID/lib/lib_4b550.o (section); \ build/ROMID/lib/lib_4b5e0.o (section); \ - build/ROMID/lib/lib_4ba90.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/lib_4cde0.o (section); \ @@ -116,29 +140,41 @@ 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/lib_4e270.o (section); \ build/ROMID/lib/lib_4e3c0.o (section); \ build/ROMID/lib/lib_4e470.o (section); \ - build/ROMID/lib/lib_4e530.o (section); \ + build/ROMID/lib/ultra/os/invaldcache.o (section); \ + build/ROMID/lib/ultra/io/pidma.o (section); \ + build/ROMID/lib/lib_4e640.o (section); \ + build/ROMID/lib/ultra/io/piread.o (section); \ build/ROMID/lib/lib_4e690.o (section); \ - build/ROMID/lib/lib_4f350.o (section); \ - build/ROMID/lib/lib_4f400.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/lib_4fe20.o (section); \ build/ROMID/lib/lib_4fff0.o (section); \ build/ROMID/lib/lib_50090.o (section); \ - build/ROMID/lib/lib_50130.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_50a00.o (section); \ build/ROMID/lib/lib_50f20.o (section); \ build/ROMID/lib/lib_513b0.o (section); \ - build/ROMID/lib/lib_51880.o (section); \ + build/ROMID/lib/ultra/os/setcompare.o (section); \ build/ROMID/lib/lib_51890.o (section); \ - build/ROMID/lib/lib_51900.o (section); \ - build/ROMID/lib/lib_51a60.o (section); \ - build/ROMID/lib/lib_51c10.o (section); \ - build/ROMID/lib/lib_51c60.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/lib_51d50.o (section); \ build/ROMID/lib/lib_51ec0.o (section); \ - build/ROMID/lib/lib_52070.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/lib_520c0.o (section); \ build/ROMID/lib/lib_52360.o (section); diff --git a/src/boot/boot.c b/src/boot/boot.c index 64a9d911e..7f0bab991 100644 --- a/src/boot/boot.c +++ b/src/boot/boot.c @@ -10,8 +10,6 @@ #include "game/data/data_02da90.h" #include "game/game_0e0770.h" #include "gvars/gvars.h" -#include "lib/lib_03050.h" -#include "lib/lib_03ee0.h" #include "lib/lib_04a80.h" #include "lib/lib_05e40.h" #include "lib/lib_074f0.h" @@ -28,13 +26,8 @@ #include "lib/lib_48120.h" #include "lib/lib_48150.h" #include "lib/lib_481d0.h" -#include "lib/lib_481e0.h" -#include "lib/lib_48520.h" #include "lib/lib_485e0.h" -#include "lib/lib_48650.h" #include "lib/lib_48830.h" -#include "lib/lib_488e0.h" -#include "lib/lib_48b20.h" #include "lib/lib_48c00.h" #include "lib/lib_48cd0.h" #include "lib/lib_48dc0.h" diff --git a/src/game/camdraw.c b/src/game/camdraw.c index 9f292e5e4..8ecdb95cb 100644 --- a/src/game/camdraw.c +++ b/src/game/camdraw.c @@ -24,7 +24,6 @@ #include "lib/lib_12dc0.h" #include "lib/lib_16110.h" #include "lib/lib_1a500.h" -#include "lib/lib_481e0.h" #include "lib/lib_4a360.h" #include "lib/lib_4a5e0.h" #include "lib/lib_4ae00.h" diff --git a/src/game/chr/chr.c b/src/game/chr/chr.c index 9dc45ab02..d42628dd9 100644 --- a/src/game/chr/chr.c +++ b/src/game/chr/chr.c @@ -49,7 +49,6 @@ #include "lib/lib_1a500.h" #include "lib/lib_233c0.h" #include "lib/lib_4a360.h" -#include "lib/lib_4b480.h" #include "types.h" const char var7f1a8690[] = "chr/chr.c"; diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index 0dfcfaf6b..dedcc7776 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -57,7 +57,6 @@ #include "lib/lib_1a500.h" #include "lib/lib_233c0.h" #include "lib/lib_317f0.h" -#include "lib/lib_481e0.h" #include "lib/lib_48830.h" #include "lib/lib_4ae00.h" #include "types.h" diff --git a/src/game/dlights.c b/src/game/dlights.c index d4ee5e2da..35e8505f7 100644 --- a/src/game/dlights.c +++ b/src/game/dlights.c @@ -29,7 +29,6 @@ #include "lib/lib_16110.h" #include "lib/lib_2f490.h" #include "lib/lib_317f0.h" -#include "lib/lib_481e0.h" #include "lib/lib_4a360.h" #include "types.h" diff --git a/src/game/explosion.c b/src/game/explosion.c index 9774cf4b1..25bbe196a 100644 --- a/src/game/explosion.c +++ b/src/game/explosion.c @@ -30,7 +30,6 @@ #include "lib/lib_16110.h" #include "lib/lib_233c0.h" #include "lib/lib_4a360.h" -#include "lib/lib_4b480.h" #include "types.h" const char var7f1b5230[] = "VTXSTORE : vtxfixrefs -> Start - p1=%x, p2=%x\n"; diff --git a/src/game/game_006bd0.c b/src/game/game_006bd0.c index 0f9912080..c47c3918c 100644 --- a/src/game/game_006bd0.c +++ b/src/game/game_006bd0.c @@ -28,7 +28,6 @@ #include "lib/lib_16110.h" #include "lib/lib_317f0.h" #include "lib/lib_4a360.h" -#include "lib/lib_4b480.h" #include "types.h" const u32 var7f1a7e80[] = {0x00000092}; diff --git a/src/game/game_015470.c b/src/game/game_015470.c index 0976e582d..284369953 100644 --- a/src/game/game_015470.c +++ b/src/game/game_015470.c @@ -17,7 +17,6 @@ #include "lib/lib_09660.h" #include "lib/lib_0d0a0.h" #include "lib/lib_317f0.h" -#include "lib/lib_4b480.h" #include "types.h" const u32 var7f1a83b0[] = {0x459c4000}; diff --git a/src/game/game_01afc0.c b/src/game/game_01afc0.c index 38174e664..01c57af2b 100644 --- a/src/game/game_01afc0.c +++ b/src/game/game_01afc0.c @@ -9,7 +9,6 @@ #include "game/data/data_02da90.h" #include "gvars/gvars.h" #include "lib/lib_09660.h" -#include "lib/lib_4b480.h" #include "types.h" GLOBAL_ASM( diff --git a/src/game/game_0601b0.c b/src/game/game_0601b0.c index 6aec4f8e1..f2b869802 100644 --- a/src/game/game_0601b0.c +++ b/src/game/game_0601b0.c @@ -40,7 +40,6 @@ #include "lib/lib_1a500.h" #include "lib/lib_233c0.h" #include "lib/lib_317f0.h" -#include "lib/lib_481e0.h" #include "lib/lib_48830.h" #include "lib/lib_4a360.h" #include "types.h" diff --git a/src/game/game_092610.c b/src/game/game_092610.c index e3b6fd67d..bc90639e2 100644 --- a/src/game/game_092610.c +++ b/src/game/game_092610.c @@ -21,7 +21,6 @@ #include "lib/lib_12dc0.h" #include "lib/lib_16110.h" #include "lib/lib_317f0.h" -#include "lib/lib_481e0.h" #include "lib/lib_48830.h" #include "lib/lib_4a360.h" #include "types.h" diff --git a/src/game/game_095320.c b/src/game/game_095320.c index bb6d5aff1..072a5b1b7 100644 --- a/src/game/game_095320.c +++ b/src/game/game_095320.c @@ -26,7 +26,6 @@ #include "lib/lib_12dc0.h" #include "lib/lib_13130.h" #include "lib/lib_159b0.h" -#include "lib/lib_49a90.h" #include "types.h" u32 xorBaffbeff(u32 value) diff --git a/src/game/game_097ba0.c b/src/game/game_097ba0.c index 30d0da737..fc56280f8 100644 --- a/src/game/game_097ba0.c +++ b/src/game/game_097ba0.c @@ -57,7 +57,6 @@ #include "lib/lib_1a500.h" #include "lib/lib_233c0.h" #include "lib/lib_317f0.h" -#include "lib/lib_481e0.h" #include "lib/lib_48830.h" #include "lib/lib_4a360.h" #include "types.h" diff --git a/src/game/game_0abe70.c b/src/game/game_0abe70.c index 5ff960b19..97ff9bf2d 100644 --- a/src/game/game_0abe70.c +++ b/src/game/game_0abe70.c @@ -22,7 +22,6 @@ #include "lib/lib_16110.h" #include "lib/lib_1a500.h" #include "lib/lib_4a360.h" -#include "lib/lib_4b480.h" #include "types.h" const u32 var7f1acc10[] = {0x73703100}; diff --git a/src/game/game_0b63b0.c b/src/game/game_0b63b0.c index 951f003fa..a9d8c8d39 100644 --- a/src/game/game_0b63b0.c +++ b/src/game/game_0b63b0.c @@ -70,7 +70,6 @@ #include "lib/lib_233c0.h" #include "lib/lib_317f0.h" #include "lib/lib_4a360.h" -#include "lib/lib_4b480.h" #include "types.h" const char var7f1ad160[] = "ACOUSTIC -> Allocating %d bytes for %d portal AV structures\n"; diff --git a/src/game/game_0d4690.c b/src/game/game_0d4690.c index 60c797514..2d34a2cde 100644 --- a/src/game/game_0d4690.c +++ b/src/game/game_0d4690.c @@ -17,7 +17,6 @@ #include "lib/lib_13130.h" #include "lib/lib_159b0.h" #include "lib/lib_16110.h" -#include "lib/lib_4b480.h" #include "lib/lib_4fe20.h" #include "types.h" diff --git a/src/game/game_0d5a90.c b/src/game/game_0d5a90.c index d7f792955..f0f91ebe3 100644 --- a/src/game/game_0d5a90.c +++ b/src/game/game_0d5a90.c @@ -13,7 +13,6 @@ #include "game/game_166e40.h" #include "gvars/gvars.h" #include "lib/lib_0d520.h" -#include "lib/lib_4b480.h" #include "types.h" const char var7f1adbf0[] = "radmax"; diff --git a/src/game/game_0e0770.c b/src/game/game_0e0770.c index 2e2eab284..ed4bd00a6 100644 --- a/src/game/game_0e0770.c +++ b/src/game/game_0e0770.c @@ -21,7 +21,6 @@ #include "lib/lib_12dc0.h" #include "lib/lib_159b0.h" #include "lib/lib_16110.h" -#include "lib/lib_4b480.h" #include "types.h" const u32 var7f1adf00[] = {0x63636363}; diff --git a/src/game/game_0f09f0.c b/src/game/game_0f09f0.c index b4e0c8520..7ba902992 100644 --- a/src/game/game_0f09f0.c +++ b/src/game/game_0f09f0.c @@ -50,9 +50,7 @@ #include "lib/lib_16110.h" #include "lib/lib_1a500.h" #include "lib/lib_317f0.h" -#include "lib/lib_481e0.h" #include "lib/lib_48830.h" -#include "lib/lib_4b480.h" #include "types.h" const struct menucolourpalette g_MenuColourPalettes[] = { diff --git a/src/game/game_0fd660.c b/src/game/game_0fd660.c index 4366cbd7c..3f932a96c 100644 --- a/src/game/game_0fd660.c +++ b/src/game/game_0fd660.c @@ -30,7 +30,6 @@ #include "lib/lib_0d520.h" #include "lib/lib_13130.h" #include "lib/lib_16110.h" -#include "lib/lib_4b480.h" #include "types.h" const u32 var7f1b2b20[] = {0x00010603}; diff --git a/src/game/game_12f6c0.c b/src/game/game_12f6c0.c index 29a75ed87..9a4b6d2d8 100644 --- a/src/game/game_12f6c0.c +++ b/src/game/game_12f6c0.c @@ -17,7 +17,6 @@ #include "lib/lib_12dc0.h" #include "lib/lib_159b0.h" #include "lib/lib_4a360.h" -#include "lib/lib_4b480.h" #include "types.h" const u32 var7f1b5600[] = {0xb8d1b717}; diff --git a/src/game/game_1371b0.c b/src/game/game_1371b0.c index e87825fa0..86ac2ce58 100644 --- a/src/game/game_1371b0.c +++ b/src/game/game_1371b0.c @@ -28,7 +28,6 @@ #include "lib/lib_13900.h" #include "lib/lib_159b0.h" #include "lib/lib_16110.h" -#include "lib/lib_4b480.h" #include "types.h" const u32 var7f1b57c0[] = {0x746c6f61}; diff --git a/src/game/game_150820.c b/src/game/game_150820.c index 40888518a..28d75f69b 100644 --- a/src/game/game_150820.c +++ b/src/game/game_150820.c @@ -18,7 +18,6 @@ #include "lib/lib_159b0.h" #include "lib/lib_16110.h" #include "lib/lib_4a360.h" -#include "lib/lib_4b480.h" #include "types.h" const u32 var7f1b7370[] = {0x3dcccccd}; diff --git a/src/game/game_1531a0.c b/src/game/game_1531a0.c index 16a644be6..6eb7d2983 100644 --- a/src/game/game_1531a0.c +++ b/src/game/game_1531a0.c @@ -18,7 +18,6 @@ #include "lib/lib_0d520.h" #include "lib/lib_121e0.h" #include "lib/lib_4a360.h" -#include "lib/lib_4b480.h" #include "types.h" const char var7f1b73b0[] = "burncol"; diff --git a/src/game/game_157db0.c b/src/game/game_157db0.c index 156afb815..3ca1d5ec7 100644 --- a/src/game/game_157db0.c +++ b/src/game/game_157db0.c @@ -45,8 +45,6 @@ #include "lib/lib_2f490.h" #include "lib/lib_4a360.h" #include "lib/lib_4b170.h" -#include "lib/lib_4b480.h" -#include "lib/lib_4e530.h" #include "types.h" const char var7f1b7420[] = "Checking Convex Room %d"; @@ -3636,7 +3634,7 @@ glabel func0f15b1c4 /* f15b1e4: 3c0f8008 */ lui $t7,%hi(var8007fc08) /* f15b1e8: 8deffc08 */ lw $t7,%lo(var8007fc08)($t7) /* f15b1ec: 01e52021 */ addu $a0,$t7,$a1 -/* f15b1f0: 0c012c5c */ jal alCopy +/* f15b1f0: 0c012c5c */ jal func0004b170 /* f15b1f4: 8fa50018 */ lw $a1,0x18($sp) /* f15b1f8: 1000000d */ b .L0f15b230 /* f15b1fc: 8fbf0014 */ lw $ra,0x14($sp) @@ -7460,7 +7458,7 @@ glabel func0f15d9a8 /* f15d9d8: 10000004 */ b .L0f15d9ec /* f15d9dc: 00401825 */ or $v1,$v0,$zero .L0f15d9e0: -/* f15d9e0: 0c012c5c */ jal alCopy +/* f15d9e0: 0c012c5c */ jal func0004b170 /* f15d9e4: afa6141c */ sw $a2,0x141c($sp) /* f15d9e8: 8fa3141c */ lw $v1,0x141c($sp) .L0f15d9ec: diff --git a/src/game/game_167ae0.c b/src/game/game_167ae0.c index 42d8fa81b..53d85f270 100644 --- a/src/game/game_167ae0.c +++ b/src/game/game_167ae0.c @@ -110,7 +110,6 @@ #include "lib/lib_233c0.h" #include "lib/lib_317f0.h" #include "lib/lib_4a360.h" -#include "lib/lib_4e530.h" #include "types.h" u32 var80084010 = 0; diff --git a/src/game/game_16e810.c b/src/game/game_16e810.c index 28bf8cb3c..7b160b5d3 100644 --- a/src/game/game_16e810.c +++ b/src/game/game_16e810.c @@ -16,7 +16,6 @@ #include "lib/lib_121e0.h" #include "lib/lib_48120.h" #include "lib/lib_4b170.h" -#include "lib/lib_4b480.h" #include "lib/lib_4e470.h" #include "types.h" @@ -5599,7 +5598,7 @@ glabel func0f173010 /* f173338: afa20034 */ sw $v0,0x34($sp) /* f17333c: 8fa4149c */ lw $a0,0x149c($sp) /* f173340: 00402825 */ or $a1,$v0,$zero -/* f173344: 0c012c5c */ jal alCopy +/* f173344: 0c012c5c */ jal func0004b170 /* f173348: 24060010 */ addiu $a2,$zero,0x10 /* f17334c: 8fa70034 */ lw $a3,0x34($sp) /* f173350: 8fa60038 */ lw $a2,0x38($sp) @@ -5608,7 +5607,7 @@ glabel func0f173010 /* f17335c: 24e50010 */ addiu $a1,$a3,0x10 /* f173360: afa50034 */ sw $a1,0x34($sp) /* f173364: 24c60008 */ addiu $a2,$a2,0x8 -/* f173368: 0c012c5c */ jal alCopy +/* f173368: 0c012c5c */ jal func0004b170 /* f17336c: 2484fff8 */ addiu $a0,$a0,-8 /* f173370: 8fa70034 */ lw $a3,0x34($sp) /* f173374: 8e18000c */ lw $t8,0xc($s0) diff --git a/src/game/gamefile.c b/src/game/gamefile.c index fe7899aa9..132ebd6d4 100644 --- a/src/game/gamefile.c +++ b/src/game/gamefile.c @@ -1092,7 +1092,7 @@ glabel func0f1106f4 /* f1106fc: afbf0014 */ sw $ra,0x14($sp) /* f110700: 3c04800a */ lui $a0,%hi(var800a22d0) /* f110704: 248422d0 */ addiu $a0,$a0,%lo(var800a22d0) -/* f110708: 0c012c5c */ jal alCopy +/* f110708: 0c012c5c */ jal func0004b170 /* f11070c: 2406005b */ addiu $a2,$zero,0x5b /* f110710: 8fbf0014 */ lw $ra,0x14($sp) /* f110714: 27bd0018 */ addiu $sp,$sp,0x18 diff --git a/src/game/pak/pak.c b/src/game/pak/pak.c index ca3ceeec1..edb86fd94 100644 --- a/src/game/pak/pak.c +++ b/src/game/pak/pak.c @@ -23,7 +23,6 @@ #include "lib/lib_12dc0.h" #include "lib/lib_13130.h" #include "lib/lib_13900.h" -#include "lib/lib_481e0.h" #include "lib/lib_4a5e0.h" #include "lib/lib_4cc10.h" #include "lib/lib_4ce60.h" @@ -31,7 +30,6 @@ #include "lib/lib_4d480.h" #include "lib/lib_4d6f0.h" #include "lib/lib_4f5e0.h" -#include "lib/lib_50130.h" #include "lib/lib_50480.h" #include "lib/lib_50a00.h" #include "lib/lib_513b0.h" diff --git a/src/game/propobj.c b/src/game/propobj.c index b541313e1..1acf715fc 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -80,7 +80,6 @@ #include "lib/lib_317f0.h" #include "lib/lib_4a360.h" #include "lib/lib_4a5e0.h" -#include "lib/lib_4b480.h" #include "lib/lib_4e270.h" #include "types.h" diff --git a/src/game/smoke.c b/src/game/smoke.c index e0929259a..1ef6b81d2 100644 --- a/src/game/smoke.c +++ b/src/game/smoke.c @@ -19,7 +19,6 @@ #include "lib/lib_12dc0.h" #include "lib/lib_16110.h" #include "lib/lib_4a360.h" -#include "lib/lib_4b480.h" #include "types.h" const u32 var7f1b55d0[] = {0x46ea6000}; diff --git a/src/game/timing.c b/src/game/timing.c index 60ffae21b..1773edb02 100644 --- a/src/game/timing.c +++ b/src/game/timing.c @@ -9,7 +9,6 @@ #include "game/data/data_02da90.h" #include "game/timing.h" #include "gvars/gvars.h" -#include "lib/lib_481e0.h" #include "types.h" const char var7f1b78c0[] = "null"; diff --git a/src/game/wallhit.c b/src/game/wallhit.c index b0ed8204b..e730ea515 100644 --- a/src/game/wallhit.c +++ b/src/game/wallhit.c @@ -23,7 +23,6 @@ #include "lib/lib_159b0.h" #include "lib/lib_16110.h" #include "lib/lib_4a360.h" -#include "lib/lib_4b480.h" #include "types.h" const char var7f1b5a10[] = "WallHit_MakeSpaceRoom : ERROR - Couldn't find any space in room %d\n"; diff --git a/src/game/weather.c b/src/game/weather.c index 048d8b9ea..dd48cd851 100644 --- a/src/game/weather.c +++ b/src/game/weather.c @@ -22,9 +22,7 @@ #include "lib/lib_159b0.h" #include "lib/lib_16110.h" #include "lib/lib_317f0.h" -#include "lib/lib_481e0.h" #include "lib/lib_4a360.h" -#include "lib/lib_4b480.h" #include "types.h" GLOBAL_ASM( diff --git a/src/include/lib/lib_03050.h b/src/include/lib/lib_03050.h deleted file mode 100644 index e085ac462..000000000 --- a/src/include/lib/lib_03050.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef _IN_LIB_LIB_03050_H -#define _IN_LIB_LIB_03050_H -#include -#include "types.h" - -void osCreateViManager(OSPri pri); -void osCreatePiPanager(s32 arg0, u32 *arg1, u32 *arg2, s32 arg3); -void func000034d0(void); -void func000034d8(void); -u32 func000034e0(void); - -#endif diff --git a/src/include/lib/lib_034f0.h b/src/include/lib/lib_034f0.h deleted file mode 100644 index 186e3d3b9..000000000 --- a/src/include/lib/lib_034f0.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _IN_LIB_LIB_034F0_H -#define _IN_LIB_LIB_034F0_H -#include -#include "types.h" - -u32 __osExceptionPreamble(void); -u32 func00003ab8(void); -u32 __osEnqueueAndYield(void); -u32 __osEnqueueThread(void); -u32 __osPopThread(void); -u32 __osDispatchThread(void); - -#endif diff --git a/src/include/lib/lib_03ee0.h b/src/include/lib/lib_03ee0.h deleted file mode 100644 index d6a154e9c..000000000 --- a/src/include/lib/lib_03ee0.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _IN_LIB_LIB_03EE0_H -#define _IN_LIB_LIB_03EE0_H -#include -#include "types.h" - -void osCreateThread(OSThread *thread, OSId id, void (*entry)(void *), - void *arg, void *sp, OSPri pri); - -#endif diff --git a/src/include/lib/lib_04a80.h b/src/include/lib/lib_04a80.h index 0f6a89e48..171f724ff 100644 --- a/src/include/lib/lib_04a80.h +++ b/src/include/lib/lib_04a80.h @@ -8,14 +8,5 @@ u32 func00004c04(void); u32 func00004c50(void); u32 func000050ec(void); u32 func000051a4(void); -u32 func00005770(void); -u32 __osPfsRequestData(void); -u32 func000059b0(void); -u32 func00005a60(void); -u32 func00005a7c(void); -u32 func00005b18(void); -void func00005b30(u64 arg0); -void osInitialize(void); -u32 func00005dc0(void); #endif diff --git a/src/include/lib/lib_05a60.h b/src/include/lib/lib_05a60.h new file mode 100644 index 000000000..222c106aa --- /dev/null +++ b/src/include/lib/lib_05a60.h @@ -0,0 +1,11 @@ +#ifndef _IN_LIB_LIB_05A60_H +#define _IN_LIB_LIB_05A60_H +#include +#include "types.h" + +u32 func00005a60(void); +u32 func00005a7c(void); +u32 func00005b18(void); +void func00005b30(u64 arg0); + +#endif diff --git a/src/include/lib/lib_05dc0.h b/src/include/lib/lib_05dc0.h new file mode 100644 index 000000000..c04cc2ed1 --- /dev/null +++ b/src/include/lib/lib_05dc0.h @@ -0,0 +1,8 @@ +#ifndef _IN_LIB_LIB_05DC0_H +#define _IN_LIB_LIB_05DC0_H +#include +#include "types.h" + +u32 func00005dc0(void); + +#endif diff --git a/src/include/lib/lib_34d0.h b/src/include/lib/lib_34d0.h new file mode 100644 index 000000000..166f5ea40 --- /dev/null +++ b/src/include/lib/lib_34d0.h @@ -0,0 +1,9 @@ +#ifndef _IN_LIB_LIB_034D0_H +#define _IN_LIB_LIB_034D0_H +#include + +void func000034d0(void); +void func000034d8(void); +u32 func000034e0(void); + +#endif diff --git a/src/include/lib/lib_481e0.h b/src/include/lib/lib_481e0.h deleted file mode 100644 index 02b2d6f83..000000000 --- a/src/include/lib/lib_481e0.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _IN_LIB_LIB_481E0_H -#define _IN_LIB_LIB_481E0_H -#include -#include "types.h" - -void __osSetFpcCsr(void); -void osStartThread(OSThread *thread); -void osCreateMesgQueue(OSMesgQueue *mq, OSMesg *msgBuf, s32 count); -void osStopThread(OSThread *thread); -void osSetThreadPri(OSThread *thread, OSPri pri); -u32 osGetCount(void); - -#endif diff --git a/src/include/lib/lib_48520.h b/src/include/lib/lib_48520.h deleted file mode 100644 index 3e613dac8..000000000 --- a/src/include/lib/lib_48520.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _IN_LIB_LIB_48520_H -#define _IN_LIB_LIB_48520_H -#include -#include "types.h" - -void osSetEventMesg(OSEvent e, OSMesgQueue *mq, OSMesg msg); - -#endif diff --git a/src/include/lib/lib_48650.h b/src/include/lib/lib_48650.h deleted file mode 100644 index 163127415..000000000 --- a/src/include/lib/lib_48650.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _IN_LIB_LIB_48650_H -#define _IN_LIB_LIB_48650_H -#include -#include "types.h" - -OSIntMask osSetIntMask(OSIntMask); -s32 osRecvMesg(OSMesgQueue *mq, OSMesg *msg, s32 flag); - -#endif diff --git a/src/include/lib/lib_488e0.h b/src/include/lib/lib_488e0.h deleted file mode 100644 index f9898b056..000000000 --- a/src/include/lib/lib_488e0.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _IN_LIB_LIB_488E0_H -#define _IN_LIB_LIB_488E0_H -#include -#include "types.h" - -s32 osSendMesg(OSMesgQueue *mq, OSMesg msg, s32 flag); -u32 osStopTimer(void); - -#endif diff --git a/src/include/lib/lib_48b20.h b/src/include/lib/lib_48b20.h deleted file mode 100644 index 99a8eaa71..000000000 --- a/src/include/lib/lib_48b20.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _IN_LIB_LIB_48B20_H -#define _IN_LIB_LIB_48B20_H -#include -#include "types.h" - -u32 osSetTimer(OSTimer *, OSTime, u64, OSMesgQueue *, OSMesg); - -#endif diff --git a/src/include/lib/lib_491b0.h b/src/include/lib/lib_491b0.h deleted file mode 100644 index 212697a9c..000000000 --- a/src/include/lib/lib_491b0.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _IN_LIB_LIB_491B0_H -#define _IN_LIB_LIB_491B0_H -#include -#include "types.h" - -u32 __osTimerServicesInit(void); -u32 __osTimerInterrupt(void); -u32 __osSetTimerIntr(void); -u32 __osInsertTimer(void); -u32 __osDisableInt(void); -u32 __osRestoreInt(void); - -#endif diff --git a/src/include/lib/lib_49640.h b/src/include/lib/lib_49640.h deleted file mode 100644 index edcd9b610..000000000 --- a/src/include/lib/lib_49640.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _IN_LIB_LIB_49640_H -#define _IN_LIB_LIB_49640_H -#include -#include "types.h" - -u32 __osViInit(void); - -#endif diff --git a/src/include/lib/lib_49780.h b/src/include/lib/lib_49780.h index 2339914b3..37662b188 100644 --- a/src/include/lib/lib_49780.h +++ b/src/include/lib/lib_49780.h @@ -4,6 +4,5 @@ #include "types.h" u32 func00049780(void); -u32 __osViSwapContext(void); #endif diff --git a/src/include/lib/lib_49a90.h b/src/include/lib/lib_49a90.h deleted file mode 100644 index adcc06cf0..000000000 --- a/src/include/lib/lib_49a90.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef _IN_LIB_LIB_49A90_H -#define _IN_LIB_LIB_49A90_H -#include -#include "types.h" - -u32 __osPiCreateAccessQueue(void); -u32 __osPiGetAccess(void); -u32 __osPiRelAccess(void); - -#endif diff --git a/src/include/lib/lib_49c20.h b/src/include/lib/lib_49c20.h deleted file mode 100644 index dc1ff455d..000000000 --- a/src/include/lib/lib_49c20.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef _IN_LIB_LIB_49C20_H -#define _IN_LIB_LIB_49C20_H -#include -#include "types.h" - -u32 osEPiRawStartDma(void); -u32 __osDequeueThread(void); -u32 __osDestroyThread(void); - -#endif diff --git a/src/include/lib/lib_4a810.h b/src/include/lib/lib_4a810.h deleted file mode 100644 index 39cf159c7..000000000 --- a/src/include/lib/lib_4a810.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _IN_LIB_LIB_4A810_H -#define _IN_LIB_LIB_4A810_H -#include -#include "types.h" - -#endif diff --git a/src/include/lib/lib_4a980.h b/src/include/lib/lib_4a980.h deleted file mode 100644 index 75e5c06d6..000000000 --- a/src/include/lib/lib_4a980.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _IN_LIB_LIB_4A980_H -#define _IN_LIB_LIB_4A980_H -#include -#include "types.h" - -u32 __osContGetInitData(void); -u32 func0004abc0(void); - -#endif diff --git a/src/include/lib/lib_4acc0.h b/src/include/lib/lib_4acc0.h deleted file mode 100644 index 053ef64b9..000000000 --- a/src/include/lib/lib_4acc0.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _IN_LIB_LIB_4ACC0_H -#define _IN_LIB_LIB_4ACC0_H -#include -#include "types.h" - -u32 __osSetSR(void); -u32 __osGetSR(void); - -#endif diff --git a/src/include/lib/lib_4ace0.h b/src/include/lib/lib_4ace0.h deleted file mode 100644 index df2dd01cd..000000000 --- a/src/include/lib/lib_4ace0.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _IN_LIB_LIB_4ACE0_H -#define _IN_LIB_LIB_4ACE0_H -#include -#include "types.h" - -u32 __osSiRawReadIo(void); - -#endif diff --git a/src/include/lib/lib_4ad30.h b/src/include/lib/lib_4ad30.h deleted file mode 100644 index 8c2a267c6..000000000 --- a/src/include/lib/lib_4ad30.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _IN_LIB_LIB_4AD30_H -#define _IN_LIB_LIB_4AD30_H -#include -#include "types.h" - -u32 __osSiRawWriteIo(void); - -#endif diff --git a/src/include/lib/lib_4ad80.h b/src/include/lib/lib_4ad80.h deleted file mode 100644 index 8529f953b..000000000 --- a/src/include/lib/lib_4ad80.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _IN_LIB_LIB_4AD80_H -#define _IN_LIB_LIB_4AD80_H -#include -#include "types.h" - -void osWritebackDCache(void *vaddr, s32 nbytes); - -#endif diff --git a/src/include/lib/lib_4b160.h b/src/include/lib/lib_4b160.h deleted file mode 100644 index 243725833..000000000 --- a/src/include/lib/lib_4b160.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _IN_LIB_LIB_4B160_H -#define _IN_LIB_LIB_4B160_H -#include -#include "types.h" - -u32 __osGetCause(void); - -#endif diff --git a/src/include/lib/lib_4b170.h b/src/include/lib/lib_4b170.h index 578cb415c..6187ea474 100644 --- a/src/include/lib/lib_4b170.h +++ b/src/include/lib/lib_4b170.h @@ -3,6 +3,6 @@ #include #include "types.h" -u32 alCopy(void); +u32 func0004b170(void); #endif diff --git a/src/include/lib/lib_4b480.h b/src/include/lib/lib_4b480.h deleted file mode 100644 index db250ebf9..000000000 --- a/src/include/lib/lib_4b480.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _IN_LIB_LIB_4B480_H -#define _IN_LIB_LIB_4B480_H -#include -#include "types.h" - -u32 osVirtualToPhysical(void *); - -#endif diff --git a/src/include/lib/lib_4b5e0.h b/src/include/lib/lib_4b5e0.h index 1dda6a57b..865b4f0a6 100644 --- a/src/include/lib/lib_4b5e0.h +++ b/src/include/lib/lib_4b5e0.h @@ -4,7 +4,5 @@ #include "types.h" u32 func0004b5e0(void); -u32 __osContRamWrite(void); -u32 __osContRamRead(void); #endif diff --git a/src/include/lib/lib_4ba90.h b/src/include/lib/lib_4ba90.h deleted file mode 100644 index 62748760a..000000000 --- a/src/include/lib/lib_4ba90.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _IN_LIB_LIB_4BA90_H -#define _IN_LIB_LIB_4BA90_H -#include -#include "types.h" - -u32 __osPfsGetStatus(void); -u32 __osPfsRequestOneChannel(void); -u32 __osPfsGetOneChannelData(void); -s32 osEepromWrite(OSMesgQueue *mq, u8 address, u8 *buffer); -u32 __osPackEepWriteData(void); -u32 __osEepStatus(void); - -#endif diff --git a/src/include/lib/lib_4e470.h b/src/include/lib/lib_4e470.h index 66e7dbcb4..f9a808fb9 100644 --- a/src/include/lib/lib_4e470.h +++ b/src/include/lib/lib_4e470.h @@ -4,6 +4,5 @@ #include "types.h" u32 func0004e470(void); -void osInvalDCache(void *vaddr, s32 nbytes); #endif diff --git a/src/include/lib/lib_4e530.h b/src/include/lib/lib_4e530.h deleted file mode 100644 index 8a15e6314..000000000 --- a/src/include/lib/lib_4e530.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _IN_LIB_LIB_4E530_H -#define _IN_LIB_LIB_4E530_H -#include -#include "types.h" - -u32 func0004e640(void); - -#endif diff --git a/src/include/lib/lib_4f350.h b/src/include/lib/lib_4f350.h deleted file mode 100644 index f91c4bbce..000000000 --- a/src/include/lib/lib_4f350.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _IN_LIB_LIB_4F350_H -#define _IN_LIB_LIB_4F350_H -#include -#include "types.h" - -#endif diff --git a/src/include/lib/lib_4f400.h b/src/include/lib/lib_4f400.h deleted file mode 100644 index eedc210fa..000000000 --- a/src/include/lib/lib_4f400.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _IN_LIB_LIB_4F400_H -#define _IN_LIB_LIB_4F400_H -#include -#include "types.h" - -s32 osContStartReadData(OSMesgQueue *mq); -void osContGetReadData(OSContPad *data); - -#endif diff --git a/src/include/lib/lib_50130.h b/src/include/lib/lib_50130.h deleted file mode 100644 index 539d347de..000000000 --- a/src/include/lib/lib_50130.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _IN_LIB_LIB_50130_H -#define _IN_LIB_LIB_50130_H -#include -#include "types.h" - -u32 func00050364(void); - -#endif diff --git a/src/include/lib/lib_51880.h b/src/include/lib/lib_51880.h deleted file mode 100644 index 3cfbc14a7..000000000 --- a/src/include/lib/lib_51880.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _IN_LIB_LIB_51880_H -#define _IN_LIB_LIB_51880_H -#include -#include "types.h" - -u32 __osSetCompare(void); - -#endif diff --git a/src/include/lib/lib_51890.h b/src/include/lib/lib_51890.h index 8d88bdba8..8d272ff10 100644 --- a/src/include/lib/lib_51890.h +++ b/src/include/lib/lib_51890.h @@ -4,6 +4,5 @@ #include "types.h" u32 func00051890(void); -u32 __osResetGlobalIntMask(void); #endif diff --git a/src/include/lib/lib_51900.h b/src/include/lib/lib_51900.h deleted file mode 100644 index 0ab603dad..000000000 --- a/src/include/lib/lib_51900.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _IN_LIB_LIB_51900_H -#define _IN_LIB_LIB_51900_H -#include -#include "types.h" - -u32 osEPiRawWriteIo(void); - -#endif diff --git a/src/include/lib/lib_51a60.h b/src/include/lib/lib_51a60.h deleted file mode 100644 index 5fa06cf74..000000000 --- a/src/include/lib/lib_51a60.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _IN_LIB_LIB_51A60_H -#define _IN_LIB_LIB_51A60_H -#include -#include "types.h" - -u32 osEPiRawReadIo(void); -u32 __osSetGlobalIntMask(void); - -#endif diff --git a/src/include/lib/lib_51c10.h b/src/include/lib/lib_51c10.h deleted file mode 100644 index 1cfb04d96..000000000 --- a/src/include/lib/lib_51c10.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _IN_LIB_LIB_51C10_H -#define _IN_LIB_LIB_51C10_H -#include -#include "types.h" - -u32 osYieldThread(void); - -#endif diff --git a/src/include/lib/lib_51c60.h b/src/include/lib/lib_51c60.h deleted file mode 100644 index 9a0506642..000000000 --- a/src/include/lib/lib_51c60.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _IN_LIB_LIB_51C60_H -#define _IN_LIB_LIB_51C60_H -#include -#include "types.h" - -u32 __osSiDeviceBusy(void); -u32 __osProbeTLB(void); - -#endif diff --git a/src/include/lib/lib_52070.h b/src/include/lib/lib_52070.h deleted file mode 100644 index ded9b11df..000000000 --- a/src/include/lib/lib_52070.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _IN_LIB_LIB_52070_H -#define _IN_LIB_LIB_52070_H -#include -#include "types.h" - -u32 osPiRawReadIo(void); -u32 func000520c0(void); - -#endif diff --git a/src/include/lib/lib_520c0.h b/src/include/lib/lib_520c0.h new file mode 100644 index 000000000..ee1886361 --- /dev/null +++ b/src/include/lib/lib_520c0.h @@ -0,0 +1,8 @@ +#ifndef _IN_LIB_LIB_520C0_H +#define _IN_LIB_LIB_520C0_H +#include +#include "types.h" + +u32 func000520c0(void); + +#endif diff --git a/src/lib/lib_034d0.c b/src/lib/lib_034d0.c new file mode 100644 index 000000000..785e4b522 --- /dev/null +++ b/src/lib/lib_034d0.c @@ -0,0 +1,19 @@ +#include + +void func000034d0(void) +{ + // empty +} + +void func000034d8(void) +{ + // empty +} + +GLOBAL_ASM( +glabel func000034e0 +/* 34e0: 03e00008 */ jr $ra +/* 34e4: afa40000 */ sw $a0,0x0($sp) +/* 34e8: 00000000 */ nop +/* 34ec: 00000000 */ nop +); diff --git a/src/lib/lib_04a80.c b/src/lib/lib_04a80.c index 31d591c17..c42a4b58d 100644 --- a/src/lib/lib_04a80.c +++ b/src/lib/lib_04a80.c @@ -13,18 +13,10 @@ #include "lib/lib_04a80.h" #include "lib/lib_16110.h" #include "lib/lib_48150.h" -#include "lib/lib_481e0.h" -#include "lib/lib_48650.h" #include "lib/lib_4a360.h" #include "lib/lib_4a5e0.h" #include "lib/lib_4a680.h" -#include "lib/lib_4a810.h" -#include "lib/lib_4acc0.h" -#include "lib/lib_4ace0.h" -#include "lib/lib_4ad30.h" -#include "lib/lib_4ad80.h" #include "lib/lib_4ae00.h" -#include "lib/lib_4b160.h" #include "types.h" const u32 var700524c0[] = {0x3c8efa35}; @@ -991,503 +983,3 @@ glabel func000051a4 /* 5768: 27bd0020 */ addiu $sp,$sp,0x20 /* 576c: 00000000 */ nop ); - -GLOBAL_ASM( -glabel func00005770 -/* 5770: 27bdff90 */ addiu $sp,$sp,-112 -/* 5774: afbf003c */ sw $ra,0x3c($sp) -/* 5778: afb5002c */ sw $s5,0x2c($sp) -/* 577c: afb20020 */ sw $s2,0x20($sp) -/* 5780: afb1001c */ sw $s1,0x1c($sp) -/* 5784: 00809025 */ or $s2,$a0,$zero -/* 5788: afbe0038 */ sw $s8,0x38($sp) -/* 578c: afb70034 */ sw $s7,0x34($sp) -/* 5790: afb60030 */ sw $s6,0x30($sp) -/* 5794: afb40028 */ sw $s4,0x28($sp) -/* 5798: afb30024 */ sw $s3,0x24($sp) -/* 579c: afb00018 */ sw $s0,0x18($sp) -/* 57a0: afa50074 */ sw $a1,0x74($sp) -/* 57a4: 0000a825 */ or $s5,$zero,$zero -/* 57a8: 0c012a18 */ jal __osSiGetAccess -/* 57ac: 24110001 */ addiu $s1,$zero,0x1 -/* 57b0: 3c1e800a */ lui $s8,%hi(__osContLastCmd+0x1) -/* 57b4: 3c138009 */ lui $s3,%hi(var80090a20) -/* 57b8: 26730a20 */ addiu $s3,$s3,%lo(var80090a20) -/* 57bc: 27dec821 */ addiu $s8,$s8,%lo(__osContLastCmd+0x1) -/* 57c0: 00008025 */ or $s0,$zero,$zero -/* 57c4: 27b70054 */ addiu $s7,$sp,0x54 -/* 57c8: 27b60067 */ addiu $s6,$sp,0x67 -/* 57cc: 27b40068 */ addiu $s4,$sp,0x68 -.L000057d0: -/* 57d0: 0c00163f */ jal __osPfsRequestData -/* 57d4: 00002025 */ or $a0,$zero,$zero -/* 57d8: 24040001 */ addiu $a0,$zero,0x1 -/* 57dc: 0c012a34 */ jal __osSiRawStartDma -/* 57e0: 02602825 */ or $a1,$s3,$zero -/* 57e4: 02402025 */ or $a0,$s2,$zero -/* 57e8: 02802825 */ or $a1,$s4,$zero -/* 57ec: 0c0121bc */ jal osRecvMesg -/* 57f0: 24060001 */ addiu $a2,$zero,0x1 -/* 57f4: 00002025 */ or $a0,$zero,$zero -/* 57f8: 0c012a34 */ jal __osSiRawStartDma -/* 57fc: 02602825 */ or $a1,$s3,$zero -/* 5800: afa2006c */ sw $v0,0x6c($sp) -/* 5804: 02402025 */ or $a0,$s2,$zero -/* 5808: 02802825 */ or $a1,$s4,$zero -/* 580c: 0c0121bc */ jal osRecvMesg -/* 5810: 24060001 */ addiu $a2,$zero,0x1 -/* 5814: 02c02025 */ or $a0,$s6,$zero -/* 5818: 0c00166c */ jal func000059b0 -/* 581c: 02e02825 */ or $a1,$s7,$zero -/* 5820: 93c30000 */ lbu $v1,0x0($s8) -/* 5824: 27a20054 */ addiu $v0,$sp,0x54 -/* 5828: 5860000c */ blezl $v1,.L0000585c -/* 582c: 02031026 */ xor $v0,$s0,$v1 -.L00005830: -/* 5830: 904e0002 */ lbu $t6,0x2($v0) -/* 5834: 31cf0004 */ andi $t7,$t6,0x4 -/* 5838: 55e00004 */ bnezl $t7,.L0000584c -/* 583c: 26100001 */ addiu $s0,$s0,0x1 -/* 5840: 10000005 */ b .L00005858 -/* 5844: 2631ffff */ addiu $s1,$s1,-1 -/* 5848: 26100001 */ addiu $s0,$s0,0x1 -.L0000584c: -/* 584c: 0203082a */ slt $at,$s0,$v1 -/* 5850: 1420fff7 */ bnez $at,.L00005830 -/* 5854: 24420004 */ addiu $v0,$v0,0x4 -.L00005858: -/* 5858: 02031026 */ xor $v0,$s0,$v1 -.L0000585c: -/* 585c: 14400002 */ bnez $v0,.L00005868 -/* 5860: 00008025 */ or $s0,$zero,$zero -/* 5864: 00008825 */ or $s1,$zero,$zero -.L00005868: -/* 5868: 1e20ffd9 */ bgtz $s1,.L000057d0 -/* 586c: 00000000 */ nop -/* 5870: 18600011 */ blez $v1,.L000058b8 -/* 5874: 27a20054 */ addiu $v0,$sp,0x54 -.L00005878: -/* 5878: 90580003 */ lbu $t8,0x3($v0) -/* 587c: 5700000b */ bnezl $t8,.L000058ac -/* 5880: 26100001 */ addiu $s0,$s0,0x1 -/* 5884: 90590002 */ lbu $t9,0x2($v0) -/* 5888: 24090001 */ addiu $t1,$zero,0x1 -/* 588c: 02095004 */ sllv $t2,$t1,$s0 -/* 5890: 33280001 */ andi $t0,$t9,0x1 -/* 5894: 51000005 */ beqzl $t0,.L000058ac -/* 5898: 26100001 */ addiu $s0,$s0,0x1 -/* 589c: 02aaa825 */ or $s5,$s5,$t2 -/* 58a0: 32ab00ff */ andi $t3,$s5,0xff -/* 58a4: 0160a825 */ or $s5,$t3,$zero -/* 58a8: 26100001 */ addiu $s0,$s0,0x1 -.L000058ac: -/* 58ac: 0203082a */ slt $at,$s0,$v1 -/* 58b0: 1420fff1 */ bnez $at,.L00005878 -/* 58b4: 24420004 */ addiu $v0,$v0,0x4 -.L000058b8: -/* 58b8: 0c012a29 */ jal __osSiRelAccess -/* 58bc: 00000000 */ nop -/* 58c0: 8fac0074 */ lw $t4,0x74($sp) -/* 58c4: a1950000 */ sb $s5,0x0($t4) -/* 58c8: 8fbf003c */ lw $ra,0x3c($sp) -/* 58cc: 8fbe0038 */ lw $s8,0x38($sp) -/* 58d0: 8fb70034 */ lw $s7,0x34($sp) -/* 58d4: 8fb60030 */ lw $s6,0x30($sp) -/* 58d8: 8fb5002c */ lw $s5,0x2c($sp) -/* 58dc: 8fb40028 */ lw $s4,0x28($sp) -/* 58e0: 8fb30024 */ lw $s3,0x24($sp) -/* 58e4: 8fb20020 */ lw $s2,0x20($sp) -/* 58e8: 8fb1001c */ lw $s1,0x1c($sp) -/* 58ec: 8fb00018 */ lw $s0,0x18($sp) -/* 58f0: 8fa2006c */ lw $v0,0x6c($sp) -/* 58f4: 03e00008 */ jr $ra -/* 58f8: 27bd0070 */ addiu $sp,$sp,0x70 -); - -GLOBAL_ASM( -glabel __osPfsRequestData -/* 58fc: 27bdfff0 */ addiu $sp,$sp,-16 -/* 5900: 3c058009 */ lui $a1,%hi(var80090a20) -/* 5904: 3c01800a */ lui $at,%hi(__osContLastCmd) -/* 5908: 24a20a20 */ addiu $v0,$a1,%lo(var80090a20) -/* 590c: afa40010 */ sw $a0,0x10($sp) -/* 5910: a024c820 */ sb $a0,%lo(__osContLastCmd)($at) -/* 5914: 240f0001 */ addiu $t7,$zero,0x1 -/* 5918: ac4f003c */ sw $t7,0x3c($v0) -/* 591c: 3c06800a */ lui $a2,%hi(__osContLastCmd+0x1) -/* 5920: 24c6c821 */ addiu $a2,$a2,%lo(__osContLastCmd+0x1) -/* 5924: 90cd0000 */ lbu $t5,0x0($a2) -/* 5928: 241800ff */ addiu $t8,$zero,0xff -/* 592c: 24190001 */ addiu $t9,$zero,0x1 -/* 5930: 24080003 */ addiu $t0,$zero,0x3 -/* 5934: 240900ff */ addiu $t1,$zero,0xff -/* 5938: 240a00ff */ addiu $t2,$zero,0xff -/* 593c: 240b00ff */ addiu $t3,$zero,0xff -/* 5940: 240c00ff */ addiu $t4,$zero,0xff -/* 5944: a3b80004 */ sb $t8,0x4($sp) -/* 5948: a3b90005 */ sb $t9,0x5($sp) -/* 594c: a3a80006 */ sb $t0,0x6($sp) -/* 5950: a3a40007 */ sb $a0,0x7($sp) -/* 5954: a3a90008 */ sb $t1,0x8($sp) -/* 5958: a3aa0009 */ sb $t2,0x9($sp) -/* 595c: a3ab000a */ sb $t3,0xa($sp) -/* 5960: a3ac000b */ sb $t4,0xb($sp) -/* 5964: 19a0000e */ blez $t5,.L000059a0 -/* 5968: 00001825 */ or $v1,$zero,$zero -/* 596c: 27a40004 */ addiu $a0,$sp,0x4 -/* 5970: 8c810000 */ lw $at,0x0($a0) -.L00005974: -/* 5974: 24630001 */ addiu $v1,$v1,0x1 -/* 5978: 24420008 */ addiu $v0,$v0,0x8 -/* 597c: a841fff8 */ swl $at,-0x8($v0) -/* 5980: b841fffb */ swr $at,-0x5($v0) -/* 5984: 8c8f0004 */ lw $t7,0x4($a0) -/* 5988: a84ffffc */ swl $t7,-0x4($v0) -/* 598c: b84fffff */ swr $t7,-0x1($v0) -/* 5990: 90d80000 */ lbu $t8,0x0($a2) -/* 5994: 0078082a */ slt $at,$v1,$t8 -/* 5998: 5420fff6 */ bnezl $at,.L00005974 -/* 599c: 8c810000 */ lw $at,0x0($a0) -.L000059a0: -/* 59a0: 241900fe */ addiu $t9,$zero,0xfe -/* 59a4: a0590000 */ sb $t9,0x0($v0) -/* 59a8: 03e00008 */ jr $ra -/* 59ac: 27bd0010 */ addiu $sp,$sp,0x10 -); - -GLOBAL_ASM( -glabel func000059b0 -/* 59b0: 3c07800a */ lui $a3,%hi(__osContLastCmd+0x1) -/* 59b4: 24e7c821 */ addiu $a3,$a3,%lo(__osContLastCmd+0x1) -/* 59b8: 90ee0000 */ lbu $t6,0x0($a3) -/* 59bc: 3c038009 */ lui $v1,%hi(var80090a20) -/* 59c0: 27bdffe8 */ addiu $sp,$sp,-24 -/* 59c4: 00001025 */ or $v0,$zero,$zero -/* 59c8: 24630a20 */ addiu $v1,$v1,%lo(var80090a20) -/* 59cc: 19c00020 */ blez $t6,.L00005a50 -/* 59d0: 00003025 */ or $a2,$zero,$zero -/* 59d4: 27a8000c */ addiu $t0,$sp,0xc -.L000059d8: -/* 59d8: 88610000 */ lwl $at,0x0($v1) -/* 59dc: 98610003 */ lwr $at,0x3($v1) -/* 59e0: ad010000 */ sw $at,0x0($t0) -/* 59e4: 88780004 */ lwl $t8,0x4($v1) -/* 59e8: 98780007 */ lwr $t8,0x7($v1) -/* 59ec: ad180004 */ sw $t8,0x4($t0) -/* 59f0: 93b9000e */ lbu $t9,0xe($sp) -/* 59f4: 332900c0 */ andi $t1,$t9,0xc0 -/* 59f8: 00095103 */ sra $t2,$t1,0x4 -/* 59fc: 314b00ff */ andi $t3,$t2,0xff -/* 5a00: 1560000d */ bnez $t3,.L00005a38 -/* 5a04: a0aa0003 */ sb $t2,0x3($a1) -/* 5a08: 93ac0011 */ lbu $t4,0x11($sp) -/* 5a0c: 93ae0010 */ lbu $t6,0x10($sp) -/* 5a10: 24190001 */ addiu $t9,$zero,0x1 -/* 5a14: 000c6a00 */ sll $t5,$t4,0x8 -/* 5a18: 01ae7825 */ or $t7,$t5,$t6 -/* 5a1c: a4af0000 */ sh $t7,0x0($a1) -/* 5a20: 93b80012 */ lbu $t8,0x12($sp) -/* 5a24: 00d94804 */ sllv $t1,$t9,$a2 -/* 5a28: 00491025 */ or $v0,$v0,$t1 -/* 5a2c: 304a00ff */ andi $t2,$v0,0xff -/* 5a30: 01401025 */ or $v0,$t2,$zero -/* 5a34: a0b80002 */ sb $t8,0x2($a1) -.L00005a38: -/* 5a38: 90eb0000 */ lbu $t3,0x0($a3) -/* 5a3c: 24c60001 */ addiu $a2,$a2,0x1 -/* 5a40: 24630008 */ addiu $v1,$v1,0x8 -/* 5a44: 00cb082a */ slt $at,$a2,$t3 -/* 5a48: 1420ffe3 */ bnez $at,.L000059d8 -/* 5a4c: 24a50004 */ addiu $a1,$a1,0x4 -.L00005a50: -/* 5a50: a0820000 */ sb $v0,0x0($a0) -/* 5a54: 03e00008 */ jr $ra -/* 5a58: 27bd0018 */ addiu $sp,$sp,0x18 -/* 5a5c: 00000000 */ nop -); - -GLOBAL_ASM( -glabel func00005a60 -/* 5a60: 46006109 */ trunc.l.s $f4,$f12 -/* 5a64: 44222000 */ dmfc1 $v0,$f4 -/* 5a68: 00000000 */ nop -/* 5a6c: 0002183c */ dsll32 $v1,$v0,0x0 -/* 5a70: 0003183f */ dsra32 $v1,$v1,0x0 -/* 5a74: 03e00008 */ jr $ra -/* 5a78: 0002103f */ dsra32 $v0,$v0,0x0 -); - -GLOBAL_ASM( -glabel func00005a7c -/* 5a7c: 444ef800 */ cfc1 $t6,$31 -/* 5a80: 24020001 */ addiu $v0,$zero,0x1 -/* 5a84: 44c2f800 */ ctc1 $v0,$31 -/* 5a88: 00000000 */ nop -/* 5a8c: 46006125 */ cvt.l.s $f4,$f12 -/* 5a90: 4442f800 */ cfc1 $v0,$31 -/* 5a94: 00000000 */ nop -/* 5a98: 30410004 */ andi $at,$v0,0x4 -/* 5a9c: 30420078 */ andi $v0,$v0,0x78 -/* 5aa0: 10400014 */ beqz $v0,.L00005af4 -/* 5aa4: 3c015f00 */ lui $at,0x5f00 -/* 5aa8: 44812000 */ mtc1 $at,$f4 -/* 5aac: 24020001 */ addiu $v0,$zero,0x1 -/* 5ab0: 46046101 */ sub.s $f4,$f12,$f4 -/* 5ab4: 44c2f800 */ ctc1 $v0,$31 -/* 5ab8: 00000000 */ nop -/* 5abc: 46002125 */ cvt.l.s $f4,$f4 -/* 5ac0: 4442f800 */ cfc1 $v0,$31 -/* 5ac4: 00000000 */ nop -/* 5ac8: 30410004 */ andi $at,$v0,0x4 -/* 5acc: 30420078 */ andi $v0,$v0,0x78 -/* 5ad0: 14400006 */ bnez $v0,.L00005aec -/* 5ad4: 00000000 */ nop -/* 5ad8: 3c0f8000 */ lui $t7,0x8000 -/* 5adc: 000f783c */ dsll32 $t7,$t7,0x0 -/* 5ae0: 44222000 */ dmfc1 $v0,$f4 -/* 5ae4: 10000007 */ b .L00005b04 -/* 5ae8: 004f1025 */ or $v0,$v0,$t7 -.L00005aec: -/* 5aec: 10000005 */ b .L00005b04 -/* 5af0: 2402ffff */ addiu $v0,$zero,-1 -.L00005af4: -/* 5af4: 44222000 */ dmfc1 $v0,$f4 -/* 5af8: 00000000 */ nop -/* 5afc: 0440fffb */ bltz $v0,.L00005aec -/* 5b00: 00000000 */ nop -.L00005b04: -/* 5b04: 44cef800 */ ctc1 $t6,$31 -/* 5b08: 0002183c */ dsll32 $v1,$v0,0x0 -/* 5b0c: 0003183f */ dsra32 $v1,$v1,0x0 -/* 5b10: 03e00008 */ jr $ra -/* 5b14: 0002103f */ dsra32 $v0,$v0,0x0 -); - -GLOBAL_ASM( -glabel func00005b18 -/* 5b18: afa40000 */ sw $a0,0x0($sp) -/* 5b1c: afa50004 */ sw $a1,0x4($sp) -/* 5b20: dfae0000 */ ld $t6,0x0($sp) -/* 5b24: 44ae2000 */ dmtc1 $t6,$f4 -/* 5b28: 03e00008 */ jr $ra -/* 5b2c: 46a02021 */ cvt.d.l $f0,$f4 -); - -GLOBAL_ASM( -glabel func00005b30 -/* 5b30: afa40000 */ sw $a0,0x0($sp) -/* 5b34: afa50004 */ sw $a1,0x4($sp) -/* 5b38: dfae0000 */ ld $t6,0x0($sp) -/* 5b3c: 44ae2000 */ dmtc1 $t6,$f4 -/* 5b40: 05c10005 */ bgez $t6,.L00005b58 -/* 5b44: 46a02020 */ cvt.s.l $f0,$f4 -/* 5b48: 3c014f80 */ lui $at,0x4f80 -/* 5b4c: 44813000 */ mtc1 $at,$f6 -/* 5b50: 00000000 */ nop -/* 5b54: 46060000 */ add.s $f0,$f0,$f6 -.L00005b58: -/* 5b58: 03e00008 */ jr $ra -/* 5b5c: 00000000 */ nop -); - -GLOBAL_ASM( -glabel osInitialize -/* 5b60: 27bdffc8 */ addiu $sp,$sp,-56 -/* 5b64: afbf001c */ sw $ra,0x1c($sp) -/* 5b68: 240e0001 */ addiu $t6,$zero,0x1 -/* 5b6c: 3c018009 */ lui $at,%hi(var80090a60) -/* 5b70: afb10018 */ sw $s1,0x18($sp) -/* 5b74: afb00014 */ sw $s0,0x14($sp) -/* 5b78: 0c012b34 */ jal __osGetSR -/* 5b7c: ac2e0a60 */ sw $t6,%lo(var80090a60)($at) -/* 5b80: 3c012000 */ lui $at,0x2000 -/* 5b84: 0c012b30 */ jal __osSetSR -/* 5b88: 00412025 */ or $a0,$v0,$at -/* 5b8c: 3c040100 */ lui $a0,0x100 -/* 5b90: 0c012078 */ jal __osSetFpcCsr -/* 5b94: 34840800 */ ori $a0,$a0,0x800 -/* 5b98: 3c101fc0 */ lui $s0,0x1fc0 -/* 5b9c: 361007fc */ ori $s0,$s0,0x7fc -/* 5ba0: 27b10034 */ addiu $s1,$sp,0x34 -/* 5ba4: 02202825 */ or $a1,$s1,$zero -/* 5ba8: 0c012b38 */ jal __osSiRawReadIo -/* 5bac: 02002025 */ or $a0,$s0,$zero -/* 5bb0: 10400005 */ beqz $v0,.L00005bc8 -/* 5bb4: 02002025 */ or $a0,$s0,$zero -.L00005bb8: -/* 5bb8: 0c012b38 */ jal __osSiRawReadIo -/* 5bbc: 02202825 */ or $a1,$s1,$zero -/* 5bc0: 5440fffd */ bnezl $v0,.L00005bb8 -/* 5bc4: 02002025 */ or $a0,$s0,$zero -.L00005bc8: -/* 5bc8: 8fa50034 */ lw $a1,0x34($sp) -/* 5bcc: 02002025 */ or $a0,$s0,$zero -/* 5bd0: 34af0008 */ ori $t7,$a1,0x8 -/* 5bd4: 0c012b4c */ jal __osSiRawWriteIo -/* 5bd8: 01e02825 */ or $a1,$t7,$zero -/* 5bdc: 10400008 */ beqz $v0,.L00005c00 -/* 5be0: 00000000 */ nop -/* 5be4: 8fa50034 */ lw $a1,0x34($sp) -.L00005be8: -/* 5be8: 02002025 */ or $a0,$s0,$zero -/* 5bec: 34b80008 */ ori $t8,$a1,0x8 -/* 5bf0: 0c012b4c */ jal __osSiRawWriteIo -/* 5bf4: 03002825 */ or $a1,$t8,$zero -/* 5bf8: 5440fffb */ bnezl $v0,.L00005be8 -/* 5bfc: 8fa50034 */ lw $a1,0x34($sp) -.L00005c00: -/* 5c00: 3c027000 */ lui $v0,%hi(__osExceptionPreamble) -/* 5c04: 244234f0 */ addiu $v0,$v0,%lo(__osExceptionPreamble) -/* 5c08: 8c410000 */ lw $at,0x0($v0) -/* 5c0c: 3c108000 */ lui $s0,0x8000 -/* 5c10: 3c098000 */ lui $t1,0x8000 -/* 5c14: ae010000 */ sw $at,0x0($s0) -/* 5c18: 8c480004 */ lw $t0,0x4($v0) -/* 5c1c: 35290080 */ ori $t1,$t1,0x80 -/* 5c20: 3c0c8000 */ lui $t4,0x8000 -/* 5c24: ae080004 */ sw $t0,0x4($s0) -/* 5c28: 8c410008 */ lw $at,0x8($v0) -/* 5c2c: 358c0100 */ ori $t4,$t4,0x100 -/* 5c30: 3c0f8000 */ lui $t7,0x8000 -/* 5c34: ae010008 */ sw $at,0x8($s0) -/* 5c38: 8c48000c */ lw $t0,0xc($v0) -/* 5c3c: 35ef0180 */ ori $t7,$t7,0x180 -/* 5c40: 02002025 */ or $a0,$s0,$zero -/* 5c44: ae08000c */ sw $t0,0xc($s0) -/* 5c48: 8c410000 */ lw $at,0x0($v0) -/* 5c4c: 24050190 */ addiu $a1,$zero,0x190 -/* 5c50: ad210000 */ sw $at,0x0($t1) -/* 5c54: 8c4b0004 */ lw $t3,0x4($v0) -/* 5c58: ad2b0004 */ sw $t3,0x4($t1) -/* 5c5c: 8c410008 */ lw $at,0x8($v0) -/* 5c60: ad210008 */ sw $at,0x8($t1) -/* 5c64: 8c4b000c */ lw $t3,0xc($v0) -/* 5c68: ad2b000c */ sw $t3,0xc($t1) -/* 5c6c: 8c410000 */ lw $at,0x0($v0) -/* 5c70: ad810000 */ sw $at,0x0($t4) -/* 5c74: 8c4e0004 */ lw $t6,0x4($v0) -/* 5c78: ad8e0004 */ sw $t6,0x4($t4) -/* 5c7c: 8c410008 */ lw $at,0x8($v0) -/* 5c80: ad810008 */ sw $at,0x8($t4) -/* 5c84: 8c4e000c */ lw $t6,0xc($v0) -/* 5c88: ad8e000c */ sw $t6,0xc($t4) -/* 5c8c: 8c410000 */ lw $at,0x0($v0) -/* 5c90: ade10000 */ sw $at,0x0($t7) -/* 5c94: 8c590004 */ lw $t9,0x4($v0) -/* 5c98: adf90004 */ sw $t9,0x4($t7) -/* 5c9c: 8c410008 */ lw $at,0x8($v0) -/* 5ca0: ade10008 */ sw $at,0x8($t7) -/* 5ca4: 8c59000c */ lw $t9,0xc($v0) -/* 5ca8: 0c012b60 */ jal osWritebackDCache -/* 5cac: adf9000c */ sw $t9,0xc($t7) -/* 5cb0: 02002025 */ or $a0,$s0,$zero -/* 5cb4: 0c012054 */ jal osInvalICache -/* 5cb8: 24050190 */ addiu $a1,$zero,0x190 -/* 5cbc: 0c001770 */ jal func00005dc0 -/* 5cc0: 00000000 */ nop -/* 5cc4: 0c000bfc */ jal osMapTLBRdb -/* 5cc8: 00000000 */ nop -/* 5ccc: 3c108006 */ lui $s0,%hi(var8005cf60) -/* 5cd0: 2610cf60 */ addiu $s0,$s0,%lo(var8005cf60) -/* 5cd4: 8e040000 */ lw $a0,0x0($s0) -/* 5cd8: 8e050004 */ lw $a1,0x4($s0) -/* 5cdc: 24060000 */ addiu $a2,$zero,0x0 -/* 5ce0: 0c012bda */ jal func0004af68 -/* 5ce4: 24070003 */ addiu $a3,$zero,0x3 -/* 5ce8: 00402025 */ or $a0,$v0,$zero -/* 5cec: 00602825 */ or $a1,$v1,$zero -/* 5cf0: 24060000 */ addiu $a2,$zero,0x0 -/* 5cf4: 0c012b9a */ jal func0004ae68 -/* 5cf8: 24070004 */ addiu $a3,$zero,0x4 -/* 5cfc: ae020000 */ sw $v0,0x0($s0) -/* 5d00: ae030004 */ sw $v1,0x4($s0) -/* 5d04: 3c088000 */ lui $t0,0x8000 -/* 5d08: 8d08030c */ lw $t0,0x30c($t0) -/* 5d0c: 3c048000 */ lui $a0,0x8000 -/* 5d10: 2484031c */ addiu $a0,$a0,0x31c -/* 5d14: 15000003 */ bnez $t0,.L00005d24 -/* 5d18: 00000000 */ nop -/* 5d1c: 0c012c30 */ jal bzero -/* 5d20: 24050040 */ addiu $a1,$zero,0x40 -.L00005d24: -/* 5d24: 3c028000 */ lui $v0,0x8000 -/* 5d28: 8c420300 */ lw $v0,0x300($v0) -/* 5d2c: 3c0a02f5 */ lui $t2,0x2f5 -/* 5d30: 354ab2d2 */ ori $t2,$t2,0xb2d2 -/* 5d34: 14400004 */ bnez $v0,.L00005d48 -/* 5d38: 24010002 */ addiu $at,$zero,0x2 -/* 5d3c: 3c018006 */ lui $at,%hi(var8005cf68) -/* 5d40: 1000000b */ b .L00005d70 -/* 5d44: ac2acf68 */ sw $t2,%lo(var8005cf68)($at) -.L00005d48: -/* 5d48: 14410006 */ bne $v0,$at,.L00005d64 -/* 5d4c: 3c0b02e6 */ lui $t3,0x2e6 -/* 5d50: 3c0902e6 */ lui $t1,0x2e6 -/* 5d54: 3529d354 */ ori $t1,$t1,0xd354 -/* 5d58: 3c018006 */ lui $at,%hi(var8005cf68) -/* 5d5c: 10000004 */ b .L00005d70 -/* 5d60: ac29cf68 */ sw $t1,%lo(var8005cf68)($at) -.L00005d64: -/* 5d64: 356bd354 */ ori $t3,$t3,0xd354 -/* 5d68: 3c018006 */ lui $at,%hi(var8005cf68) -/* 5d6c: ac2bcf68 */ sw $t3,%lo(var8005cf68)($at) -.L00005d70: -/* 5d70: 0c012c58 */ jal __osGetCause -/* 5d74: 00000000 */ nop -/* 5d78: 304d1000 */ andi $t5,$v0,0x1000 -/* 5d7c: 11a00003 */ beqz $t5,.L00005d8c -/* 5d80: 240c0001 */ addiu $t4,$zero,0x1 -.L00005d84: -/* 5d84: 1000ffff */ b .L00005d84 -/* 5d88: 00000000 */ nop -.L00005d8c: -/* 5d8c: 3c0ea450 */ lui $t6,0xa450 -/* 5d90: adcc0008 */ sw $t4,0x8($t6) -/* 5d94: 24183fff */ addiu $t8,$zero,0x3fff -/* 5d98: 3c0fa450 */ lui $t7,0xa450 -/* 5d9c: adf80010 */ sw $t8,0x10($t7) -/* 5da0: 2419000f */ addiu $t9,$zero,0xf -/* 5da4: 3c08a450 */ lui $t0,0xa450 -/* 5da8: ad190014 */ sw $t9,0x14($t0) -/* 5dac: 8fbf001c */ lw $ra,0x1c($sp) -/* 5db0: 8fb10018 */ lw $s1,0x18($sp) -/* 5db4: 8fb00014 */ lw $s0,0x14($sp) -/* 5db8: 03e00008 */ jr $ra -/* 5dbc: 27bd0038 */ addiu $sp,$sp,0x38 -); - -GLOBAL_ASM( -glabel func00005dc0 -/* 5dc0: 3c028009 */ lui $v0,%hi(var800902a0) -/* 5dc4: 244202a0 */ addiu $v0,$v0,%lo(var800902a0) -/* 5dc8: 24030007 */ addiu $v1,$zero,0x7 -/* 5dcc: a0430004 */ sb $v1,0x4($v0) -/* 5dd0: 3c0ea460 */ lui $t6,0xa460 -/* 5dd4: 8dcf0014 */ lw $t7,0x14($t6) -/* 5dd8: 3c18a460 */ lui $t8,0xa460 -/* 5ddc: 3c08a460 */ lui $t0,0xa460 -/* 5de0: a04f0005 */ sb $t7,0x5($v0) -/* 5de4: 8f190018 */ lw $t9,0x18($t8) -/* 5de8: 3c0aa460 */ lui $t2,0xa460 -/* 5dec: 3c048009 */ lui $a0,%hi(var80090318) -/* 5df0: a0590008 */ sb $t9,0x8($v0) -/* 5df4: 8d09001c */ lw $t1,0x1c($t0) -/* 5df8: 24840318 */ addiu $a0,$a0,%lo(var80090318) -/* 5dfc: 3c0ca460 */ lui $t4,0xa460 -/* 5e00: a0490006 */ sb $t1,0x6($v0) -/* 5e04: 8d4b0020 */ lw $t3,0x20($t2) -/* 5e08: a0830004 */ sb $v1,0x4($a0) -/* 5e0c: a04b0007 */ sb $t3,0x7($v0) -/* 5e10: 8d8d0024 */ lw $t5,0x24($t4) -/* 5e14: a08d0005 */ sb $t5,0x5($a0) -/* 5e18: 8dcf0028 */ lw $t7,0x28($t6) -/* 5e1c: a08f0008 */ sb $t7,0x8($a0) -/* 5e20: 8f19002c */ lw $t9,0x2c($t8) -/* 5e24: a0990006 */ sb $t9,0x6($a0) -/* 5e28: 8d090030 */ lw $t1,0x30($t0) -/* 5e2c: 03e00008 */ jr $ra -/* 5e30: a0890007 */ sb $t1,0x7($a0) -/* 5e34: 00000000 */ nop -/* 5e38: 00000000 */ nop -/* 5e3c: 00000000 */ nop -); diff --git a/src/lib/lib_05a60.c b/src/lib/lib_05a60.c new file mode 100644 index 000000000..9f45a33da --- /dev/null +++ b/src/lib/lib_05a60.c @@ -0,0 +1,104 @@ +#include +#include "boot/boot.h" +#include "constants.h" +#include "game/data/data_000000.h" +#include "game/data/data_0083d0.h" +#include "game/data/data_00e460.h" +#include "game/data/data_0160b0.h" +#include "game/data/data_01a3a0.h" +#include "game/data/data_020df0.h" +#include "game/data/data_02da90.h" +#include "gvars/gvars.h" +#include "lib/lib_04790.h" +#include "lib/lib_04a80.h" +#include "lib/lib_16110.h" +#include "lib/lib_48150.h" +#include "lib/lib_4a360.h" +#include "lib/lib_4a5e0.h" +#include "lib/lib_4a680.h" +#include "lib/lib_4ae00.h" +#include "types.h" + +GLOBAL_ASM( +glabel func00005a60 +/* 5a60: 46006109 */ trunc.l.s $f4,$f12 +/* 5a64: 44222000 */ dmfc1 $v0,$f4 +/* 5a68: 00000000 */ nop +/* 5a6c: 0002183c */ dsll32 $v1,$v0,0x0 +/* 5a70: 0003183f */ dsra32 $v1,$v1,0x0 +/* 5a74: 03e00008 */ jr $ra +/* 5a78: 0002103f */ dsra32 $v0,$v0,0x0 +); + +GLOBAL_ASM( +glabel func00005a7c +/* 5a7c: 444ef800 */ cfc1 $t6,$31 +/* 5a80: 24020001 */ addiu $v0,$zero,0x1 +/* 5a84: 44c2f800 */ ctc1 $v0,$31 +/* 5a88: 00000000 */ nop +/* 5a8c: 46006125 */ cvt.l.s $f4,$f12 +/* 5a90: 4442f800 */ cfc1 $v0,$31 +/* 5a94: 00000000 */ nop +/* 5a98: 30410004 */ andi $at,$v0,0x4 +/* 5a9c: 30420078 */ andi $v0,$v0,0x78 +/* 5aa0: 10400014 */ beqz $v0,.L00005af4 +/* 5aa4: 3c015f00 */ lui $at,0x5f00 +/* 5aa8: 44812000 */ mtc1 $at,$f4 +/* 5aac: 24020001 */ addiu $v0,$zero,0x1 +/* 5ab0: 46046101 */ sub.s $f4,$f12,$f4 +/* 5ab4: 44c2f800 */ ctc1 $v0,$31 +/* 5ab8: 00000000 */ nop +/* 5abc: 46002125 */ cvt.l.s $f4,$f4 +/* 5ac0: 4442f800 */ cfc1 $v0,$31 +/* 5ac4: 00000000 */ nop +/* 5ac8: 30410004 */ andi $at,$v0,0x4 +/* 5acc: 30420078 */ andi $v0,$v0,0x78 +/* 5ad0: 14400006 */ bnez $v0,.L00005aec +/* 5ad4: 00000000 */ nop +/* 5ad8: 3c0f8000 */ lui $t7,0x8000 +/* 5adc: 000f783c */ dsll32 $t7,$t7,0x0 +/* 5ae0: 44222000 */ dmfc1 $v0,$f4 +/* 5ae4: 10000007 */ b .L00005b04 +/* 5ae8: 004f1025 */ or $v0,$v0,$t7 +.L00005aec: +/* 5aec: 10000005 */ b .L00005b04 +/* 5af0: 2402ffff */ addiu $v0,$zero,-1 +.L00005af4: +/* 5af4: 44222000 */ dmfc1 $v0,$f4 +/* 5af8: 00000000 */ nop +/* 5afc: 0440fffb */ bltz $v0,.L00005aec +/* 5b00: 00000000 */ nop +.L00005b04: +/* 5b04: 44cef800 */ ctc1 $t6,$31 +/* 5b08: 0002183c */ dsll32 $v1,$v0,0x0 +/* 5b0c: 0003183f */ dsra32 $v1,$v1,0x0 +/* 5b10: 03e00008 */ jr $ra +/* 5b14: 0002103f */ dsra32 $v0,$v0,0x0 +); + +GLOBAL_ASM( +glabel func00005b18 +/* 5b18: afa40000 */ sw $a0,0x0($sp) +/* 5b1c: afa50004 */ sw $a1,0x4($sp) +/* 5b20: dfae0000 */ ld $t6,0x0($sp) +/* 5b24: 44ae2000 */ dmtc1 $t6,$f4 +/* 5b28: 03e00008 */ jr $ra +/* 5b2c: 46a02021 */ cvt.d.l $f0,$f4 +); + +GLOBAL_ASM( +glabel func00005b30 +/* 5b30: afa40000 */ sw $a0,0x0($sp) +/* 5b34: afa50004 */ sw $a1,0x4($sp) +/* 5b38: dfae0000 */ ld $t6,0x0($sp) +/* 5b3c: 44ae2000 */ dmtc1 $t6,$f4 +/* 5b40: 05c10005 */ bgez $t6,.L00005b58 +/* 5b44: 46a02020 */ cvt.s.l $f0,$f4 +/* 5b48: 3c014f80 */ lui $at,0x4f80 +/* 5b4c: 44813000 */ mtc1 $at,$f6 +/* 5b50: 00000000 */ nop +/* 5b54: 46060000 */ add.s $f0,$f0,$f6 +.L00005b58: +/* 5b58: 03e00008 */ jr $ra +/* 5b5c: 00000000 */ nop +); diff --git a/src/lib/lib_05dc0.c b/src/lib/lib_05dc0.c new file mode 100644 index 000000000..d662639ea --- /dev/null +++ b/src/lib/lib_05dc0.c @@ -0,0 +1,37 @@ +#include + +GLOBAL_ASM( +glabel func00005dc0 +/* 5dc0: 3c028009 */ lui $v0,%hi(var800902a0) +/* 5dc4: 244202a0 */ addiu $v0,$v0,%lo(var800902a0) +/* 5dc8: 24030007 */ addiu $v1,$zero,0x7 +/* 5dcc: a0430004 */ sb $v1,0x4($v0) +/* 5dd0: 3c0ea460 */ lui $t6,0xa460 +/* 5dd4: 8dcf0014 */ lw $t7,0x14($t6) +/* 5dd8: 3c18a460 */ lui $t8,0xa460 +/* 5ddc: 3c08a460 */ lui $t0,0xa460 +/* 5de0: a04f0005 */ sb $t7,0x5($v0) +/* 5de4: 8f190018 */ lw $t9,0x18($t8) +/* 5de8: 3c0aa460 */ lui $t2,0xa460 +/* 5dec: 3c048009 */ lui $a0,%hi(var80090318) +/* 5df0: a0590008 */ sb $t9,0x8($v0) +/* 5df4: 8d09001c */ lw $t1,0x1c($t0) +/* 5df8: 24840318 */ addiu $a0,$a0,%lo(var80090318) +/* 5dfc: 3c0ca460 */ lui $t4,0xa460 +/* 5e00: a0490006 */ sb $t1,0x6($v0) +/* 5e04: 8d4b0020 */ lw $t3,0x20($t2) +/* 5e08: a0830004 */ sb $v1,0x4($a0) +/* 5e0c: a04b0007 */ sb $t3,0x7($v0) +/* 5e10: 8d8d0024 */ lw $t5,0x24($t4) +/* 5e14: a08d0005 */ sb $t5,0x5($a0) +/* 5e18: 8dcf0028 */ lw $t7,0x28($t6) +/* 5e1c: a08f0008 */ sb $t7,0x8($a0) +/* 5e20: 8f19002c */ lw $t9,0x2c($t8) +/* 5e24: a0990006 */ sb $t9,0x6($a0) +/* 5e28: 8d090030 */ lw $t1,0x30($t0) +/* 5e2c: 03e00008 */ jr $ra +/* 5e30: a0890007 */ sb $t1,0x7($a0) +/* 5e34: 00000000 */ nop +/* 5e38: 00000000 */ nop +/* 5e3c: 00000000 */ nop +); diff --git a/src/lib/lib_05e40.c b/src/lib/lib_05e40.c index 3373e8fee..8f8499c7b 100644 --- a/src/lib/lib_05e40.c +++ b/src/lib/lib_05e40.c @@ -9,9 +9,7 @@ #include "game/data/data_02da90.h" #include "gvars/gvars.h" #include "lib/lib_05e40.h" -#include "lib/lib_4ad80.h" #include "lib/lib_4b170.h" -#include "lib/lib_4b480.h" #include "lib/lib_4b500.h" #include "lib/lib_4b550.h" #include "lib/lib_4b5e0.h" @@ -23,7 +21,7 @@ glabel func00005e40 /* 5e44: afbf0014 */ sw $ra,0x14($sp) /* 5e48: 3c058009 */ lui $a1,%hi(var80090a70) /* 5e4c: 24a50a70 */ addiu $a1,$a1,%lo(var80090a70) -/* 5e50: 0c012c5c */ jal alCopy +/* 5e50: 0c012c5c */ jal func0004b170 /* 5e54: 24060040 */ addiu $a2,$zero,0x40 /* 5e58: 3c048009 */ lui $a0,%hi(var80090a80) /* 5e5c: 8c840a80 */ lw $a0,%lo(var80090a80)($a0) diff --git a/src/lib/lib_06100.c b/src/lib/lib_06100.c index 2460d4047..352696321 100644 --- a/src/lib/lib_06100.c +++ b/src/lib/lib_06100.c @@ -8,11 +8,7 @@ #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" -#include "lib/lib_481e0.h" -#include "lib/lib_48650.h" -#include "lib/lib_48b20.h" #include "lib/lib_4b5e0.h" -#include "lib/lib_4ba90.h" #include "types.h" GLOBAL_ASM( diff --git a/src/lib/lib_06330.c b/src/lib/lib_06330.c index 1deea83d3..ca7a83dfe 100644 --- a/src/lib/lib_06330.c +++ b/src/lib/lib_06330.c @@ -9,8 +9,6 @@ #include "game/data/data_02da90.h" #include "gvars/gvars.h" #include "lib/lib_06100.h" -#include "lib/lib_48650.h" -#include "lib/lib_48b20.h" #include "lib/lib_4b5e0.h" #include "types.h" diff --git a/src/lib/lib_06550.c b/src/lib/lib_06550.c index 5caf8b3c2..05b390aa4 100644 --- a/src/lib/lib_06550.c +++ b/src/lib/lib_06550.c @@ -9,10 +9,8 @@ #include "game/data/data_02da90.h" #include "gvars/gvars.h" #include "lib/lib_06550.h" -#include "lib/lib_4a810.h" #include "lib/lib_4b170.h" #include "lib/lib_4b5e0.h" -#include "lib/lib_4ba90.h" #include "lib/lib_4c090.h" #include "lib/lib_4cc10.h" #include "lib/lib_4cde0.h" @@ -710,7 +708,7 @@ glabel func00006d60 /* 6ec4: 8fa40044 */ lw $a0,0x44($sp) .L00006ec8: /* 6ec8: 2605000c */ addiu $a1,$s0,0xc -/* 6ecc: 0c012c5c */ jal alCopy +/* 6ecc: 0c012c5c */ jal func0004b170 /* 6ed0: 24060020 */ addiu $a2,$zero,0x20 /* 6ed4: 8fab0044 */ lw $t3,0x44($sp) /* 6ed8: 24190010 */ addiu $t9,$zero,0x10 diff --git a/src/lib/lib_070d0.c b/src/lib/lib_070d0.c index a50dfd880..bde7ef0d9 100644 --- a/src/lib/lib_070d0.c +++ b/src/lib/lib_070d0.c @@ -12,7 +12,6 @@ #include "lib/lib_074f0.h" #include "lib/lib_0d0a0.h" #include "lib/lib_48150.h" -#include "lib/lib_4b480.h" #include "lib/lib_4d6f0.h" #include "types.h" diff --git a/src/lib/lib_08a20.c b/src/lib/lib_08a20.c index de26a7b07..20cbcabd9 100644 --- a/src/lib/lib_08a20.c +++ b/src/lib/lib_08a20.c @@ -9,18 +9,14 @@ #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" -#include "lib/lib_03ee0.h" #include "lib/lib_08a20.h" #include "lib/lib_09660.h" #include "lib/lib_2faf0.h" #include "lib/lib_2fba0.h" #include "lib/lib_2fc60.h" #include "lib/lib_30ce0.h" -#include "lib/lib_481e0.h" -#include "lib/lib_48650.h" #include "lib/lib_490b0.h" #include "lib/lib_4ae00.h" -#include "lib/lib_4b480.h" #include "lib/lib_4e270.h" #include "lib/lib_4e3c0.h" #include "lib/lib_4e470.h" diff --git a/src/lib/lib_09660.c b/src/lib/lib_09660.c index a34f0e20c..931c5782d 100644 --- a/src/lib/lib_09660.c +++ b/src/lib/lib_09660.c @@ -19,17 +19,13 @@ #include "lib/lib_159b0.h" #include "lib/lib_2faf0.h" #include "lib/lib_30ce0.h" -#include "lib/lib_481e0.h" -#include "lib/lib_48650.h" #include "lib/lib_48cd0.h" #include "lib/lib_48dc0.h" #include "lib/lib_48ef0.h" #include "lib/lib_48f50.h" #include "lib/lib_4a360.h" #include "lib/lib_4b170.h" -#include "lib/lib_4b480.h" #include "lib/lib_4e470.h" -#include "lib/lib_4e530.h" #include "types.h" const u32 var700526d0[] = {0x01400140}; @@ -1456,7 +1452,7 @@ glabel func0000a044 /* a9e4: 0000c012 */ mflo $t8 /* a9e8: 00f87021 */ addu $t6,$a3,$t8 /* a9ec: ac2ed594 */ sw $t6,%lo(g_ViData)($at) -/* a9f0: 0c012c5c */ jal alCopy +/* a9f0: 0c012c5c */ jal func0004b170 /* a9f4: 8ca5d594 */ lw $a1,%lo(g_ViData)($a1) /* a9f8: 3c038009 */ lui $v1,%hi(var80092874+0x3) /* a9fc: 24632877 */ addiu $v1,$v1,%lo(var80092874+0x3) diff --git a/src/lib/lib_0c000.c b/src/lib/lib_0c000.c index 8670917ed..d3e6c170e 100644 --- a/src/lib/lib_0c000.c +++ b/src/lib/lib_0c000.c @@ -8,14 +8,9 @@ #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" -#include "lib/lib_03ee0.h" #include "lib/lib_09660.h" #include "lib/lib_0c000.h" #include "lib/lib_2fa00.h" -#include "lib/lib_481e0.h" -#include "lib/lib_48520.h" -#include "lib/lib_48650.h" -#include "lib/lib_4e530.h" #include "types.h" const char var70052700[] = "BD"; diff --git a/src/lib/lib_0d0a0.c b/src/lib/lib_0d0a0.c index 7b9d2c31f..b6e7cef87 100644 --- a/src/lib/lib_0d0a0.c +++ b/src/lib/lib_0d0a0.c @@ -9,10 +9,7 @@ #include "game/data/data_02da90.h" #include "gvars/gvars.h" #include "lib/lib_0d0a0.h" -#include "lib/lib_481e0.h" -#include "lib/lib_48650.h" #include "lib/lib_4e470.h" -#include "lib/lib_4e530.h" #include "types.h" GLOBAL_ASM( diff --git a/src/lib/lib_0d520.c b/src/lib/lib_0d520.c index 06bf517d6..4b6cffbd9 100644 --- a/src/lib/lib_0d520.c +++ b/src/lib/lib_0d520.c @@ -47,7 +47,6 @@ #include "game/splat.h" #include "game/utils.h" #include "gvars/gvars.h" -#include "lib/lib_03050.h" #include "lib/lib_070d0.h" #include "lib/lib_074f0.h" #include "lib/lib_08a20.h" @@ -68,10 +67,6 @@ #include "lib/lib_233c0.h" #include "lib/lib_2f490.h" #include "lib/lib_2fa00.h" -#include "lib/lib_481e0.h" -#include "lib/lib_48650.h" -#include "lib/lib_48b20.h" -#include "lib/lib_4b480.h" #include "types.h" const char var70052ca0[] = "-ml0 -me0 -mgfx120 -mvtx98 -ma400"; diff --git a/src/lib/lib_0e9d0.c b/src/lib/lib_0e9d0.c index f4b4515d8..463a52988 100644 --- a/src/lib/lib_0e9d0.c +++ b/src/lib/lib_0e9d0.c @@ -26,7 +26,6 @@ #include "lib/lib_38d10.h" #include "lib/lib_38d30.h" #include "lib/lib_39c80.h" -#include "lib/lib_481e0.h" #include "lib/lib_48830.h" #include "types.h" diff --git a/src/lib/lib_12dc0.c b/src/lib/lib_12dc0.c index ed7693657..5ac271ae2 100644 --- a/src/lib/lib_12dc0.c +++ b/src/lib/lib_12dc0.c @@ -12,7 +12,6 @@ #include "lib/lib_13130.h" #include "lib/lib_2fa00.h" #include "lib/lib_4a5e0.h" -#include "lib/lib_4e530.h" #include "types.h" const u32 var70053ff0[] = {0x00000000}; diff --git a/src/lib/lib_13710.c b/src/lib/lib_13710.c index 97122df27..c4984ee00 100644 --- a/src/lib/lib_13710.c +++ b/src/lib/lib_13710.c @@ -8,7 +8,6 @@ #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" -#include "lib/lib_03050.h" #include "lib/lib_13710.h" #include "types.h" diff --git a/src/lib/lib_13750.c b/src/lib/lib_13750.c index 44a407ca2..37f150dbd 100644 --- a/src/lib/lib_13750.c +++ b/src/lib/lib_13750.c @@ -9,7 +9,6 @@ #include "game/data/data_02da90.h" #include "gvars/gvars.h" #include "lib/lib_13750.h" -#include "lib/lib_481e0.h" #include "types.h" void func00013750(void) diff --git a/src/lib/lib_13900.c b/src/lib/lib_13900.c index b9ad5cd73..60f148868 100644 --- a/src/lib/lib_13900.c +++ b/src/lib/lib_13900.c @@ -12,13 +12,6 @@ #include "lib/lib_04a80.h" #include "lib/lib_0d520.h" #include "lib/lib_13900.h" -#include "lib/lib_481e0.h" -#include "lib/lib_48520.h" -#include "lib/lib_48650.h" -#include "lib/lib_488e0.h" -#include "lib/lib_4a980.h" -#include "lib/lib_4f350.h" -#include "lib/lib_4f400.h" #include "lib/lib_4f5e0.h" #include "types.h" @@ -275,7 +268,7 @@ glabel func00013ab8 /* 13be0: 3c04800a */ lui $a0,%hi(var80099e78) /* 13be4: 24849e78 */ addiu $a0,$a0,%lo(var80099e78) /* 13be8: 27a50027 */ addiu $a1,$sp,0x27 -/* 13bec: 0c0015dc */ jal func00005770 +/* 13bec: 0c0015dc */ jal osPfsIsPlug /* 13bf0: afa70030 */ sw $a3,0x30($sp) /* 13bf4: 8fa70030 */ lw $a3,0x30($sp) /* 13bf8: 50e00005 */ beqzl $a3,.L00013c10 diff --git a/src/lib/lib_159b0.c b/src/lib/lib_159b0.c index 6e1323a3b..2289b0b22 100644 --- a/src/lib/lib_159b0.c +++ b/src/lib/lib_159b0.c @@ -8,8 +8,6 @@ #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" -#include "lib/lib_48650.h" -#include "lib/lib_488e0.h" #include "types.h" GLOBAL_ASM( diff --git a/src/lib/lib_1a500.c b/src/lib/lib_1a500.c index f824ba98d..8e465e40f 100644 --- a/src/lib/lib_1a500.c +++ b/src/lib/lib_1a500.c @@ -22,7 +22,6 @@ #include "lib/lib_1a500.h" #include "lib/lib_233c0.h" #include "lib/lib_4a360.h" -#include "lib/lib_4b480.h" #include "lib/lib_4f5e0.h" #include "types.h" diff --git a/src/lib/lib_233c0.c b/src/lib/lib_233c0.c index c6244a61e..94440fd21 100644 --- a/src/lib/lib_233c0.c +++ b/src/lib/lib_233c0.c @@ -344,7 +344,7 @@ glabel func000237e8 /* 23808: 8deff024 */ lw $t7,%lo(var8005f024)($t7) /* 2380c: afa70018 */ sw $a3,0x18($sp) /* 23810: 01e52021 */ addu $a0,$t7,$a1 -/* 23814: 0c012c5c */ jal alCopy +/* 23814: 0c012c5c */ jal func0004b170 /* 23818: 00e02825 */ or $a1,$a3,$zero /* 2381c: 10000007 */ b .L0002383c /* 23820: 8fa20018 */ lw $v0,0x18($sp) diff --git a/src/lib/lib_317f0.c b/src/lib/lib_317f0.c index d781df96a..5db0f54d9 100644 --- a/src/lib/lib_317f0.c +++ b/src/lib/lib_317f0.c @@ -24,8 +24,6 @@ #include "lib/lib_3d280.h" #include "lib/lib_3e3e0.h" #include "lib/lib_3e730.h" -#include "lib/lib_48650.h" -#include "lib/lib_488e0.h" #include "types.h" const u32 var70054740[] = {0x70031ce0}; diff --git a/src/lib/lib_34030.c b/src/lib/lib_34030.c index 76e0a9f02..fe8c7b605 100644 --- a/src/lib/lib_34030.c +++ b/src/lib/lib_34030.c @@ -24,8 +24,6 @@ #include "lib/lib_3d280.h" #include "lib/lib_3e3e0.h" #include "lib/lib_3e730.h" -#include "lib/lib_48650.h" -#include "lib/lib_488e0.h" #include "types.h" const u32 var70054780[] = {0x70034500}; diff --git a/src/lib/lib_37b00.c b/src/lib/lib_37b00.c index cdf92b531..f8ed3f237 100644 --- a/src/lib/lib_37b00.c +++ b/src/lib/lib_37b00.c @@ -14,7 +14,6 @@ #include "lib/lib_43dd0.h" #include "lib/lib_4ae00.h" #include "lib/lib_4b170.h" -#include "lib/lib_4b480.h" #include "types.h" GLOBAL_ASM( @@ -1233,7 +1232,7 @@ glabel func00038ba8 /* 38c60: afb8001c */ sw $t8,0x1c($sp) /* 38c64: 8fa4001c */ lw $a0,0x1c($sp) /* 38c68: 8fa50024 */ lw $a1,0x24($sp) -/* 38c6c: 0c012c5c */ jal alCopy +/* 38c6c: 0c012c5c */ jal func0004b170 /* 38c70: 8fa60028 */ lw $a2,0x28($sp) /* 38c74: 3c08800a */ lui $t0,%hi(var8009c3c4) /* 38c78: 8d08c3c4 */ lw $t0,%lo(var8009c3c4)($t0) diff --git a/src/lib/lib_3a100.c b/src/lib/lib_3a100.c index 9d496c25a..5d8b86a18 100644 --- a/src/lib/lib_3a100.c +++ b/src/lib/lib_3a100.c @@ -12,7 +12,6 @@ #include "lib/lib_2faf0.h" #include "lib/lib_3a100.h" #include "lib/lib_446d0.h" -#include "lib/lib_4b480.h" #include "types.h" const u32 var70054a90[] = {0x3fb50481}; diff --git a/src/lib/lib_3c4d0.c b/src/lib/lib_3c4d0.c index 4476e125a..155205c4a 100644 --- a/src/lib/lib_3c4d0.c +++ b/src/lib/lib_3c4d0.c @@ -11,7 +11,6 @@ #include "lib/lib_30ce0.h" #include "lib/lib_3c4d0.h" #include "lib/lib_3e730.h" -#include "lib/lib_48650.h" #include "lib/lib_4b170.h" #include "types.h" @@ -81,7 +80,7 @@ glabel func0003c56c /* 3c5a8: 8fa40024 */ lw $a0,0x24($sp) /* 3c5ac: 8fa5002c */ lw $a1,0x2c($sp) /* 3c5b0: 24060010 */ addiu $a2,$zero,0x10 -/* 3c5b4: 0c012c5c */ jal alCopy +/* 3c5b4: 0c012c5c */ jal func0004b170 /* 3c5b8: 2484000c */ addiu $a0,$a0,0xc /* 3c5bc: 8fa40024 */ lw $a0,0x24($sp) /* 3c5c0: 0c00c5dc */ jal alLink @@ -149,7 +148,7 @@ glabel alEvtqPostEvent /* 3c694: 8fa5002c */ lw $a1,0x2c($sp) /* 3c698: 8fa40034 */ lw $a0,0x34($sp) /* 3c69c: 24060010 */ addiu $a2,$zero,0x10 -/* 3c6a0: 0c012c5c */ jal alCopy +/* 3c6a0: 0c012c5c */ jal func0004b170 /* 3c6a4: 24a5000c */ addiu $a1,$a1,0xc /* 3c6a8: 8faa0038 */ lw $t2,0x38($sp) /* 3c6ac: 3c017fff */ lui $at,0x7fff diff --git a/src/lib/lib_3e730.c b/src/lib/lib_3e730.c index a8bb78773..03089e84f 100644 --- a/src/lib/lib_3e730.c +++ b/src/lib/lib_3e730.c @@ -19,7 +19,6 @@ #include "lib/lib_47550.h" #include "lib/lib_4ae00.h" #include "lib/lib_4b170.h" -#include "lib/lib_4b480.h" #include "types.h" const u32 var70054af0[] = {0x7003eff8}; @@ -9019,7 +9018,7 @@ glabel func00041600 /* 41b34: 27ab0070 */ addiu $t3,$sp,0x70 /* 41b38: 012b2021 */ addu $a0,$t1,$t3 /* 41b3c: 27a50028 */ addiu $a1,$sp,0x28 -/* 41b40: 0c012c5c */ jal alCopy +/* 41b40: 0c012c5c */ jal func0004b170 /* 41b44: 24060010 */ addiu $a2,$zero,0x10 /* 41b48: 1000000f */ b .L00041b88 /* 41b4c: 00000000 */ nop @@ -9036,7 +9035,7 @@ glabel func00041600 /* 41b74: 010fc021 */ addu $t8,$t0,$t7 /* 41b78: 030e2021 */ addu $a0,$t8,$t6 /* 41b7c: 27a50028 */ addiu $a1,$sp,0x28 -/* 41b80: 0c012c5c */ jal alCopy +/* 41b80: 0c012c5c */ jal func0004b170 /* 41b84: 24060010 */ addiu $a2,$zero,0x10 .L00041b88: /* 41b88: afa00024 */ sw $zero,0x24($sp) @@ -11247,7 +11246,7 @@ glabel func0004371c /* 43bc4: 27a80034 */ addiu $t0,$sp,0x34 /* 43bc8: 01e82821 */ addu $a1,$t7,$t0 /* 43bcc: 24846a64 */ addiu $a0,$a0,0x6a64 -/* 43bd0: 0c012c5c */ jal alCopy +/* 43bd0: 0c012c5c */ jal func0004b170 /* 43bd4: 24060048 */ addiu $a2,$zero,0x48 /* 43bd8: 8fa9094c */ lw $t1,0x94c($sp) /* 43bdc: 8fae093c */ lw $t6,0x93c($sp) diff --git a/src/lib/lib_43dd0.c b/src/lib/lib_43dd0.c index 7a602a6c6..a120e5593 100644 --- a/src/lib/lib_43dd0.c +++ b/src/lib/lib_43dd0.c @@ -35,7 +35,7 @@ glabel func00043dd0 /* 43e08: 2525001c */ addiu $a1,$t1,0x1c /* 43e0c: 012a2021 */ addu $a0,$t1,$t2 /* 43e10: 2484001c */ addiu $a0,$a0,0x1c -/* 43e14: 0c012c5c */ jal alCopy +/* 43e14: 0c012c5c */ jal func0004b170 /* 43e18: 01403025 */ or $a2,$t2,$zero /* 43e1c: 8fab0020 */ lw $t3,0x20($sp) /* 43e20: 8fad001c */ lw $t5,0x1c($sp) diff --git a/src/lib/lib_44bc0.c b/src/lib/lib_44bc0.c index 4608ccef7..c9c285a13 100644 --- a/src/lib/lib_44bc0.c +++ b/src/lib/lib_44bc0.c @@ -10,7 +10,6 @@ #include "gvars/gvars.h" #include "lib/lib_37b00.h" #include "lib/lib_3a100.h" -#include "lib/lib_4b480.h" #include "types.h" GLOBAL_ASM( diff --git a/src/lib/lib_44f60.c b/src/lib/lib_44f60.c index fefabaf1b..ce72e1ea8 100644 --- a/src/lib/lib_44f60.c +++ b/src/lib/lib_44f60.c @@ -13,7 +13,6 @@ #include "lib/lib_47a90.h" #include "lib/lib_4a360.h" #include "lib/lib_4b170.h" -#include "lib/lib_4b480.h" #include "types.h" GLOBAL_ASM( @@ -556,7 +555,7 @@ glabel func00045608 /* 4573c: 8dab0020 */ lw $t3,0x20($t5) /* 45740: 8da50010 */ lw $a1,0x10($t5) /* 45744: 8d64000c */ lw $a0,0xc($t3) -/* 45748: 0c012c5c */ jal alCopy +/* 45748: 0c012c5c */ jal func0004b170 /* 4574c: 2484000c */ addiu $a0,$a0,0xc /* 45750: 10000008 */ b .L00045774 /* 45754: 00000000 */ nop diff --git a/src/lib/lib_47a90.c b/src/lib/lib_47a90.c index 78c712040..ecceffb58 100644 --- a/src/lib/lib_47a90.c +++ b/src/lib/lib_47a90.c @@ -9,7 +9,6 @@ #include "game/data/data_02da90.h" #include "gvars/gvars.h" #include "lib/lib_44f60.h" -#include "lib/lib_4b480.h" #include "types.h" GLOBAL_ASM( diff --git a/src/lib/lib_481e0.c b/src/lib/lib_481e0.c deleted file mode 100644 index c07eae287..000000000 --- a/src/lib/lib_481e0.c +++ /dev/null @@ -1,260 +0,0 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_034f0.h" -#include "lib/lib_491b0.h" -#include "lib/lib_49c20.h" -#include "types.h" - -GLOBAL_ASM( -glabel __osSetFpcCsr -/* 481e0: 4442f800 */ cfc1 $v0,$31 -/* 481e4: 44c4f800 */ ctc1 $a0,$31 -/* 481e8: 03e00008 */ jr $ra -/* 481ec: 00000000 */ nop -); - -GLOBAL_ASM( -glabel osStartThread -/* 481f0: 27bdffd8 */ addiu $sp,$sp,-40 -/* 481f4: afbf001c */ sw $ra,0x1c($sp) -/* 481f8: afa40028 */ sw $a0,0x28($sp) -/* 481fc: afb10018 */ sw $s1,0x18($sp) -/* 48200: 0c01256c */ jal __osDisableInt -/* 48204: afb00014 */ sw $s0,0x14($sp) -/* 48208: 8fae0028 */ lw $t6,0x28($sp) -/* 4820c: 24010001 */ addiu $at,$zero,0x1 -/* 48210: 00408025 */ or $s0,$v0,$zero -/* 48214: 95d10010 */ lhu $s1,0x10($t6) -/* 48218: 1221000c */ beq $s1,$at,.L0004824c -/* 4821c: 24010008 */ addiu $at,$zero,0x8 -/* 48220: 1621002a */ bne $s1,$at,.L000482cc -/* 48224: 00000000 */ nop -/* 48228: 8fb80028 */ lw $t8,0x28($sp) -/* 4822c: 240f0002 */ addiu $t7,$zero,0x2 -/* 48230: 3c048006 */ lui $a0,%hi(var80060938) -/* 48234: a70f0010 */ sh $t7,0x10($t8) -/* 48238: 8fa50028 */ lw $a1,0x28($sp) -/* 4823c: 0c000f2e */ jal __osEnqueueThread -/* 48240: 24840938 */ addiu $a0,$a0,%lo(var80060938) -/* 48244: 10000021 */ b .L000482cc -/* 48248: 00000000 */ nop -.L0004824c: -/* 4824c: 8fb90028 */ lw $t9,0x28($sp) -/* 48250: 8f280008 */ lw $t0,0x8($t9) -/* 48254: 11000005 */ beqz $t0,.L0004826c -/* 48258: 00000000 */ nop -/* 4825c: 3c098006 */ lui $t1,%hi(var80060938) -/* 48260: 25290938 */ addiu $t1,$t1,%lo(var80060938) -/* 48264: 1509000a */ bne $t0,$t1,.L00048290 -/* 48268: 00000000 */ nop -.L0004826c: -/* 4826c: 8fab0028 */ lw $t3,0x28($sp) -/* 48270: 240a0002 */ addiu $t2,$zero,0x2 -/* 48274: 3c048006 */ lui $a0,%hi(var80060938) -/* 48278: a56a0010 */ sh $t2,0x10($t3) -/* 4827c: 8fa50028 */ lw $a1,0x28($sp) -/* 48280: 0c000f2e */ jal __osEnqueueThread -/* 48284: 24840938 */ addiu $a0,$a0,%lo(var80060938) -/* 48288: 10000010 */ b .L000482cc -/* 4828c: 00000000 */ nop -.L00048290: -/* 48290: 8fad0028 */ lw $t5,0x28($sp) -/* 48294: 240c0008 */ addiu $t4,$zero,0x8 -/* 48298: a5ac0010 */ sh $t4,0x10($t5) -/* 4829c: 8fae0028 */ lw $t6,0x28($sp) -/* 482a0: 8dc40008 */ lw $a0,0x8($t6) -/* 482a4: 0c000f2e */ jal __osEnqueueThread -/* 482a8: 01c02825 */ or $a1,$t6,$zero -/* 482ac: 8faf0028 */ lw $t7,0x28($sp) -/* 482b0: 0c000f40 */ jal __osPopThread -/* 482b4: 8de40008 */ lw $a0,0x8($t7) -/* 482b8: 00408825 */ or $s1,$v0,$zero -/* 482bc: 3c048006 */ lui $a0,%hi(var80060938) -/* 482c0: 24840938 */ addiu $a0,$a0,%lo(var80060938) -/* 482c4: 0c000f2e */ jal __osEnqueueThread -/* 482c8: 02202825 */ or $a1,$s1,$zero -.L000482cc: -/* 482cc: 3c188006 */ lui $t8,%hi(__osRunningThread) -/* 482d0: 8f180940 */ lw $t8,%lo(__osRunningThread)($t8) -/* 482d4: 17000005 */ bnez $t8,.L000482ec -/* 482d8: 00000000 */ nop -/* 482dc: 0c000f44 */ jal __osDispatchThread -/* 482e0: 00000000 */ nop -/* 482e4: 1000000f */ b .L00048324 -/* 482e8: 00000000 */ nop -.L000482ec: -/* 482ec: 3c198006 */ lui $t9,%hi(__osRunningThread) -/* 482f0: 3c098006 */ lui $t1,%hi(var80060938) -/* 482f4: 8d290938 */ lw $t1,%lo(var80060938)($t1) -/* 482f8: 8f390940 */ lw $t9,%lo(__osRunningThread)($t9) -/* 482fc: 8d2a0004 */ lw $t2,0x4($t1) -/* 48300: 8f280004 */ lw $t0,0x4($t9) -/* 48304: 010a082a */ slt $at,$t0,$t2 -/* 48308: 10200006 */ beqz $at,.L00048324 -/* 4830c: 00000000 */ nop -/* 48310: 240b0002 */ addiu $t3,$zero,0x2 -/* 48314: 3c048006 */ lui $a0,%hi(var80060938) -/* 48318: a72b0010 */ sh $t3,0x10($t9) -/* 4831c: 0c000ee8 */ jal __osEnqueueAndYield -/* 48320: 24840938 */ addiu $a0,$a0,%lo(var80060938) -.L00048324: -/* 48324: 0c012588 */ jal __osRestoreInt -/* 48328: 02002025 */ or $a0,$s0,$zero -/* 4832c: 8fbf001c */ lw $ra,0x1c($sp) -/* 48330: 8fb00014 */ lw $s0,0x14($sp) -/* 48334: 8fb10018 */ lw $s1,0x18($sp) -/* 48338: 03e00008 */ jr $ra -/* 4833c: 27bd0028 */ addiu $sp,$sp,0x28 -); - -GLOBAL_ASM( -glabel osCreateMesgQueue -/* 48340: 3c0e8006 */ lui $t6,%hi(var80060930) -/* 48344: 3c0f8006 */ lui $t7,%hi(var80060930) -/* 48348: 25ce0930 */ addiu $t6,$t6,%lo(var80060930) -/* 4834c: 25ef0930 */ addiu $t7,$t7,%lo(var80060930) -/* 48350: ac8e0000 */ sw $t6,0x0($a0) -/* 48354: ac8f0004 */ sw $t7,0x4($a0) -/* 48358: ac800008 */ sw $zero,0x8($a0) -/* 4835c: ac80000c */ sw $zero,0xc($a0) -/* 48360: ac860010 */ sw $a2,0x10($a0) -/* 48364: 03e00008 */ jr $ra -/* 48368: ac850014 */ sw $a1,0x14($a0) -/* 4836c: 00000000 */ nop -); - -GLOBAL_ASM( -glabel osStopThread -/* 48370: 27bdffc8 */ addiu $sp,$sp,-56 -/* 48374: afbf0024 */ sw $ra,0x24($sp) -/* 48378: afa40038 */ sw $a0,0x38($sp) -/* 4837c: afb20020 */ sw $s2,0x20($sp) -/* 48380: afb1001c */ sw $s1,0x1c($sp) -/* 48384: 0c01256c */ jal __osDisableInt -/* 48388: afb00018 */ sw $s0,0x18($sp) -/* 4838c: 8fae0038 */ lw $t6,0x38($sp) -/* 48390: 00408025 */ or $s0,$v0,$zero -/* 48394: 15c00003 */ bnez $t6,.L000483a4 -/* 48398: 00000000 */ nop -/* 4839c: 10000003 */ b .L000483ac -/* 483a0: 24110004 */ addiu $s1,$zero,0x4 -.L000483a4: -/* 483a4: 8faf0038 */ lw $t7,0x38($sp) -/* 483a8: 95f10010 */ lhu $s1,0x10($t7) -.L000483ac: -/* 483ac: 02209025 */ or $s2,$s1,$zero -/* 483b0: 24010002 */ addiu $at,$zero,0x2 -/* 483b4: 1241000f */ beq $s2,$at,.L000483f4 -/* 483b8: 24010004 */ addiu $at,$zero,0x4 -/* 483bc: 12410005 */ beq $s2,$at,.L000483d4 -/* 483c0: 24010008 */ addiu $at,$zero,0x8 -/* 483c4: 1241000b */ beq $s2,$at,.L000483f4 -/* 483c8: 00000000 */ nop -/* 483cc: 10000010 */ b .L00048410 -/* 483d0: 00000000 */ nop -.L000483d4: -/* 483d4: 3c198006 */ lui $t9,%hi(__osRunningThread) -/* 483d8: 8f390940 */ lw $t9,%lo(__osRunningThread)($t9) -/* 483dc: 24180001 */ addiu $t8,$zero,0x1 -/* 483e0: 00002025 */ or $a0,$zero,$zero -/* 483e4: 0c000ee8 */ jal __osEnqueueAndYield -/* 483e8: a7380010 */ sh $t8,0x10($t9) -/* 483ec: 10000008 */ b .L00048410 -/* 483f0: 00000000 */ nop -.L000483f4: -/* 483f4: 8fa90038 */ lw $t1,0x38($sp) -/* 483f8: 24080001 */ addiu $t0,$zero,0x1 -/* 483fc: a5280010 */ sh $t0,0x10($t1) -/* 48400: 8faa0038 */ lw $t2,0x38($sp) -/* 48404: 8d440008 */ lw $a0,0x8($t2) -/* 48408: 0c012884 */ jal __osDequeueThread -/* 4840c: 01402825 */ or $a1,$t2,$zero -.L00048410: -/* 48410: 0c012588 */ jal __osRestoreInt -/* 48414: 02002025 */ or $a0,$s0,$zero -/* 48418: 8fbf0024 */ lw $ra,0x24($sp) -/* 4841c: 8fb00018 */ lw $s0,0x18($sp) -/* 48420: 8fb1001c */ lw $s1,0x1c($sp) -/* 48424: 8fb20020 */ lw $s2,0x20($sp) -/* 48428: 03e00008 */ jr $ra -/* 4842c: 27bd0038 */ addiu $sp,$sp,0x38 -); - -GLOBAL_ASM( -glabel osSetThreadPri -/* 48430: 27bdffd8 */ addiu $sp,$sp,-40 -/* 48434: afbf001c */ sw $ra,0x1c($sp) -/* 48438: afa40028 */ sw $a0,0x28($sp) -/* 4843c: afa5002c */ sw $a1,0x2c($sp) -/* 48440: 0c01256c */ jal __osDisableInt -/* 48444: afb00018 */ sw $s0,0x18($sp) -/* 48448: 8fae0028 */ lw $t6,0x28($sp) -/* 4844c: 00408025 */ or $s0,$v0,$zero -/* 48450: 15c00004 */ bnez $t6,.L00048464 -/* 48454: 00000000 */ nop -/* 48458: 3c0f8006 */ lui $t7,%hi(__osRunningThread) -/* 4845c: 8def0940 */ lw $t7,%lo(__osRunningThread)($t7) -/* 48460: afaf0028 */ sw $t7,0x28($sp) -.L00048464: -/* 48464: 8fb80028 */ lw $t8,0x28($sp) -/* 48468: 8fa8002c */ lw $t0,0x2c($sp) -/* 4846c: 8f190004 */ lw $t9,0x4($t8) -/* 48470: 13280020 */ beq $t9,$t0,.L000484f4 -/* 48474: 00000000 */ nop -/* 48478: af080004 */ sw $t0,0x4($t8) -/* 4847c: 3c0a8006 */ lui $t2,%hi(__osRunningThread) -/* 48480: 8d4a0940 */ lw $t2,%lo(__osRunningThread)($t2) -/* 48484: 8fa90028 */ lw $t1,0x28($sp) -/* 48488: 112a000c */ beq $t1,$t2,.L000484bc -/* 4848c: 00000000 */ nop -/* 48490: 952b0010 */ lhu $t3,0x10($t1) -/* 48494: 24010001 */ addiu $at,$zero,0x1 -/* 48498: 11610008 */ beq $t3,$at,.L000484bc -/* 4849c: 00000000 */ nop -/* 484a0: 8d240008 */ lw $a0,0x8($t1) -/* 484a4: 0c012884 */ jal __osDequeueThread -/* 484a8: 01202825 */ or $a1,$t1,$zero -/* 484ac: 8fac0028 */ lw $t4,0x28($sp) -/* 484b0: 8d840008 */ lw $a0,0x8($t4) -/* 484b4: 0c000f2e */ jal __osEnqueueThread -/* 484b8: 01802825 */ or $a1,$t4,$zero -.L000484bc: -/* 484bc: 3c0d8006 */ lui $t5,%hi(__osRunningThread) -/* 484c0: 3c0f8006 */ lui $t7,%hi(var80060938) -/* 484c4: 8def0938 */ lw $t7,%lo(var80060938)($t7) -/* 484c8: 8dad0940 */ lw $t5,%lo(__osRunningThread)($t5) -/* 484cc: 8df90004 */ lw $t9,0x4($t7) -/* 484d0: 8dae0004 */ lw $t6,0x4($t5) -/* 484d4: 01d9082a */ slt $at,$t6,$t9 -/* 484d8: 10200006 */ beqz $at,.L000484f4 -/* 484dc: 00000000 */ nop -/* 484e0: 24080002 */ addiu $t0,$zero,0x2 -/* 484e4: 3c048006 */ lui $a0,%hi(var80060938) -/* 484e8: a5a80010 */ sh $t0,0x10($t5) -/* 484ec: 0c000ee8 */ jal __osEnqueueAndYield -/* 484f0: 24840938 */ addiu $a0,$a0,%lo(var80060938) -.L000484f4: -/* 484f4: 0c012588 */ jal __osRestoreInt -/* 484f8: 02002025 */ or $a0,$s0,$zero -/* 484fc: 8fbf001c */ lw $ra,0x1c($sp) -/* 48500: 8fb00018 */ lw $s0,0x18($sp) -/* 48504: 27bd0028 */ addiu $sp,$sp,0x28 -/* 48508: 03e00008 */ jr $ra -/* 4850c: 00000000 */ nop -); - -GLOBAL_ASM( -glabel osGetCount -/* 48510: 40024800 */ mfc0 $v0,$9 -/* 48514: 03e00008 */ jr $ra -/* 48518: 00000000 */ nop -/* 4851c: 00000000 */ nop -); \ No newline at end of file diff --git a/src/lib/lib_485e0.c b/src/lib/lib_485e0.c index 682d8ff9b..101a90ff3 100644 --- a/src/lib/lib_485e0.c +++ b/src/lib/lib_485e0.c @@ -8,7 +8,6 @@ #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" -#include "lib/lib_491b0.h" #include "types.h" GLOBAL_ASM( diff --git a/src/lib/lib_48830.c b/src/lib/lib_48830.c index a77cdd96f..6c7044de4 100644 --- a/src/lib/lib_48830.c +++ b/src/lib/lib_48830.c @@ -8,7 +8,6 @@ #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" -#include "lib/lib_491b0.h" #include "types.h" GLOBAL_ASM( diff --git a/src/lib/lib_48cd0.c b/src/lib/lib_48cd0.c index 0245642e6..0fd359d74 100644 --- a/src/lib/lib_48cd0.c +++ b/src/lib/lib_48cd0.c @@ -8,7 +8,6 @@ #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" -#include "lib/lib_491b0.h" #include "types.h" GLOBAL_ASM( diff --git a/src/lib/lib_48dc0.c b/src/lib/lib_48dc0.c index 4aa119f82..9e48699f8 100644 --- a/src/lib/lib_48dc0.c +++ b/src/lib/lib_48dc0.c @@ -8,7 +8,6 @@ #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" -#include "lib/lib_491b0.h" #include "types.h" GLOBAL_ASM( diff --git a/src/lib/lib_48ef0.c b/src/lib/lib_48ef0.c index 2d061c535..a4bf39a86 100644 --- a/src/lib/lib_48ef0.c +++ b/src/lib/lib_48ef0.c @@ -8,7 +8,6 @@ #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" -#include "lib/lib_491b0.h" #include "types.h" GLOBAL_ASM( diff --git a/src/lib/lib_48f50.c b/src/lib/lib_48f50.c index 6ecc1150f..bc1cf0ca7 100644 --- a/src/lib/lib_48f50.c +++ b/src/lib/lib_48f50.c @@ -8,7 +8,6 @@ #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" -#include "lib/lib_491b0.h" #include "types.h" GLOBAL_ASM( diff --git a/src/lib/lib_490b0.c b/src/lib/lib_490b0.c index 34e5b3813..031846bc1 100644 --- a/src/lib/lib_490b0.c +++ b/src/lib/lib_490b0.c @@ -8,8 +8,6 @@ #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" -#include "lib/lib_481e0.h" -#include "lib/lib_491b0.h" #include "lib/lib_4b500.h" #include "types.h" diff --git a/src/lib/lib_49780.c b/src/lib/lib_49780.c index 869a31d0c..a2da5283d 100644 --- a/src/lib/lib_49780.c +++ b/src/lib/lib_49780.c @@ -8,7 +8,6 @@ #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" -#include "lib/lib_4b480.h" #include "types.h" GLOBAL_ASM( @@ -18,211 +17,3 @@ glabel func00049780 /* 49788: 8c420910 */ lw $v0,%lo(var80060910)($v0) /* 4978c: 00000000 */ nop ); - -GLOBAL_ASM( -glabel __osViSwapContext -/* 49790: 27bdffb8 */ addiu $sp,$sp,-72 -/* 49794: afb00018 */ sw $s0,0x18($sp) -/* 49798: afbf001c */ sw $ra,0x1c($sp) -/* 4979c: 3c108006 */ lui $s0,%hi(var80060914) -/* 497a0: 3c0ea440 */ lui $t6,0xa440 -/* 497a4: 8e100914 */ lw $s0,%lo(var80060914)($s0) -/* 497a8: 8dcf0010 */ lw $t7,0x10($t6) -/* 497ac: 8e050008 */ lw $a1,0x8($s0) -/* 497b0: 31f80001 */ andi $t8,$t7,0x1 -/* 497b4: afb8002c */ sw $t8,0x2c($sp) -/* 497b8: 8e040004 */ lw $a0,0x4($s0) -/* 497bc: 0c012d20 */ jal osVirtualToPhysical -/* 497c0: afa50044 */ sw $a1,0x44($sp) -/* 497c4: 8fb9002c */ lw $t9,0x2c($sp) -/* 497c8: 8fa50044 */ lw $a1,0x44($sp) -/* 497cc: 960a0000 */ lhu $t2,0x0($s0) -/* 497d0: 00194080 */ sll $t0,$t9,0x2 -/* 497d4: 01194021 */ addu $t0,$t0,$t9 -/* 497d8: 00084080 */ sll $t0,$t0,0x2 -/* 497dc: 00a83021 */ addu $a2,$a1,$t0 -/* 497e0: 8cc90028 */ lw $t1,0x28($a2) -/* 497e4: 314b0002 */ andi $t3,$t2,0x2 -/* 497e8: 11600008 */ beqz $t3,.L0004980c -/* 497ec: 01222021 */ addu $a0,$t1,$v0 -/* 497f0: 8cad0020 */ lw $t5,0x20($a1) -/* 497f4: 8e0c0020 */ lw $t4,0x20($s0) -/* 497f8: 2401f000 */ addiu $at,$zero,-4096 -/* 497fc: 01a17024 */ and $t6,$t5,$at -/* 49800: 018e7825 */ or $t7,$t4,$t6 -/* 49804: 10000003 */ b .L00049814 -/* 49808: ae0f0020 */ sw $t7,0x20($s0) -.L0004980c: -/* 4980c: 8cb80020 */ lw $t8,0x20($a1) -/* 49810: ae180020 */ sw $t8,0x20($s0) -.L00049814: -/* 49814: 96190000 */ lhu $t9,0x0($s0) -/* 49818: 33280004 */ andi $t0,$t9,0x4 -/* 4981c: 51000035 */ beqzl $t0,.L000498f4 -/* 49820: 8cce002c */ lw $t6,0x2c($a2) -/* 49824: 8cc3002c */ lw $v1,0x2c($a2) -/* 49828: c6040024 */ lwc1 $f4,0x24($s0) -/* 4982c: 3c014f80 */ lui $at,0x4f80 -/* 49830: 30690fff */ andi $t1,$v1,0xfff -/* 49834: 44893000 */ mtc1 $t1,$f6 -/* 49838: 05210004 */ bgez $t1,.L0004984c -/* 4983c: 46803220 */ cvt.s.w $f8,$f6 -/* 49840: 44815000 */ mtc1 $at,$f10 -/* 49844: 00000000 */ nop -/* 49848: 460a4200 */ add.s $f8,$f8,$f10 -.L0004984c: -/* 4984c: 46082402 */ mul.s $f16,$f4,$f8 -/* 49850: 24020001 */ addiu $v0,$zero,0x1 -/* 49854: 3c014f00 */ lui $at,0x4f00 -/* 49858: 444af800 */ cfc1 $t2,$31 -/* 4985c: 44c2f800 */ ctc1 $v0,$31 -/* 49860: 00000000 */ nop -/* 49864: 460084a4 */ cvt.w.s $f18,$f16 -/* 49868: 4442f800 */ cfc1 $v0,$31 -/* 4986c: 00000000 */ nop -/* 49870: 30420078 */ andi $v0,$v0,0x78 -/* 49874: 50400013 */ beqzl $v0,.L000498c4 -/* 49878: 44029000 */ mfc1 $v0,$f18 -/* 4987c: 44819000 */ mtc1 $at,$f18 -/* 49880: 24020001 */ addiu $v0,$zero,0x1 -/* 49884: 46128481 */ sub.s $f18,$f16,$f18 -/* 49888: 44c2f800 */ ctc1 $v0,$31 -/* 4988c: 00000000 */ nop -/* 49890: 460094a4 */ cvt.w.s $f18,$f18 -/* 49894: 4442f800 */ cfc1 $v0,$31 -/* 49898: 00000000 */ nop -/* 4989c: 30420078 */ andi $v0,$v0,0x78 -/* 498a0: 14400005 */ bnez $v0,.L000498b8 -/* 498a4: 00000000 */ nop -/* 498a8: 44029000 */ mfc1 $v0,$f18 -/* 498ac: 3c018000 */ lui $at,0x8000 -/* 498b0: 10000007 */ b .L000498d0 -/* 498b4: 00411025 */ or $v0,$v0,$at -.L000498b8: -/* 498b8: 10000005 */ b .L000498d0 -/* 498bc: 2402ffff */ addiu $v0,$zero,-1 -/* 498c0: 44029000 */ mfc1 $v0,$f18 -.L000498c4: -/* 498c4: 00000000 */ nop -/* 498c8: 0440fffb */ bltz $v0,.L000498b8 -/* 498cc: 00000000 */ nop -.L000498d0: -/* 498d0: ae02002c */ sw $v0,0x2c($s0) -/* 498d4: 8ccb002c */ lw $t3,0x2c($a2) -/* 498d8: 2401f000 */ addiu $at,$zero,-4096 -/* 498dc: 44caf800 */ ctc1 $t2,$31 -/* 498e0: 01616824 */ and $t5,$t3,$at -/* 498e4: 004d6025 */ or $t4,$v0,$t5 -/* 498e8: 10000003 */ b .L000498f8 -/* 498ec: ae0c002c */ sw $t4,0x2c($s0) -/* 498f0: 8cce002c */ lw $t6,0x2c($a2) -.L000498f4: -/* 498f4: ae0e002c */ sw $t6,0x2c($s0) -.L000498f8: -/* 498f8: 3c028006 */ lui $v0,%hi(var8005cefc) -/* 498fc: 8c42cefc */ lw $v0,%lo(var8005cefc)($v0) -/* 49900: 8ccf0030 */ lw $t7,0x30($a2) -/* 49904: 0002c400 */ sll $t8,$v0,0x10 -/* 49908: 01f8c823 */ subu $t9,$t7,$t8 -/* 4990c: 03224021 */ addu $t0,$t9,$v0 -/* 49910: afa80034 */ sw $t0,0x34($sp) -/* 49914: 96030000 */ lhu $v1,0x0($s0) -/* 49918: 8ca7001c */ lw $a3,0x1c($a1) -/* 4991c: 30690020 */ andi $t1,$v1,0x20 -/* 49920: 11200002 */ beqz $t1,.L0004992c -/* 49924: 306a0040 */ andi $t2,$v1,0x40 -/* 49928: 00003825 */ or $a3,$zero,$zero -.L0004992c: -/* 4992c: 5140000d */ beqzl $t2,.L00049964 -/* 49930: 306b0080 */ andi $t3,$v1,0x80 -/* 49934: ae00002c */ sw $zero,0x2c($s0) -/* 49938: 8e040004 */ lw $a0,0x4($s0) -/* 4993c: afa70038 */ sw $a3,0x38($sp) -/* 49940: afa60024 */ sw $a2,0x24($sp) -/* 49944: 0c012d20 */ jal osVirtualToPhysical -/* 49948: afa50044 */ sw $a1,0x44($sp) -/* 4994c: 8fa50044 */ lw $a1,0x44($sp) -/* 49950: 8fa60024 */ lw $a2,0x24($sp) -/* 49954: 8fa70038 */ lw $a3,0x38($sp) -/* 49958: 00402025 */ or $a0,$v0,$zero -/* 4995c: 96030000 */ lhu $v1,0x0($s0) -/* 49960: 306b0080 */ andi $t3,$v1,0x80 -.L00049964: -/* 49964: 51600010 */ beqzl $t3,.L000499a8 -/* 49968: 3c0fa440 */ lui $t7,0xa440 -/* 4996c: 960d0028 */ lhu $t5,0x28($s0) -/* 49970: 3c0103ff */ lui $at,0x3ff -/* 49974: 8e040004 */ lw $a0,0x4($s0) -/* 49978: 000d6400 */ sll $t4,$t5,0x10 -/* 4997c: 01817024 */ and $t6,$t4,$at -/* 49980: ae0e002c */ sw $t6,0x2c($s0) -/* 49984: afa70038 */ sw $a3,0x38($sp) -/* 49988: afa60024 */ sw $a2,0x24($sp) -/* 4998c: 0c012d20 */ jal osVirtualToPhysical -/* 49990: afa50044 */ sw $a1,0x44($sp) -/* 49994: 8fa50044 */ lw $a1,0x44($sp) -/* 49998: 8fa60024 */ lw $a2,0x24($sp) -/* 4999c: 8fa70038 */ lw $a3,0x38($sp) -/* 499a0: 00402025 */ or $a0,$v0,$zero -/* 499a4: 3c0fa440 */ lui $t7,0xa440 -.L000499a8: -/* 499a8: ade40004 */ sw $a0,0x4($t7) -/* 499ac: 8cb80008 */ lw $t8,0x8($a1) -/* 499b0: 3c19a440 */ lui $t9,0xa440 -/* 499b4: 3c09a440 */ lui $t1,0xa440 -/* 499b8: af380008 */ sw $t8,0x8($t9) -/* 499bc: 8ca8000c */ lw $t0,0xc($a1) -/* 499c0: 3c0ba440 */ lui $t3,0xa440 -/* 499c4: 3c0ca440 */ lui $t4,0xa440 -/* 499c8: ad280014 */ sw $t0,0x14($t1) -/* 499cc: 8caa0010 */ lw $t2,0x10($a1) -/* 499d0: 3c18a440 */ lui $t8,0xa440 -/* 499d4: 3c08a440 */ lui $t0,0xa440 -/* 499d8: ad6a0018 */ sw $t2,0x18($t3) -/* 499dc: 8cad0014 */ lw $t5,0x14($a1) -/* 499e0: 3c0aa440 */ lui $t2,0xa440 -/* 499e4: 3c028006 */ lui $v0,%hi(var80060910) -/* 499e8: ad8d001c */ sw $t5,0x1c($t4) -/* 499ec: 8cae0018 */ lw $t6,0x18($a1) -/* 499f0: 3c0da440 */ lui $t5,0xa440 -/* 499f4: 24420910 */ addiu $v0,$v0,%lo(var80060910) -/* 499f8: adee0020 */ sw $t6,0x20($t7) -/* 499fc: af070024 */ sw $a3,0x24($t8) -/* 49a00: 8fb90034 */ lw $t9,0x34($sp) -/* 49a04: 3c0ea440 */ lui $t6,0xa440 -/* 49a08: 3c038006 */ lui $v1,%hi(var80060914) -/* 49a0c: ad190028 */ sw $t9,0x28($t0) -/* 49a10: 8cc90034 */ lw $t1,0x34($a2) -/* 49a14: 24630914 */ addiu $v1,$v1,%lo(var80060914) -/* 49a18: ad49002c */ sw $t1,0x2c($t2) -/* 49a1c: 8ccb0038 */ lw $t3,0x38($a2) -/* 49a20: adab000c */ sw $t3,0xc($t5) -/* 49a24: 8e0c0020 */ lw $t4,0x20($s0) -/* 49a28: 02005825 */ or $t3,$s0,$zero -/* 49a2c: adcc0030 */ sw $t4,0x30($t6) -/* 49a30: 8e0f002c */ lw $t7,0x2c($s0) -/* 49a34: 260c0030 */ addiu $t4,$s0,0x30 -/* 49a38: af0f0034 */ sw $t7,0x34($t8) -/* 49a3c: 8e19000c */ lw $t9,0xc($s0) -/* 49a40: ad190000 */ sw $t9,0x0($t0) -/* 49a44: 8c4a0000 */ lw $t2,0x0($v0) -/* 49a48: ac500000 */ sw $s0,0x0($v0) -/* 49a4c: ac6a0000 */ sw $t2,0x0($v1) -.L00049a50: -/* 49a50: 8d610000 */ lw $at,0x0($t3) -/* 49a54: 256b000c */ addiu $t3,$t3,0xc -/* 49a58: 254a000c */ addiu $t2,$t2,0xc -/* 49a5c: ad41fff4 */ sw $at,-0xc($t2) -/* 49a60: 8d61fff8 */ lw $at,-0x8($t3) -/* 49a64: ad41fff8 */ sw $at,-0x8($t2) -/* 49a68: 8d61fffc */ lw $at,-0x4($t3) -/* 49a6c: 156cfff8 */ bne $t3,$t4,.L00049a50 -/* 49a70: ad41fffc */ sw $at,-0x4($t2) -/* 49a74: 8fbf001c */ lw $ra,0x1c($sp) -/* 49a78: 8fb00018 */ lw $s0,0x18($sp) -/* 49a7c: 27bd0048 */ addiu $sp,$sp,0x48 -/* 49a80: 03e00008 */ jr $ra -/* 49a84: 00000000 */ nop -/* 49a88: 00000000 */ nop -/* 49a8c: 00000000 */ nop -); \ No newline at end of file diff --git a/src/lib/lib_49a90.c b/src/lib/lib_49a90.c deleted file mode 100644 index c62f009b2..000000000 --- a/src/lib/lib_49a90.c +++ /dev/null @@ -1,139 +0,0 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_481e0.h" -#include "lib/lib_48650.h" -#include "lib/lib_488e0.h" -#include "lib/lib_49a90.h" -#include "lib/lib_4b480.h" -#include "types.h" - -GLOBAL_ASM( -glabel __osPiCreateAccessQueue -/* 49a90: 27bdffe8 */ addiu $sp,$sp,-24 -/* 49a94: afbf0014 */ sw $ra,0x14($sp) -/* 49a98: 240e0001 */ addiu $t6,$zero,0x1 -/* 49a9c: 3c018006 */ lui $at,%hi(var80060920) -/* 49aa0: 3c04800a */ lui $a0,%hi(var8009c7a8) -/* 49aa4: 3c05800a */ lui $a1,%hi(var8009c7a0) -/* 49aa8: ac2e0920 */ sw $t6,%lo(var80060920)($at) -/* 49aac: 24a5c7a0 */ addiu $a1,$a1,%lo(var8009c7a0) -/* 49ab0: 2484c7a8 */ addiu $a0,$a0,%lo(var8009c7a8) -/* 49ab4: 0c0120d0 */ jal osCreateMesgQueue -/* 49ab8: 24060001 */ addiu $a2,$zero,0x1 -/* 49abc: 3c04800a */ lui $a0,%hi(var8009c7a8) -/* 49ac0: 2484c7a8 */ addiu $a0,$a0,%lo(var8009c7a8) -/* 49ac4: 00002825 */ or $a1,$zero,$zero -/* 49ac8: 0c012238 */ jal osSendMesg -/* 49acc: 00003025 */ or $a2,$zero,$zero -/* 49ad0: 8fbf0014 */ lw $ra,0x14($sp) -/* 49ad4: 27bd0018 */ addiu $sp,$sp,0x18 -/* 49ad8: 03e00008 */ jr $ra -/* 49adc: 00000000 */ nop -); - -GLOBAL_ASM( -glabel __osPiGetAccess -/* 49ae0: 3c0e8006 */ lui $t6,%hi(var80060920) -/* 49ae4: 8dce0920 */ lw $t6,%lo(var80060920)($t6) -/* 49ae8: 27bdffe0 */ addiu $sp,$sp,-32 -/* 49aec: afbf0014 */ sw $ra,0x14($sp) -/* 49af0: 15c00003 */ bnez $t6,.L00049b00 -/* 49af4: 00000000 */ nop -/* 49af8: 0c0126a4 */ jal __osPiCreateAccessQueue -/* 49afc: 00000000 */ nop -.L00049b00: -/* 49b00: 3c04800a */ lui $a0,%hi(var8009c7a8) -/* 49b04: 2484c7a8 */ addiu $a0,$a0,%lo(var8009c7a8) -/* 49b08: 27a5001c */ addiu $a1,$sp,0x1c -/* 49b0c: 0c0121bc */ jal osRecvMesg -/* 49b10: 24060001 */ addiu $a2,$zero,0x1 -/* 49b14: 8fbf0014 */ lw $ra,0x14($sp) -/* 49b18: 27bd0020 */ addiu $sp,$sp,0x20 -/* 49b1c: 03e00008 */ jr $ra -/* 49b20: 00000000 */ nop -); - -GLOBAL_ASM( -glabel __osPiRelAccess -/* 49b24: 27bdffe8 */ addiu $sp,$sp,-24 -/* 49b28: afbf0014 */ sw $ra,0x14($sp) -/* 49b2c: 3c04800a */ lui $a0,%hi(var8009c7a8) -/* 49b30: 2484c7a8 */ addiu $a0,$a0,%lo(var8009c7a8) -/* 49b34: 00002825 */ or $a1,$zero,$zero -/* 49b38: 0c012238 */ jal osSendMesg -/* 49b3c: 00003025 */ or $a2,$zero,$zero -/* 49b40: 8fbf0014 */ lw $ra,0x14($sp) -/* 49b44: 27bd0018 */ addiu $sp,$sp,0x18 -/* 49b48: 03e00008 */ jr $ra -/* 49b4c: 00000000 */ nop -); - -GLOBAL_ASM( -glabel osPiRawStartDma -/* 49b50: 27bdffe8 */ addiu $sp,$sp,-24 -/* 49b54: 3c03a460 */ lui $v1,0xa460 -/* 49b58: 34630010 */ ori $v1,$v1,0x10 -/* 49b5c: afbf0014 */ sw $ra,0x14($sp) -/* 49b60: afa40018 */ sw $a0,0x18($sp) -/* 49b64: afa5001c */ sw $a1,0x1c($sp) -/* 49b68: 8c620000 */ lw $v0,0x0($v1) -/* 49b6c: 00c02025 */ or $a0,$a2,$zero -/* 49b70: 304e0003 */ andi $t6,$v0,0x3 -/* 49b74: 11c00005 */ beqz $t6,.L00049b8c -/* 49b78: 00000000 */ nop -/* 49b7c: 8c620000 */ lw $v0,0x0($v1) -.L00049b80: -/* 49b80: 304f0003 */ andi $t7,$v0,0x3 -/* 49b84: 55e0fffe */ bnezl $t7,.L00049b80 -/* 49b88: 8c620000 */ lw $v0,0x0($v1) -.L00049b8c: -/* 49b8c: 0c012d20 */ jal osVirtualToPhysical -/* 49b90: afa70024 */ sw $a3,0x24($sp) -/* 49b94: 8fa30018 */ lw $v1,0x18($sp) -/* 49b98: 8fa70024 */ lw $a3,0x24($sp) -/* 49b9c: 3c18a460 */ lui $t8,0xa460 -/* 49ba0: af020000 */ sw $v0,0x0($t8) -/* 49ba4: 3c198000 */ lui $t9,0x8000 -/* 49ba8: 8f390308 */ lw $t9,0x308($t9) -/* 49bac: 8fa8001c */ lw $t0,0x1c($sp) -/* 49bb0: 3c011fff */ lui $at,0x1fff -/* 49bb4: 3421ffff */ ori $at,$at,0xffff -/* 49bb8: 03284825 */ or $t1,$t9,$t0 -/* 49bbc: 01215024 */ and $t2,$t1,$at -/* 49bc0: 3c0ba460 */ lui $t3,0xa460 -/* 49bc4: 10600006 */ beqz $v1,.L00049be0 -/* 49bc8: ad6a0004 */ sw $t2,0x4($t3) -/* 49bcc: 24010001 */ addiu $at,$zero,0x1 -/* 49bd0: 10610007 */ beq $v1,$at,.L00049bf0 -/* 49bd4: 24eeffff */ addiu $t6,$a3,-1 -/* 49bd8: 1000000b */ b .L00049c08 -/* 49bdc: 2402ffff */ addiu $v0,$zero,-1 -.L00049be0: -/* 49be0: 24ecffff */ addiu $t4,$a3,-1 -/* 49be4: 3c0da460 */ lui $t5,0xa460 -/* 49be8: 10000006 */ b .L00049c04 -/* 49bec: adac000c */ sw $t4,0xc($t5) -.L00049bf0: -/* 49bf0: 3c0fa460 */ lui $t7,0xa460 -/* 49bf4: 10000003 */ b .L00049c04 -/* 49bf8: adee0008 */ sw $t6,0x8($t7) -/* 49bfc: 10000002 */ b .L00049c08 -/* 49c00: 2402ffff */ addiu $v0,$zero,-1 -.L00049c04: -/* 49c04: 00001025 */ or $v0,$zero,$zero -.L00049c08: -/* 49c08: 8fbf0014 */ lw $ra,0x14($sp) -/* 49c0c: 27bd0018 */ addiu $sp,$sp,0x18 -/* 49c10: 03e00008 */ jr $ra -/* 49c14: 00000000 */ nop -/* 49c18: 00000000 */ nop -/* 49c1c: 00000000 */ nop -); diff --git a/src/lib/lib_4a810.c b/src/lib/lib_4a810.c deleted file mode 100644 index b6a0e1305..000000000 --- a/src/lib/lib_4a810.c +++ /dev/null @@ -1,133 +0,0 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_481e0.h" -#include "lib/lib_48650.h" -#include "lib/lib_488e0.h" -#include "lib/lib_4a810.h" -#include "lib/lib_4ad80.h" -#include "lib/lib_4b480.h" -#include "lib/lib_4e470.h" -#include "types.h" - -GLOBAL_ASM( -glabel __osSiCreateAccessQueue -/* 4a810: 27bdffe8 */ addiu $sp,$sp,-24 -/* 4a814: afbf0014 */ sw $ra,0x14($sp) -/* 4a818: 240e0001 */ addiu $t6,$zero,0x1 -/* 4a81c: 3c018006 */ lui $at,%hi(var80060950) -/* 4a820: 3c04800a */ lui $a0,%hi(var8009c7c8) -/* 4a824: 3c05800a */ lui $a1,%hi(var8009c7c0) -/* 4a828: ac2e0950 */ sw $t6,%lo(var80060950)($at) -/* 4a82c: 24a5c7c0 */ addiu $a1,$a1,%lo(var8009c7c0) -/* 4a830: 2484c7c8 */ addiu $a0,$a0,%lo(var8009c7c8) -/* 4a834: 0c0120d0 */ jal osCreateMesgQueue -/* 4a838: 24060001 */ addiu $a2,$zero,0x1 -/* 4a83c: 3c04800a */ lui $a0,%hi(var8009c7c8) -/* 4a840: 2484c7c8 */ addiu $a0,$a0,%lo(var8009c7c8) -/* 4a844: 00002825 */ or $a1,$zero,$zero -/* 4a848: 0c012238 */ jal osSendMesg -/* 4a84c: 00003025 */ or $a2,$zero,$zero -/* 4a850: 8fbf0014 */ lw $ra,0x14($sp) -/* 4a854: 27bd0018 */ addiu $sp,$sp,0x18 -/* 4a858: 03e00008 */ jr $ra -/* 4a85c: 00000000 */ nop -); - -GLOBAL_ASM( -glabel __osSiGetAccess -/* 4a860: 3c0e8006 */ lui $t6,%hi(var80060950) -/* 4a864: 8dce0950 */ lw $t6,%lo(var80060950)($t6) -/* 4a868: 27bdffe0 */ addiu $sp,$sp,-32 -/* 4a86c: afbf0014 */ sw $ra,0x14($sp) -/* 4a870: 15c00003 */ bnez $t6,.L0004a880 -/* 4a874: 00000000 */ nop -/* 4a878: 0c012a04 */ jal __osSiCreateAccessQueue -/* 4a87c: 00000000 */ nop -.L0004a880: -/* 4a880: 3c04800a */ lui $a0,%hi(var8009c7c8) -/* 4a884: 2484c7c8 */ addiu $a0,$a0,%lo(var8009c7c8) -/* 4a888: 27a5001c */ addiu $a1,$sp,0x1c -/* 4a88c: 0c0121bc */ jal osRecvMesg -/* 4a890: 24060001 */ addiu $a2,$zero,0x1 -/* 4a894: 8fbf0014 */ lw $ra,0x14($sp) -/* 4a898: 27bd0020 */ addiu $sp,$sp,0x20 -/* 4a89c: 03e00008 */ jr $ra -/* 4a8a0: 00000000 */ nop -); - -GLOBAL_ASM( -glabel __osSiRelAccess -/* 4a8a4: 27bdffe8 */ addiu $sp,$sp,-24 -/* 4a8a8: afbf0014 */ sw $ra,0x14($sp) -/* 4a8ac: 3c04800a */ lui $a0,%hi(var8009c7c8) -/* 4a8b0: 2484c7c8 */ addiu $a0,$a0,%lo(var8009c7c8) -/* 4a8b4: 00002825 */ or $a1,$zero,$zero -/* 4a8b8: 0c012238 */ jal osSendMesg -/* 4a8bc: 00003025 */ or $a2,$zero,$zero -/* 4a8c0: 8fbf0014 */ lw $ra,0x14($sp) -/* 4a8c4: 27bd0018 */ addiu $sp,$sp,0x18 -/* 4a8c8: 03e00008 */ jr $ra -/* 4a8cc: 00000000 */ nop -); - -GLOBAL_ASM( -glabel __osSiRawStartDma -/* 4a8d0: 27bdffe8 */ addiu $sp,$sp,-24 -/* 4a8d4: afbf0014 */ sw $ra,0x14($sp) -/* 4a8d8: afa5001c */ sw $a1,0x1c($sp) -/* 4a8dc: 3c0ea480 */ lui $t6,0xa480 -/* 4a8e0: 8dcf0018 */ lw $t7,0x18($t6) -/* 4a8e4: 00803025 */ or $a2,$a0,$zero -/* 4a8e8: 24010001 */ addiu $at,$zero,0x1 -/* 4a8ec: 31f80003 */ andi $t8,$t7,0x3 -/* 4a8f0: 13000003 */ beqz $t8,.L0004a900 -/* 4a8f4: 00000000 */ nop -/* 4a8f8: 1000001c */ b .L0004a96c -/* 4a8fc: 2402ffff */ addiu $v0,$zero,-1 -.L0004a900: -/* 4a900: 14c10005 */ bne $a2,$at,.L0004a918 -/* 4a904: 8fa4001c */ lw $a0,0x1c($sp) -/* 4a908: 24050040 */ addiu $a1,$zero,0x40 -/* 4a90c: 0c012b60 */ jal osWritebackDCache -/* 4a910: afa60018 */ sw $a2,0x18($sp) -/* 4a914: 8fa60018 */ lw $a2,0x18($sp) -.L0004a918: -/* 4a918: 8fa4001c */ lw $a0,0x1c($sp) -/* 4a91c: 0c012d20 */ jal osVirtualToPhysical -/* 4a920: afa60018 */ sw $a2,0x18($sp) -/* 4a924: 8fa60018 */ lw $a2,0x18($sp) -/* 4a928: 3c19a480 */ lui $t9,0xa480 -/* 4a92c: af220000 */ sw $v0,0x0($t9) -/* 4a930: 14c00006 */ bnez $a2,.L0004a94c -/* 4a934: 3c0a1fc0 */ lui $t2,0x1fc0 -/* 4a938: 3c081fc0 */ lui $t0,0x1fc0 -/* 4a93c: 350807c0 */ ori $t0,$t0,0x7c0 -/* 4a940: 3c09a480 */ lui $t1,0xa480 -/* 4a944: 10000004 */ b .L0004a958 -/* 4a948: ad280004 */ sw $t0,0x4($t1) -.L0004a94c: -/* 4a94c: 354a07c0 */ ori $t2,$t2,0x7c0 -/* 4a950: 3c0ba480 */ lui $t3,0xa480 -/* 4a954: ad6a0010 */ sw $t2,0x10($t3) -.L0004a958: -/* 4a958: 14c00003 */ bnez $a2,.L0004a968 -/* 4a95c: 8fa4001c */ lw $a0,0x1c($sp) -/* 4a960: 0c013920 */ jal osInvalDCache -/* 4a964: 24050040 */ addiu $a1,$zero,0x40 -.L0004a968: -/* 4a968: 00001025 */ or $v0,$zero,$zero -.L0004a96c: -/* 4a96c: 8fbf0014 */ lw $ra,0x14($sp) -/* 4a970: 27bd0018 */ addiu $sp,$sp,0x18 -/* 4a974: 03e00008 */ jr $ra -/* 4a978: 00000000 */ nop -/* 4a97c: 00000000 */ nop -); \ No newline at end of file diff --git a/src/lib/lib_4acc0.c b/src/lib/lib_4acc0.c deleted file mode 100644 index 750b0c828..000000000 --- a/src/lib/lib_4acc0.c +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "types.h" - -GLOBAL_ASM( -glabel __osSetSR -/* 4acc0: 40846000 */ mtc0 $a0,$12 -/* 4acc4: 00000000 */ nop -/* 4acc8: 03e00008 */ jr $ra -/* 4accc: 00000000 */ nop -); - -GLOBAL_ASM( -glabel __osGetSR -/* 4acd0: 40026000 */ mfc0 $v0,$12 -/* 4acd4: 03e00008 */ jr $ra -/* 4acd8: 00000000 */ nop -/* 4acdc: 00000000 */ nop -); \ No newline at end of file diff --git a/src/lib/lib_4b160.c b/src/lib/lib_4b160.c deleted file mode 100644 index 2b0ef895b..000000000 --- a/src/lib/lib_4b160.c +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "types.h" - -GLOBAL_ASM( -glabel __osGetCause -/* 4b160: 40026800 */ mfc0 $v0,$13 -/* 4b164: 03e00008 */ jr $ra -/* 4b168: 00000000 */ nop -/* 4b16c: 00000000 */ nop -); \ No newline at end of file diff --git a/src/lib/lib_4b170.c b/src/lib/lib_4b170.c index 52c108821..78a77b89f 100644 --- a/src/lib/lib_4b170.c +++ b/src/lib/lib_4b170.c @@ -11,7 +11,7 @@ #include "types.h" GLOBAL_ASM( -glabel alCopy +glabel func0004b170 /* 4b170: 10c0001a */ beqz $a2,.L0004b1dc /* 4b174: 00a03825 */ or $a3,$a1,$zero /* 4b178: 10850018 */ beq $a0,$a1,.L0004b1dc diff --git a/src/lib/lib_4b550.c b/src/lib/lib_4b550.c index 4dc891dae..b5d20b71c 100644 --- a/src/lib/lib_4b550.c +++ b/src/lib/lib_4b550.c @@ -8,7 +8,6 @@ #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" -#include "lib/lib_4b480.h" #include "lib/lib_4b5e0.h" #include "types.h" diff --git a/src/lib/lib_4b5e0.c b/src/lib/lib_4b5e0.c index 218d4bd3c..0b99b69cd 100644 --- a/src/lib/lib_4b5e0.c +++ b/src/lib/lib_4b5e0.c @@ -8,10 +8,7 @@ #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" -#include "lib/lib_48650.h" -#include "lib/lib_4a810.h" #include "lib/lib_4b170.h" -#include "lib/lib_4ba90.h" #include "lib/lib_51d50.h" #include "types.h" @@ -32,322 +29,3 @@ glabel func0004b5e0 /* 4b608: 27bd0008 */ addiu $sp,$sp,0x8 /* 4b60c: 00000000 */ nop ); - -GLOBAL_ASM( -glabel __osContRamWrite -/* 4b610: 27bdff98 */ addiu $sp,$sp,-104 -/* 4b614: 8faf0078 */ lw $t7,0x78($sp) -/* 4b618: afb5002c */ sw $s5,0x2c($sp) -/* 4b61c: afb40028 */ sw $s4,0x28($sp) -/* 4b620: afb1001c */ sw $s1,0x1c($sp) -/* 4b624: afa60070 */ sw $a2,0x70($sp) -/* 4b628: 30ceffff */ andi $t6,$a2,0xffff -/* 4b62c: 24010001 */ addiu $at,$zero,0x1 -/* 4b630: 01c03025 */ or $a2,$t6,$zero -/* 4b634: 00a08825 */ or $s1,$a1,$zero -/* 4b638: 0080a825 */ or $s5,$a0,$zero -/* 4b63c: afbf003c */ sw $ra,0x3c($sp) -/* 4b640: afbe0038 */ sw $s8,0x38($sp) -/* 4b644: afb70034 */ sw $s7,0x34($sp) -/* 4b648: afb60030 */ sw $s6,0x30($sp) -/* 4b64c: afb30024 */ sw $s3,0x24($sp) -/* 4b650: afb20020 */ sw $s2,0x20($sp) -/* 4b654: afb00018 */ sw $s0,0x18($sp) -/* 4b658: afa70074 */ sw $a3,0x74($sp) -/* 4b65c: 11e10008 */ beq $t7,$at,.L0004b680 -/* 4b660: 24140002 */ addiu $s4,$zero,0x2 -/* 4b664: 29c10007 */ slti $at,$t6,0x7 -/* 4b668: 50200006 */ beqzl $at,.L0004b684 -/* 4b66c: 00c08025 */ or $s0,$a2,$zero -/* 4b670: 51c00004 */ beqzl $t6,.L0004b684 -/* 4b674: 00c08025 */ or $s0,$a2,$zero -/* 4b678: 1000006c */ b .L0004b82c -/* 4b67c: 00001025 */ or $v0,$zero,$zero -.L0004b680: -/* 4b680: 00c08025 */ or $s0,$a2,$zero -.L0004b684: -/* 4b684: 0c012a18 */ jal __osSiGetAccess -/* 4b688: a7a60072 */ sh $a2,0x72($sp) -/* 4b68c: 0010c0c3 */ sra $t8,$s0,0x3 -/* 4b690: 0010c940 */ sll $t9,$s0,0x5 -/* 4b694: 3c178006 */ lui $s7,%hi(var80060970) -/* 4b698: 3c16800a */ lui $s6,%hi(__osContLastCmd) -/* 4b69c: 3c138009 */ lui $s3,%hi(var80090a20) -/* 4b6a0: 26730a20 */ addiu $s3,$s3,%lo(var80090a20) -/* 4b6a4: 26d6c820 */ addiu $s6,$s6,%lo(__osContLastCmd) -/* 4b6a8: 26f70970 */ addiu $s7,$s7,%lo(var80060970) -/* 4b6ac: afb90040 */ sw $t9,0x40($sp) -/* 4b6b0: afb80044 */ sw $t8,0x44($sp) -/* 4b6b4: 241e0003 */ addiu $s8,$zero,0x3 -.L0004b6b8: -/* 4b6b8: 92c80000 */ lbu $t0,0x0($s6) -/* 4b6bc: 24010003 */ addiu $at,$zero,0x3 -/* 4b6c0: 02608025 */ or $s0,$s3,$zero -/* 4b6c4: 15010004 */ bne $t0,$at,.L0004b6d8 -/* 4b6c8: 00001025 */ or $v0,$zero,$zero -/* 4b6cc: 8ee90000 */ lw $t1,0x0($s7) -/* 4b6d0: 52290022 */ beql $s1,$t1,.L0004b75c -/* 4b6d4: 02718021 */ addu $s0,$s3,$s1 -.L0004b6d8: -/* 4b6d8: a2de0000 */ sb $s8,0x0($s6) -/* 4b6dc: 1a200010 */ blez $s1,.L0004b720 -/* 4b6e0: aef10000 */ sw $s1,0x0($s7) -/* 4b6e4: 32240003 */ andi $a0,$s1,0x3 -/* 4b6e8: 10800006 */ beqz $a0,.L0004b704 -/* 4b6ec: 00801825 */ or $v1,$a0,$zero -.L0004b6f0: -/* 4b6f0: 24420001 */ addiu $v0,$v0,0x1 -/* 4b6f4: a2000000 */ sb $zero,0x0($s0) -/* 4b6f8: 1462fffd */ bne $v1,$v0,.L0004b6f0 -/* 4b6fc: 26100001 */ addiu $s0,$s0,0x1 -/* 4b700: 10510007 */ beq $v0,$s1,.L0004b720 -.L0004b704: -/* 4b704: 24420004 */ addiu $v0,$v0,0x4 -/* 4b708: a2000000 */ sb $zero,0x0($s0) -/* 4b70c: a2000001 */ sb $zero,0x1($s0) -/* 4b710: a2000002 */ sb $zero,0x2($s0) -/* 4b714: a2000003 */ sb $zero,0x3($s0) -/* 4b718: 1451fffa */ bne $v0,$s1,.L0004b704 -/* 4b71c: 26100004 */ addiu $s0,$s0,0x4 -.L0004b720: -/* 4b720: 240a0001 */ addiu $t2,$zero,0x1 -/* 4b724: ae6a003c */ sw $t2,0x3c($s3) -/* 4b728: 240b00ff */ addiu $t3,$zero,0xff -/* 4b72c: 240c0023 */ addiu $t4,$zero,0x23 -/* 4b730: 240d0001 */ addiu $t5,$zero,0x1 -/* 4b734: 240e00ff */ addiu $t6,$zero,0xff -/* 4b738: 240f00fe */ addiu $t7,$zero,0xfe -/* 4b73c: a20b0000 */ sb $t3,0x0($s0) -/* 4b740: a20c0001 */ sb $t4,0x1($s0) -/* 4b744: a20d0002 */ sb $t5,0x2($s0) -/* 4b748: a21e0003 */ sb $s8,0x3($s0) -/* 4b74c: a20e0026 */ sb $t6,0x26($s0) -/* 4b750: 10000002 */ b .L0004b75c -/* 4b754: a20f0027 */ sb $t7,0x27($s0) -/* 4b758: 02718021 */ addu $s0,$s3,$s1 -.L0004b75c: -/* 4b75c: 8fb80044 */ lw $t8,0x44($sp) -/* 4b760: a2180004 */ sb $t8,0x4($s0) -/* 4b764: 0c014754 */ jal func00051d50 -/* 4b768: 97a40072 */ lhu $a0,0x72($sp) -/* 4b76c: 8fb90040 */ lw $t9,0x40($sp) -/* 4b770: 26050006 */ addiu $a1,$s0,0x6 -/* 4b774: 24060020 */ addiu $a2,$zero,0x20 -/* 4b778: 00594025 */ or $t0,$v0,$t9 -/* 4b77c: a2080005 */ sb $t0,0x5($s0) -/* 4b780: 0c012c5c */ jal alCopy -/* 4b784: 8fa40074 */ lw $a0,0x74($sp) -/* 4b788: 24040001 */ addiu $a0,$zero,0x1 -/* 4b78c: 0c012a34 */ jal __osSiRawStartDma -/* 4b790: 02602825 */ or $a1,$s3,$zero -/* 4b794: 0c014788 */ jal func00051e20 -/* 4b798: 8fa40074 */ lw $a0,0x74($sp) -/* 4b79c: 305200ff */ andi $s2,$v0,0xff -/* 4b7a0: 02a02025 */ or $a0,$s5,$zero -/* 4b7a4: 00002825 */ or $a1,$zero,$zero -/* 4b7a8: 0c0121bc */ jal osRecvMesg -/* 4b7ac: 24060001 */ addiu $a2,$zero,0x1 -/* 4b7b0: 00002025 */ or $a0,$zero,$zero -/* 4b7b4: 0c012a34 */ jal __osSiRawStartDma -/* 4b7b8: 02602825 */ or $a1,$s3,$zero -/* 4b7bc: 02a02025 */ or $a0,$s5,$zero -/* 4b7c0: 00002825 */ or $a1,$zero,$zero -/* 4b7c4: 0c0121bc */ jal osRecvMesg -/* 4b7c8: 24060001 */ addiu $a2,$zero,0x1 -/* 4b7cc: 92030002 */ lbu $v1,0x2($s0) -/* 4b7d0: 306900c0 */ andi $t1,$v1,0xc0 -/* 4b7d4: 00091903 */ sra $v1,$t1,0x4 -/* 4b7d8: 5460000c */ bnezl $v1,.L0004b80c -/* 4b7dc: 24030001 */ addiu $v1,$zero,0x1 -/* 4b7e0: 920b0026 */ lbu $t3,0x26($s0) -/* 4b7e4: 02a02025 */ or $a0,$s5,$zero -/* 4b7e8: 51720009 */ beql $t3,$s2,.L0004b810 -/* 4b7ec: 24010004 */ addiu $at,$zero,0x4 -/* 4b7f0: 0c012ea4 */ jal __osPfsGetStatus -/* 4b7f4: 02202825 */ or $a1,$s1,$zero -/* 4b7f8: 14400009 */ bnez $v0,.L0004b820 -/* 4b7fc: 00401825 */ or $v1,$v0,$zero -/* 4b800: 10000002 */ b .L0004b80c -/* 4b804: 24030004 */ addiu $v1,$zero,0x4 -/* 4b808: 24030001 */ addiu $v1,$zero,0x1 -.L0004b80c: -/* 4b80c: 24010004 */ addiu $at,$zero,0x4 -.L0004b810: -/* 4b810: 14610003 */ bne $v1,$at,.L0004b820 -/* 4b814: 2a820000 */ slti $v0,$s4,0x0 -/* 4b818: 1040ffa7 */ beqz $v0,.L0004b6b8 -/* 4b81c: 2694ffff */ addiu $s4,$s4,-1 -.L0004b820: -/* 4b820: 0c012a29 */ jal __osSiRelAccess -/* 4b824: afa30064 */ sw $v1,0x64($sp) -/* 4b828: 8fa20064 */ lw $v0,0x64($sp) -.L0004b82c: -/* 4b82c: 8fbf003c */ lw $ra,0x3c($sp) -/* 4b830: 8fb00018 */ lw $s0,0x18($sp) -/* 4b834: 8fb1001c */ lw $s1,0x1c($sp) -/* 4b838: 8fb20020 */ lw $s2,0x20($sp) -/* 4b83c: 8fb30024 */ lw $s3,0x24($sp) -/* 4b840: 8fb40028 */ lw $s4,0x28($sp) -/* 4b844: 8fb5002c */ lw $s5,0x2c($sp) -/* 4b848: 8fb60030 */ lw $s6,0x30($sp) -/* 4b84c: 8fb70034 */ lw $s7,0x34($sp) -/* 4b850: 8fbe0038 */ lw $s8,0x38($sp) -/* 4b854: 03e00008 */ jr $ra -/* 4b858: 27bd0068 */ addiu $sp,$sp,0x68 -/* 4b85c: 00000000 */ nop -); - -GLOBAL_ASM( -glabel __osContRamRead -/* 4b860: 27bdffa0 */ addiu $sp,$sp,-96 -/* 4b864: afbf003c */ sw $ra,0x3c($sp) -/* 4b868: afb60030 */ sw $s6,0x30($sp) -/* 4b86c: afb5002c */ sw $s5,0x2c($sp) -/* 4b870: afb1001c */ sw $s1,0x1c($sp) -/* 4b874: 00a08825 */ or $s1,$a1,$zero -/* 4b878: 0080b025 */ or $s6,$a0,$zero -/* 4b87c: afbe0038 */ sw $s8,0x38($sp) -/* 4b880: afb70034 */ sw $s7,0x34($sp) -/* 4b884: afb40028 */ sw $s4,0x28($sp) -/* 4b888: afb30024 */ sw $s3,0x24($sp) -/* 4b88c: afb20020 */ sw $s2,0x20($sp) -/* 4b890: afb00018 */ sw $s0,0x18($sp) -/* 4b894: afa60068 */ sw $a2,0x68($sp) -/* 4b898: afa7006c */ sw $a3,0x6c($sp) -/* 4b89c: 0c012a18 */ jal __osSiGetAccess -/* 4b8a0: 24150002 */ addiu $s5,$zero,0x2 -/* 4b8a4: 97a5006a */ lhu $a1,0x6a($sp) -/* 4b8a8: 3c1e8006 */ lui $s8,%hi(var80060970) -/* 4b8ac: 3c17800a */ lui $s7,%hi(__osContLastCmd) -/* 4b8b0: 3c148009 */ lui $s4,%hi(var80090a20) -/* 4b8b4: 000570c3 */ sra $t6,$a1,0x3 -/* 4b8b8: 00057940 */ sll $t7,$a1,0x5 -/* 4b8bc: afaf0040 */ sw $t7,0x40($sp) -/* 4b8c0: afae0044 */ sw $t6,0x44($sp) -/* 4b8c4: 26940a20 */ addiu $s4,$s4,%lo(var80090a20) -/* 4b8c8: 26f7c820 */ addiu $s7,$s7,%lo(__osContLastCmd) -/* 4b8cc: 27de0970 */ addiu $s8,$s8,%lo(var80060970) -.L0004b8d0: -/* 4b8d0: 92f80000 */ lbu $t8,0x0($s7) -/* 4b8d4: 24010002 */ addiu $at,$zero,0x2 -/* 4b8d8: 97a5006a */ lhu $a1,0x6a($sp) -/* 4b8dc: 17010003 */ bne $t8,$at,.L0004b8ec -/* 4b8e0: 02808025 */ or $s0,$s4,$zero -/* 4b8e4: 8fd90000 */ lw $t9,0x0($s8) -/* 4b8e8: 12390023 */ beq $s1,$t9,.L0004b978 -.L0004b8ec: -/* 4b8ec: 24080002 */ addiu $t0,$zero,0x2 -/* 4b8f0: a2e80000 */ sb $t0,0x0($s7) -/* 4b8f4: afd10000 */ sw $s1,0x0($s8) -/* 4b8f8: 1a200010 */ blez $s1,.L0004b93c -/* 4b8fc: 00001025 */ or $v0,$zero,$zero -/* 4b900: 32240003 */ andi $a0,$s1,0x3 -/* 4b904: 10800006 */ beqz $a0,.L0004b920 -/* 4b908: 00801825 */ or $v1,$a0,$zero -.L0004b90c: -/* 4b90c: 24420001 */ addiu $v0,$v0,0x1 -/* 4b910: a2000000 */ sb $zero,0x0($s0) -/* 4b914: 1462fffd */ bne $v1,$v0,.L0004b90c -/* 4b918: 26100001 */ addiu $s0,$s0,0x1 -/* 4b91c: 10510007 */ beq $v0,$s1,.L0004b93c -.L0004b920: -/* 4b920: 24420004 */ addiu $v0,$v0,0x4 -/* 4b924: a2000000 */ sb $zero,0x0($s0) -/* 4b928: a2000001 */ sb $zero,0x1($s0) -/* 4b92c: a2000002 */ sb $zero,0x2($s0) -/* 4b930: a2000003 */ sb $zero,0x3($s0) -/* 4b934: 1451fffa */ bne $v0,$s1,.L0004b920 -/* 4b938: 26100004 */ addiu $s0,$s0,0x4 -.L0004b93c: -/* 4b93c: 24090001 */ addiu $t1,$zero,0x1 -/* 4b940: ae89003c */ sw $t1,0x3c($s4) -/* 4b944: 240a00ff */ addiu $t2,$zero,0xff -/* 4b948: 240b0003 */ addiu $t3,$zero,0x3 -/* 4b94c: 240c0021 */ addiu $t4,$zero,0x21 -/* 4b950: 240d0002 */ addiu $t5,$zero,0x2 -/* 4b954: 240e00ff */ addiu $t6,$zero,0xff -/* 4b958: 240f00fe */ addiu $t7,$zero,0xfe -/* 4b95c: a20a0000 */ sb $t2,0x0($s0) -/* 4b960: a20b0001 */ sb $t3,0x1($s0) -/* 4b964: a20c0002 */ sb $t4,0x2($s0) -/* 4b968: a20d0003 */ sb $t5,0x3($s0) -/* 4b96c: a20e0026 */ sb $t6,0x26($s0) -/* 4b970: 10000002 */ b .L0004b97c -/* 4b974: a20f0027 */ sb $t7,0x27($s0) -.L0004b978: -/* 4b978: 02918021 */ addu $s0,$s4,$s1 -.L0004b97c: -/* 4b97c: 8fb80044 */ lw $t8,0x44($sp) -/* 4b980: 30a4ffff */ andi $a0,$a1,0xffff -/* 4b984: 0c014754 */ jal func00051d50 -/* 4b988: a2180004 */ sb $t8,0x4($s0) -/* 4b98c: 8fb90040 */ lw $t9,0x40($sp) -/* 4b990: 24040001 */ addiu $a0,$zero,0x1 -/* 4b994: 02802825 */ or $a1,$s4,$zero -/* 4b998: 00594025 */ or $t0,$v0,$t9 -/* 4b99c: 0c012a34 */ jal __osSiRawStartDma -/* 4b9a0: a2080005 */ sb $t0,0x5($s0) -/* 4b9a4: 02c02025 */ or $a0,$s6,$zero -/* 4b9a8: 00002825 */ or $a1,$zero,$zero -/* 4b9ac: 0c0121bc */ jal osRecvMesg -/* 4b9b0: 24060001 */ addiu $a2,$zero,0x1 -/* 4b9b4: 00002025 */ or $a0,$zero,$zero -/* 4b9b8: 0c012a34 */ jal __osSiRawStartDma -/* 4b9bc: 02802825 */ or $a1,$s4,$zero -/* 4b9c0: 02c02025 */ or $a0,$s6,$zero -/* 4b9c4: 00002825 */ or $a1,$zero,$zero -/* 4b9c8: 0c0121bc */ jal osRecvMesg -/* 4b9cc: 24060001 */ addiu $a2,$zero,0x1 -/* 4b9d0: 92130002 */ lbu $s3,0x2($s0) -/* 4b9d4: 26120006 */ addiu $s2,$s0,0x6 -/* 4b9d8: 326900c0 */ andi $t1,$s3,0xc0 -/* 4b9dc: 00099903 */ sra $s3,$t1,0x4 -/* 4b9e0: 56600014 */ bnezl $s3,.L0004ba34 -/* 4b9e4: 24130001 */ addiu $s3,$zero,0x1 -/* 4b9e8: 0c014788 */ jal func00051e20 -/* 4b9ec: 02402025 */ or $a0,$s2,$zero -/* 4b9f0: 920b0026 */ lbu $t3,0x26($s0) -/* 4b9f4: 02402025 */ or $a0,$s2,$zero -/* 4b9f8: 8fa5006c */ lw $a1,0x6c($sp) -/* 4b9fc: 11620008 */ beq $t3,$v0,.L0004ba20 -/* 4ba00: 00000000 */ nop -/* 4ba04: 02c02025 */ or $a0,$s6,$zero -/* 4ba08: 0c012ea4 */ jal __osPfsGetStatus -/* 4ba0c: 02202825 */ or $a1,$s1,$zero -/* 4ba10: 1440000d */ bnez $v0,.L0004ba48 -/* 4ba14: 00409825 */ or $s3,$v0,$zero -/* 4ba18: 10000006 */ b .L0004ba34 -/* 4ba1c: 24130004 */ addiu $s3,$zero,0x4 -.L0004ba20: -/* 4ba20: 0c012c5c */ jal alCopy -/* 4ba24: 24060020 */ addiu $a2,$zero,0x20 -/* 4ba28: 10000003 */ b .L0004ba38 -/* 4ba2c: 24010004 */ addiu $at,$zero,0x4 -/* 4ba30: 24130001 */ addiu $s3,$zero,0x1 -.L0004ba34: -/* 4ba34: 24010004 */ addiu $at,$zero,0x4 -.L0004ba38: -/* 4ba38: 16610003 */ bne $s3,$at,.L0004ba48 -/* 4ba3c: 2aa20000 */ slti $v0,$s5,0x0 -/* 4ba40: 1040ffa3 */ beqz $v0,.L0004b8d0 -/* 4ba44: 26b5ffff */ addiu $s5,$s5,-1 -.L0004ba48: -/* 4ba48: 0c012a29 */ jal __osSiRelAccess -/* 4ba4c: 00000000 */ nop -/* 4ba50: 8fbf003c */ lw $ra,0x3c($sp) -/* 4ba54: 02601025 */ or $v0,$s3,$zero -/* 4ba58: 8fb30024 */ lw $s3,0x24($sp) -/* 4ba5c: 8fb00018 */ lw $s0,0x18($sp) -/* 4ba60: 8fb1001c */ lw $s1,0x1c($sp) -/* 4ba64: 8fb20020 */ lw $s2,0x20($sp) -/* 4ba68: 8fb40028 */ lw $s4,0x28($sp) -/* 4ba6c: 8fb5002c */ lw $s5,0x2c($sp) -/* 4ba70: 8fb60030 */ lw $s6,0x30($sp) -/* 4ba74: 8fb70034 */ lw $s7,0x34($sp) -/* 4ba78: 8fbe0038 */ lw $s8,0x38($sp) -/* 4ba7c: 03e00008 */ jr $ra -/* 4ba80: 27bd0060 */ addiu $sp,$sp,0x60 -/* 4ba84: 00000000 */ nop -/* 4ba88: 00000000 */ nop -/* 4ba8c: 00000000 */ nop -); \ No newline at end of file diff --git a/src/lib/lib_4c090.c b/src/lib/lib_4c090.c index 1bae93334..dae7bba33 100644 --- a/src/lib/lib_4c090.c +++ b/src/lib/lib_4c090.c @@ -8,7 +8,6 @@ #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" -#include "lib/lib_481e0.h" #include "lib/lib_4b170.h" #include "lib/lib_4b5e0.h" #include "lib/lib_4c090.h" @@ -553,7 +552,7 @@ glabel func0004c6b4 /* 4c7d0: 02202025 */ or $a0,$s1,$zero .L0004c7d4: /* 4c7d4: 2605000c */ addiu $a1,$s0,0xc -/* 4c7d8: 0c012c5c */ jal alCopy +/* 4c7d8: 0c012c5c */ jal func0004b170 /* 4c7dc: 24060020 */ addiu $a2,$zero,0x20 /* 4c7e0: 922e001b */ lbu $t6,0x1b($s1) /* 4c7e4: 24090010 */ addiu $t1,$zero,0x10 @@ -682,7 +681,7 @@ glabel func0004c934 /* 4c98c: 2484c870 */ addiu $a0,$a0,%lo(var8009c870) /* 4c990: 57280006 */ bnel $t9,$t0,.L0004c9ac /* 4c994: 92490065 */ lbu $t1,0x65($s2) -/* 4c998: 0c012c5c */ jal alCopy +/* 4c998: 0c012c5c */ jal func0004b170 /* 4c99c: 24060100 */ addiu $a2,$zero,0x100 /* 4c9a0: 10000091 */ b .L0004cbe8 /* 4c9a4: 00001025 */ or $v0,$zero,$zero @@ -838,7 +837,7 @@ glabel func0004c934 /* 4cbc4: 24a5c870 */ addiu $a1,$a1,%lo(var8009c870) /* 4cbc8: 8fa4005c */ lw $a0,0x5c($sp) /* 4cbcc: 24060100 */ addiu $a2,$zero,0x100 -/* 4cbd0: 0c012c5c */ jal alCopy +/* 4cbd0: 0c012c5c */ jal func0004b170 /* 4cbd4: a02b0984 */ sb $t3,%lo(var80060984)($at) /* 4cbd8: 8e4e0008 */ lw $t6,0x8($s2) /* 4cbdc: 3c018006 */ lui $at,%hi(var80060980) diff --git a/src/lib/lib_4cc10.c b/src/lib/lib_4cc10.c index f5092ce7e..6a06d142f 100644 --- a/src/lib/lib_4cc10.c +++ b/src/lib/lib_4cc10.c @@ -9,7 +9,6 @@ #include "game/data/data_02da90.h" #include "gvars/gvars.h" #include "lib/lib_4b5e0.h" -#include "lib/lib_4ba90.h" #include "lib/lib_4c090.h" #include "types.h" diff --git a/src/lib/lib_4d000.c b/src/lib/lib_4d000.c index e7a7b3de6..81e54b2e0 100644 --- a/src/lib/lib_4d000.c +++ b/src/lib/lib_4d000.c @@ -173,7 +173,7 @@ glabel func0004d000 /* 4d21c: 0114082a */ slt $at,$t0,$s4 /* 4d220: 5020000a */ beqzl $at,.L0004d24c /* 4d224: 0000a025 */ or $s4,$zero,$zero -/* 4d228: 0c012c5c */ jal alCopy +/* 4d228: 0c012c5c */ jal func0004b170 /* 4d22c: 24060100 */ addiu $a2,$zero,0x100 /* 4d230: 8fa90290 */ lw $t1,0x290($sp) /* 4d234: 8fb6028c */ lw $s6,0x28c($sp) @@ -218,11 +218,11 @@ glabel func0004d000 /* 4d2b8: 27a50070 */ addiu $a1,$sp,0x70 /* 4d2bc: 24060010 */ addiu $a2,$zero,0x10 /* 4d2c0: a7ad0064 */ sh $t5,0x64($sp) -/* 4d2c4: 0c012c5c */ jal alCopy +/* 4d2c4: 0c012c5c */ jal func0004b170 /* 4d2c8: afae0060 */ sw $t6,0x60($sp) /* 4d2cc: 8fa402a8 */ lw $a0,0x2a8($sp) /* 4d2d0: 27a5006c */ addiu $a1,$sp,0x6c -/* 4d2d4: 0c012c5c */ jal alCopy +/* 4d2d4: 0c012c5c */ jal func0004b170 /* 4d2d8: 24060004 */ addiu $a2,$zero,0x4 /* 4d2dc: 8faf02b0 */ lw $t7,0x2b0($sp) /* 4d2e0: 8e79005c */ lw $t9,0x5c($s3) diff --git a/src/lib/lib_4d6f0.c b/src/lib/lib_4d6f0.c index 08f8866da..63fec3b6f 100644 --- a/src/lib/lib_4d6f0.c +++ b/src/lib/lib_4d6f0.c @@ -812,61 +812,3 @@ glabel func0004e090 /* 4e1a8: 24020001 */ addiu $v0,$zero,0x1 /* 4e1ac: 00000000 */ nop ); - -GLOBAL_ASM( -glabel osMapTLB -/* 4e1b0: 40085000 */ mfc0 $t0,$10 -/* 4e1b4: 40840000 */ mtc0 $a0,$0 -/* 4e1b8: 40852800 */ mtc0 $a1,$5 -/* 4e1bc: 8fa90014 */ lw $t1,0x14($sp) -/* 4e1c0: 2401ffff */ addiu $at,$zero,-1 -/* 4e1c4: 11210004 */ beq $t1,$at,.L0004e1d8 -/* 4e1c8: 240c0001 */ addiu $t4,$zero,0x1 -/* 4e1cc: 240a001e */ addiu $t2,$zero,0x1e -/* 4e1d0: 10000002 */ b .L0004e1dc -/* 4e1d4: 00c93025 */ or $a2,$a2,$t1 -.L0004e1d8: -/* 4e1d8: 240a001f */ addiu $t2,$zero,0x1f -.L0004e1dc: -/* 4e1dc: 40865000 */ mtc0 $a2,$10 -/* 4e1e0: 2401ffff */ addiu $at,$zero,-1 -/* 4e1e4: 10e10006 */ beq $a3,$at,.L0004e200 -/* 4e1e8: 00000000 */ nop -/* 4e1ec: 00075982 */ srl $t3,$a3,0x6 -/* 4e1f0: 016a5825 */ or $t3,$t3,$t2 -/* 4e1f4: 408b1000 */ mtc0 $t3,$2 -/* 4e1f8: 10000002 */ b .L0004e204 -/* 4e1fc: 00000000 */ nop -.L0004e200: -/* 4e200: 408c1000 */ mtc0 $t4,$2 -.L0004e204: -/* 4e204: 8fab0010 */ lw $t3,0x10($sp) -/* 4e208: 2401ffff */ addiu $at,$zero,-1 -/* 4e20c: 11610006 */ beq $t3,$at,.L0004e228 -/* 4e210: 00000000 */ nop -/* 4e214: 000b5982 */ srl $t3,$t3,0x6 -/* 4e218: 016a5825 */ or $t3,$t3,$t2 -/* 4e21c: 408b1800 */ mtc0 $t3,$3 -/* 4e220: 10000007 */ b .L0004e240 -/* 4e224: 00000000 */ nop -.L0004e228: -/* 4e228: 408c1800 */ mtc0 $t4,$3 -/* 4e22c: 2401ffff */ addiu $at,$zero,-1 -/* 4e230: 14e10003 */ bne $a3,$at,.L0004e240 -/* 4e234: 00000000 */ nop -/* 4e238: 3c0b8000 */ lui $t3,0x8000 -/* 4e23c: 408b5000 */ mtc0 $t3,$10 -.L0004e240: -/* 4e240: 00000000 */ nop -/* 4e244: 42000002 */ tlbwi -/* 4e248: 00000000 */ nop -/* 4e24c: 00000000 */ nop -/* 4e250: 00000000 */ nop -/* 4e254: 00000000 */ nop -/* 4e258: 40885000 */ mtc0 $t0,$10 -/* 4e25c: 03e00008 */ jr $ra -/* 4e260: 00000000 */ nop -/* 4e264: 00000000 */ nop -/* 4e268: 00000000 */ nop -/* 4e26c: 00000000 */ nop -); \ No newline at end of file diff --git a/src/lib/lib_4e3c0.c b/src/lib/lib_4e3c0.c index 1e68370b6..8e4cf3161 100644 --- a/src/lib/lib_4e3c0.c +++ b/src/lib/lib_4e3c0.c @@ -8,7 +8,6 @@ #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" -#include "lib/lib_4b480.h" #include "lib/lib_51ec0.h" #include "types.h" diff --git a/src/lib/lib_4e470.c b/src/lib/lib_4e470.c index 850d9777e..465572fef 100644 --- a/src/lib/lib_4e470.c +++ b/src/lib/lib_4e470.c @@ -17,56 +17,3 @@ glabel func0004e470 /* 4e478: 8dc20004 */ lw $v0,0x4($t6) /* 4e47c: 00000000 */ nop ); - -GLOBAL_ASM( -glabel osInvalDCache -/* 4e480: 18a0001f */ blez $a1,.L0004e500 -/* 4e484: 00000000 */ nop -/* 4e488: 240b2000 */ addiu $t3,$zero,0x2000 -/* 4e48c: 00ab082b */ sltu $at,$a1,$t3 -/* 4e490: 1020001d */ beqz $at,.L0004e508 -/* 4e494: 00000000 */ nop -/* 4e498: 00804025 */ or $t0,$a0,$zero -/* 4e49c: 00854821 */ addu $t1,$a0,$a1 -/* 4e4a0: 0109082b */ sltu $at,$t0,$t1 -/* 4e4a4: 10200016 */ beqz $at,.L0004e500 -/* 4e4a8: 00000000 */ nop -/* 4e4ac: 310a000f */ andi $t2,$t0,0xf -/* 4e4b0: 11400007 */ beqz $t2,.L0004e4d0 -/* 4e4b4: 2529fff0 */ addiu $t1,$t1,-16 -/* 4e4b8: 010a4023 */ subu $t0,$t0,$t2 -/* 4e4bc: bd150000 */ cache 0x15,0x0($t0) -/* 4e4c0: 0109082b */ sltu $at,$t0,$t1 -/* 4e4c4: 1020000e */ beqz $at,.L0004e500 -/* 4e4c8: 00000000 */ nop -/* 4e4cc: 25080010 */ addiu $t0,$t0,0x10 -.L0004e4d0: -/* 4e4d0: 312a000f */ andi $t2,$t1,0xf -/* 4e4d4: 11400006 */ beqz $t2,.L0004e4f0 -/* 4e4d8: 00000000 */ nop -/* 4e4dc: 012a4823 */ subu $t1,$t1,$t2 -/* 4e4e0: bd350010 */ cache 0x15,0x10($t1) -/* 4e4e4: 0128082b */ sltu $at,$t1,$t0 -/* 4e4e8: 14200005 */ bnez $at,.L0004e500 -/* 4e4ec: 00000000 */ nop -.L0004e4f0: -/* 4e4f0: bd110000 */ cache 0x11,0x0($t0) -/* 4e4f4: 0109082b */ sltu $at,$t0,$t1 -/* 4e4f8: 1420fffd */ bnez $at,.L0004e4f0 -/* 4e4fc: 25080010 */ addiu $t0,$t0,0x10 -.L0004e500: -/* 4e500: 03e00008 */ jr $ra -/* 4e504: 00000000 */ nop -.L0004e508: -/* 4e508: 3c088000 */ lui $t0,0x8000 -/* 4e50c: 010b4821 */ addu $t1,$t0,$t3 -/* 4e510: 2529fff0 */ addiu $t1,$t1,-16 -.L0004e514: -/* 4e514: bd010000 */ cache 0x1,0x0($t0) -/* 4e518: 0109082b */ sltu $at,$t0,$t1 -/* 4e51c: 1420fffd */ bnez $at,.L0004e514 -/* 4e520: 25080010 */ addiu $t0,$t0,0x10 -/* 4e524: 03e00008 */ jr $ra -/* 4e528: 00000000 */ nop -/* 4e52c: 00000000 */ nop -); \ No newline at end of file diff --git a/src/lib/lib_4e640.c b/src/lib/lib_4e640.c new file mode 100644 index 000000000..00b148272 --- /dev/null +++ b/src/lib/lib_4e640.c @@ -0,0 +1,9 @@ +#include + +GLOBAL_ASM( +glabel func0004e640 +/* 4e640: 3c028006 */ lui $v0,%hi(var80060944) +/* 4e644: 03e00008 */ jr $ra +/* 4e648: 8c420944 */ lw $v0,%lo(var80060944)($v0) +/* 4e64c: 00000000 */ nop +); diff --git a/src/lib/lib_4e690.c b/src/lib/lib_4e690.c index 2c9632122..cbcaf623b 100644 --- a/src/lib/lib_4e690.c +++ b/src/lib/lib_4e690.c @@ -11,7 +11,6 @@ #include "lib/lib_04a80.h" #include "lib/lib_4a5e0.h" #include "lib/lib_4e690.h" -#include "lib/lib_52070.h" #include "types.h" GLOBAL_ASM( diff --git a/src/lib/lib_4f5e0.c b/src/lib/lib_4f5e0.c index c90e50692..f1e8600bc 100644 --- a/src/lib/lib_4f5e0.c +++ b/src/lib/lib_4f5e0.c @@ -10,9 +10,7 @@ #include "gvars/gvars.h" #include "lib/lib_04790.h" #include "lib/lib_16110.h" -#include "lib/lib_48650.h" #include "lib/lib_4a360.h" -#include "lib/lib_4a810.h" #include "lib/lib_4b5e0.h" #include "lib/lib_4cde0.h" #include "lib/lib_4f5e0.h" diff --git a/src/lib/lib_50480.c b/src/lib/lib_50480.c index 1801567c3..09b5bac2f 100644 --- a/src/lib/lib_50480.c +++ b/src/lib/lib_50480.c @@ -9,7 +9,6 @@ #include "game/data/data_02da90.h" #include "gvars/gvars.h" #include "lib/lib_4b5e0.h" -#include "lib/lib_4ba90.h" #include "lib/lib_4c090.h" #include "lib/lib_4cde0.h" #include "lib/lib_50480.h" diff --git a/src/lib/lib_50a00.c b/src/lib/lib_50a00.c index c32f3beb1..ed3cf444a 100644 --- a/src/lib/lib_50a00.c +++ b/src/lib/lib_50a00.c @@ -12,7 +12,6 @@ #include "lib/lib_06330.h" #include "lib/lib_4b170.h" #include "lib/lib_4b5e0.h" -#include "lib/lib_4ba90.h" #include "lib/lib_4c090.h" #include "lib/lib_4cde0.h" #include "lib/lib_4d6f0.h" @@ -136,12 +135,12 @@ glabel func00050a00 /* 50b88: a44f0008 */ sh $t7,0x8($v0) /* 50b8c: 8fb80038 */ lw $t8,0x38($sp) /* 50b90: 24060010 */ addiu $a2,$zero,0x10 -/* 50b94: 0c012c5c */ jal alCopy +/* 50b94: 0c012c5c */ jal func0004b170 /* 50b98: ac580004 */ sw $t8,0x4($v0) /* 50b9c: 8fa50168 */ lw $a1,0x168($sp) /* 50ba0: 27a40044 */ addiu $a0,$sp,0x44 /* 50ba4: 24060004 */ addiu $a2,$zero,0x4 -/* 50ba8: 0c012c5c */ jal alCopy +/* 50ba8: 0c012c5c */ jal func0004b170 /* 50bac: 24a5000a */ addiu $a1,$a1,0xa /* 50bb0: 8e640004 */ lw $a0,0x4($s3) /* 50bb4: 0c012ea4 */ jal __osPfsGetStatus @@ -369,7 +368,7 @@ glabel func00050d60 .L00050ebc: /* 50ebc: 8fa50094 */ lw $a1,0x94($sp) /* 50ec0: 24060050 */ addiu $a2,$zero,0x50 -/* 50ec4: 0c012c5c */ jal alCopy +/* 50ec4: 0c012c5c */ jal func0004b170 /* 50ec8: afa70088 */ sw $a3,0x88($sp) /* 50ecc: 8faa0094 */ lw $t2,0x94($sp) /* 50ed0: 3c0b8006 */ lui $t3,%hi(var80061220) diff --git a/src/lib/lib_513b0.c b/src/lib/lib_513b0.c index 0e74b4178..5335d6a2e 100644 --- a/src/lib/lib_513b0.c +++ b/src/lib/lib_513b0.c @@ -8,10 +8,8 @@ #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" -#include "lib/lib_4a810.h" #include "lib/lib_4b170.h" #include "lib/lib_4b5e0.h" -#include "lib/lib_4ba90.h" #include "lib/lib_4c090.h" #include "lib/lib_4cde0.h" #include "lib/lib_4d6f0.h" @@ -242,7 +240,7 @@ glabel func000513b0 /* 516d0: 8fa40044 */ lw $a0,0x44($sp) .L000516d4: /* 516d4: 2605000c */ addiu $a1,$s0,0xc -/* 516d8: 0c012c5c */ jal alCopy +/* 516d8: 0c012c5c */ jal func0004b170 /* 516dc: 24060020 */ addiu $a2,$zero,0x20 /* 516e0: 8fab0044 */ lw $t3,0x44($sp) /* 516e4: 24190010 */ addiu $t9,$zero,0x10 diff --git a/src/lib/lib_51880.c b/src/lib/lib_51880.c deleted file mode 100644 index 2fd80286c..000000000 --- a/src/lib/lib_51880.c +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "types.h" - -GLOBAL_ASM( -glabel __osSetCompare -/* 51880: 40845800 */ mtc0 $a0,$11 -/* 51884: 03e00008 */ jr $ra -/* 51888: 00000000 */ nop -/* 5188c: 00000000 */ nop -); \ No newline at end of file diff --git a/src/lib/lib_51890.c b/src/lib/lib_51890.c index fafbc3bd9..89342ce15 100644 --- a/src/lib/lib_51890.c +++ b/src/lib/lib_51890.c @@ -8,7 +8,6 @@ #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" -#include "lib/lib_491b0.h" #include "types.h" GLOBAL_ASM( @@ -18,31 +17,3 @@ glabel func00051890 /* 51898: 8dc20010 */ lw $v0,0x10($t6) /* 5189c: 00000000 */ nop ); - -GLOBAL_ASM( -glabel __osResetGlobalIntMask -/* 518a0: 27bdffd8 */ addiu $sp,$sp,-40 -/* 518a4: afbf001c */ sw $ra,0x1c($sp) -/* 518a8: afa40028 */ sw $a0,0x28($sp) -/* 518ac: 0c01256c */ jal __osDisableInt -/* 518b0: afb00018 */ sw $s0,0x18($sp) -/* 518b4: 8faf0028 */ lw $t7,0x28($sp) -/* 518b8: 3c0e8006 */ lui $t6,%hi(var8005cf70) -/* 518bc: 8dcecf70 */ lw $t6,%lo(var8005cf70)($t6) -/* 518c0: 2401fbfe */ addiu $at,$zero,-1026 -/* 518c4: 01e1c024 */ and $t8,$t7,$at -/* 518c8: 0300c827 */ nor $t9,$t8,$zero -/* 518cc: 00408025 */ or $s0,$v0,$zero -/* 518d0: 3c018006 */ lui $at,%hi(var8005cf70) -/* 518d4: 01d94024 */ and $t0,$t6,$t9 -/* 518d8: ac28cf70 */ sw $t0,%lo(var8005cf70)($at) -/* 518dc: 0c012588 */ jal __osRestoreInt -/* 518e0: 02002025 */ or $a0,$s0,$zero -/* 518e4: 8fbf001c */ lw $ra,0x1c($sp) -/* 518e8: 8fb00018 */ lw $s0,0x18($sp) -/* 518ec: 27bd0028 */ addiu $sp,$sp,0x28 -/* 518f0: 03e00008 */ jr $ra -/* 518f4: 00000000 */ nop -/* 518f8: 00000000 */ nop -/* 518fc: 00000000 */ nop -); \ No newline at end of file diff --git a/src/lib/lib_51ec0.c b/src/lib/lib_51ec0.c index 333d56bdb..b8d73645d 100644 --- a/src/lib/lib_51ec0.c +++ b/src/lib/lib_51ec0.c @@ -1,17 +1,4 @@ #include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_034f0.h" -#include "lib/lib_481e0.h" -#include "lib/lib_491b0.h" -#include "types.h" GLOBAL_ASM( glabel func00051ec0 @@ -30,116 +17,3 @@ glabel func00051ec0 /* 51ee8: 03e00008 */ jr $ra /* 51eec: 27bd0008 */ addiu $sp,$sp,0x8 ); - -GLOBAL_ASM( -glabel osJamMesg -/* 51ef0: 27bdffd8 */ addiu $sp,$sp,-40 -/* 51ef4: afbf001c */ sw $ra,0x1c($sp) -/* 51ef8: afa40028 */ sw $a0,0x28($sp) -/* 51efc: afa5002c */ sw $a1,0x2c($sp) -/* 51f00: afa60030 */ sw $a2,0x30($sp) -/* 51f04: afb10018 */ sw $s1,0x18($sp) -/* 51f08: 0c01256c */ jal __osDisableInt -/* 51f0c: afb00014 */ sw $s0,0x14($sp) -/* 51f10: 8fae0028 */ lw $t6,0x28($sp) -/* 51f14: 00408025 */ or $s0,$v0,$zero -/* 51f18: 8dcf0008 */ lw $t7,0x8($t6) -/* 51f1c: 8dd80010 */ lw $t8,0x10($t6) -/* 51f20: 01f8082a */ slt $at,$t7,$t8 -/* 51f24: 14200018 */ bnez $at,.L00051f88 -/* 51f28: 00000000 */ nop -.L00051f2c: -/* 51f2c: 8fb90030 */ lw $t9,0x30($sp) -/* 51f30: 24010001 */ addiu $at,$zero,0x1 -/* 51f34: 1721000a */ bne $t9,$at,.L00051f60 -/* 51f38: 00000000 */ nop -/* 51f3c: 3c098006 */ lui $t1,%hi(__osRunningThread) -/* 51f40: 8d290940 */ lw $t1,%lo(__osRunningThread)($t1) -/* 51f44: 24080008 */ addiu $t0,$zero,0x8 -/* 51f48: a5280010 */ sh $t0,0x10($t1) -/* 51f4c: 8fa40028 */ lw $a0,0x28($sp) -/* 51f50: 0c000ee8 */ jal __osEnqueueAndYield -/* 51f54: 24840004 */ addiu $a0,$a0,0x4 -/* 51f58: 10000005 */ b .L00051f70 -/* 51f5c: 00000000 */ nop -.L00051f60: -/* 51f60: 0c012588 */ jal __osRestoreInt -/* 51f64: 02002025 */ or $a0,$s0,$zero -/* 51f68: 10000030 */ b .L0005202c -/* 51f6c: 2402ffff */ addiu $v0,$zero,-1 -.L00051f70: -/* 51f70: 8faa0028 */ lw $t2,0x28($sp) -/* 51f74: 8d4b0008 */ lw $t3,0x8($t2) -/* 51f78: 8d4c0010 */ lw $t4,0x10($t2) -/* 51f7c: 016c082a */ slt $at,$t3,$t4 -/* 51f80: 1020ffea */ beqz $at,.L00051f2c -/* 51f84: 00000000 */ nop -.L00051f88: -/* 51f88: 8fad0028 */ lw $t5,0x28($sp) -/* 51f8c: 8dae000c */ lw $t6,0xc($t5) -/* 51f90: 8daf0010 */ lw $t7,0x10($t5) -/* 51f94: 01cfc021 */ addu $t8,$t6,$t7 -/* 51f98: 2719ffff */ addiu $t9,$t8,-1 -/* 51f9c: 032f001a */ div $zero,$t9,$t7 -/* 51fa0: 00004010 */ mfhi $t0 -/* 51fa4: ada8000c */ sw $t0,0xc($t5) -/* 51fa8: 8faa0028 */ lw $t2,0x28($sp) -/* 51fac: 8fa9002c */ lw $t1,0x2c($sp) -/* 51fb0: 15e00002 */ bnez $t7,.L00051fbc -/* 51fb4: 00000000 */ nop -/* 51fb8: 0007000d */ break 0x7 -.L00051fbc: -/* 51fbc: 2401ffff */ addiu $at,$zero,-1 -/* 51fc0: 15e10004 */ bne $t7,$at,.L00051fd4 -/* 51fc4: 3c018000 */ lui $at,0x8000 -/* 51fc8: 17210002 */ bne $t9,$at,.L00051fd4 -/* 51fcc: 00000000 */ nop -/* 51fd0: 0006000d */ break 0x6 -.L00051fd4: -/* 51fd4: 8d4c000c */ lw $t4,0xc($t2) -/* 51fd8: 8d4b0014 */ lw $t3,0x14($t2) -/* 51fdc: 000c7080 */ sll $t6,$t4,0x2 -/* 51fe0: 016ec021 */ addu $t8,$t3,$t6 -/* 51fe4: af090000 */ sw $t1,0x0($t8) -/* 51fe8: 8fb90028 */ lw $t9,0x28($sp) -/* 51fec: 8f2f0008 */ lw $t7,0x8($t9) -/* 51ff0: 25e80001 */ addiu $t0,$t7,0x1 -/* 51ff4: af280008 */ sw $t0,0x8($t9) -/* 51ff8: 8fad0028 */ lw $t5,0x28($sp) -/* 51ffc: 8daa0000 */ lw $t2,0x0($t5) -/* 52000: 8d4c0000 */ lw $t4,0x0($t2) -/* 52004: 11800006 */ beqz $t4,.L00052020 -/* 52008: 00000000 */ nop -/* 5200c: 0c000f40 */ jal __osPopThread -/* 52010: 01a02025 */ or $a0,$t5,$zero -/* 52014: 00408825 */ or $s1,$v0,$zero -/* 52018: 0c01207c */ jal osStartThread -/* 5201c: 02202025 */ or $a0,$s1,$zero -.L00052020: -/* 52020: 0c012588 */ jal __osRestoreInt -/* 52024: 02002025 */ or $a0,$s0,$zero -/* 52028: 00001025 */ or $v0,$zero,$zero -.L0005202c: -/* 5202c: 8fbf001c */ lw $ra,0x1c($sp) -/* 52030: 8fb00014 */ lw $s0,0x14($sp) -/* 52034: 8fb10018 */ lw $s1,0x18($sp) -/* 52038: 03e00008 */ jr $ra -/* 5203c: 27bd0028 */ addiu $sp,$sp,0x28 -); - -GLOBAL_ASM( -glabel osPiGetCmdQueue -/* 52040: 3c0e8006 */ lui $t6,%hi(var8005cf00) -/* 52044: 8dcecf00 */ lw $t6,%lo(var8005cf00)($t6) -/* 52048: 15c00003 */ bnez $t6,.L00052058 -/* 5204c: 00000000 */ nop -/* 52050: 03e00008 */ jr $ra -/* 52054: 00001025 */ or $v0,$zero,$zero -.L00052058: -/* 52058: 3c028006 */ lui $v0,%hi(var8005cf08) -/* 5205c: 8c42cf08 */ lw $v0,%lo(var8005cf08)($v0) -/* 52060: 03e00008 */ jr $ra -/* 52064: 00000000 */ nop -/* 52068: 00000000 */ nop -/* 5206c: 00000000 */ nop -); \ No newline at end of file diff --git a/src/lib/lib_52070.c b/src/lib/lib_520c0.c similarity index 85% rename from src/lib/lib_52070.c rename to src/lib/lib_520c0.c index 64bb2659f..65ef17e1c 100644 --- a/src/lib/lib_52070.c +++ b/src/lib/lib_520c0.c @@ -1,43 +1,4 @@ #include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_4a5e0.h" -#include "lib/lib_4a680.h" -#include "lib/lib_4ae00.h" -#include "types.h" - -GLOBAL_ASM( -glabel osPiRawReadIo -/* 52070: 3c03a460 */ lui $v1,0xa460 -/* 52074: 34630010 */ ori $v1,$v1,0x10 -/* 52078: 8c620000 */ lw $v0,0x0($v1) -/* 5207c: 3c188000 */ lui $t8,0x8000 -/* 52080: 304e0003 */ andi $t6,$v0,0x3 -/* 52084: 11c00005 */ beqz $t6,.L0005209c -/* 52088: 00000000 */ nop -/* 5208c: 8c620000 */ lw $v0,0x0($v1) -.L00052090: -/* 52090: 304f0003 */ andi $t7,$v0,0x3 -/* 52094: 55e0fffe */ bnezl $t7,.L00052090 -/* 52098: 8c620000 */ lw $v0,0x0($v1) -.L0005209c: -/* 5209c: 8f180308 */ lw $t8,0x308($t8) -/* 520a0: 3c01a000 */ lui $at,0xa000 -/* 520a4: 00001025 */ or $v0,$zero,$zero -/* 520a8: 0304c825 */ or $t9,$t8,$a0 -/* 520ac: 03214025 */ or $t0,$t9,$at -/* 520b0: 8d090000 */ lw $t1,0x0($t0) -/* 520b4: 03e00008 */ jr $ra -/* 520b8: aca90000 */ sw $t1,0x0($a1) -/* 520bc: 00000000 */ nop -); GLOBAL_ASM( glabel func000520c0 @@ -228,4 +189,4 @@ glabel func000520c0 /* 52354: 27bd0090 */ addiu $sp,$sp,0x90 /* 52358: 00000000 */ nop /* 5235c: 00000000 */ nop -); \ No newline at end of file +); diff --git a/src/lib/ultra/io/conteeplongread.c b/src/lib/ultra/io/conteeplongread.c new file mode 100644 index 000000000..9b6d62f45 --- /dev/null +++ b/src/lib/ultra/io/conteeplongread.c @@ -0,0 +1,45 @@ +#include + +GLOBAL_ASM( +glabel osEepromLongRead +/* 503f0: 27bdffe0 */ addiu $sp,$sp,-32 +/* 503f4: afa7002c */ sw $a3,0x2c($sp) +/* 503f8: 8fae002c */ lw $t6,0x2c($sp) +/* 503fc: afbf0014 */ sw $ra,0x14($sp) +/* 50400: afa40020 */ sw $a0,0x20($sp) +/* 50404: afa50024 */ sw $a1,0x24($sp) +/* 50408: afa60028 */ sw $a2,0x28($sp) +/* 5040c: 19c00016 */ blez $t6,.L00050468 +/* 50410: afa0001c */ sw $zero,0x1c($sp) +.L00050414: +/* 50414: 8fa40020 */ lw $a0,0x20($sp) +/* 50418: 93a50027 */ lbu $a1,0x27($sp) +/* 5041c: 0c014068 */ jal osEepromRead +/* 50420: 8fa60028 */ lw $a2,0x28($sp) +/* 50424: afa2001c */ sw $v0,0x1c($sp) +/* 50428: 8faf001c */ lw $t7,0x1c($sp) +/* 5042c: 11e00003 */ beqz $t7,.L0005043c +/* 50430: 00000000 */ nop +/* 50434: 1000000d */ b .L0005046c +/* 50438: 01e01025 */ or $v0,$t7,$zero +.L0005043c: +/* 5043c: 8fb8002c */ lw $t8,0x2c($sp) +/* 50440: 93a80027 */ lbu $t0,0x27($sp) +/* 50444: 8faa0028 */ lw $t2,0x28($sp) +/* 50448: 2719fff8 */ addiu $t9,$t8,-8 +/* 5044c: afb9002c */ sw $t9,0x2c($sp) +/* 50450: 8fac002c */ lw $t4,0x2c($sp) +/* 50454: 25090001 */ addiu $t1,$t0,0x1 +/* 50458: 254b0008 */ addiu $t3,$t2,0x8 +/* 5045c: a3a90027 */ sb $t1,0x27($sp) +/* 50460: 1d80ffec */ bgtz $t4,.L00050414 +/* 50464: afab0028 */ sw $t3,0x28($sp) +.L00050468: +/* 50468: 8fa2001c */ lw $v0,0x1c($sp) +.L0005046c: +/* 5046c: 8fbf0014 */ lw $ra,0x14($sp) +/* 50470: 27bd0020 */ addiu $sp,$sp,0x20 +/* 50474: 03e00008 */ jr $ra +/* 50478: 00000000 */ nop +/* 5047c: 00000000 */ nop +); diff --git a/src/lib/lib_06440.c b/src/lib/ultra/io/conteeplongwrite.c similarity index 88% rename from src/lib/lib_06440.c rename to src/lib/ultra/io/conteeplongwrite.c index 6aa5efa1a..dc5f48ff3 100644 --- a/src/lib/lib_06440.c +++ b/src/lib/ultra/io/conteeplongwrite.c @@ -1,17 +1,4 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_48650.h" -#include "lib/lib_48b20.h" -#include "lib/lib_4ba90.h" -#include "types.h" +#include GLOBAL_ASM( glabel osEepromLongWrite @@ -87,4 +74,4 @@ glabel osEepromLongWrite /* 6544: 00000000 */ nop /* 6548: 00000000 */ nop /* 654c: 00000000 */ nop -); \ No newline at end of file +); diff --git a/src/lib/ultra/io/conteepprobe.c b/src/lib/ultra/io/conteepprobe.c new file mode 100644 index 000000000..b3b82c504 --- /dev/null +++ b/src/lib/ultra/io/conteepprobe.c @@ -0,0 +1,36 @@ +#include + +GLOBAL_ASM( +glabel osEepromProbe +/* 50130: 27bdffd0 */ addiu $sp,$sp,-48 +/* 50134: afbf0014 */ sw $ra,0x14($sp) +/* 50138: 0c012a18 */ jal __osSiGetAccess +/* 5013c: afa40030 */ sw $a0,0x30($sp) +/* 50140: 8fa40030 */ lw $a0,0x30($sp) +/* 50144: 0c012fb9 */ jal __osEepStatus +/* 50148: 27a50024 */ addiu $a1,$sp,0x24 +/* 5014c: 10400003 */ beqz $v0,.L0005015c +/* 50150: 97ae0024 */ lhu $t6,0x24($sp) +/* 50154: 1000000b */ b .L00050184 +/* 50158: 00001825 */ or $v1,$zero,$zero +.L0005015c: +/* 5015c: 31cfc000 */ andi $t7,$t6,0xc000 +/* 50160: 34018000 */ dli $at,0x8000 +/* 50164: 11e10005 */ beq $t7,$at,.L0005017c +/* 50168: 3401c000 */ dli $at,0xc000 +/* 5016c: 11e10005 */ beq $t7,$at,.L00050184 +/* 50170: 24030002 */ addiu $v1,$zero,0x2 +/* 50174: 10000003 */ b .L00050184 +/* 50178: 00001825 */ or $v1,$zero,$zero +.L0005017c: +/* 5017c: 10000001 */ b .L00050184 +/* 50180: 24030001 */ addiu $v1,$zero,0x1 +.L00050184: +/* 50184: 0c012a29 */ jal __osSiRelAccess +/* 50188: afa3002c */ sw $v1,0x2c($sp) +/* 5018c: 8fbf0014 */ lw $ra,0x14($sp) +/* 50190: 8fa2002c */ lw $v0,0x2c($sp) +/* 50194: 27bd0030 */ addiu $sp,$sp,0x30 +/* 50198: 03e00008 */ jr $ra +/* 5019c: 00000000 */ nop +); diff --git a/src/lib/lib_50130.c b/src/lib/ultra/io/conteepread.c similarity index 66% rename from src/lib/lib_50130.c rename to src/lib/ultra/io/conteepread.c index 862595499..f334c3463 100644 --- a/src/lib/lib_50130.c +++ b/src/lib/ultra/io/conteepread.c @@ -1,53 +1,4 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_48650.h" -#include "lib/lib_4a810.h" -#include "lib/lib_4ba90.h" -#include "lib/lib_50130.h" -#include "types.h" - -GLOBAL_ASM( -glabel osEepromProbe -/* 50130: 27bdffd0 */ addiu $sp,$sp,-48 -/* 50134: afbf0014 */ sw $ra,0x14($sp) -/* 50138: 0c012a18 */ jal __osSiGetAccess -/* 5013c: afa40030 */ sw $a0,0x30($sp) -/* 50140: 8fa40030 */ lw $a0,0x30($sp) -/* 50144: 0c012fb9 */ jal __osEepStatus -/* 50148: 27a50024 */ addiu $a1,$sp,0x24 -/* 5014c: 10400003 */ beqz $v0,.L0005015c -/* 50150: 97ae0024 */ lhu $t6,0x24($sp) -/* 50154: 1000000b */ b .L00050184 -/* 50158: 00001825 */ or $v1,$zero,$zero -.L0005015c: -/* 5015c: 31cfc000 */ andi $t7,$t6,0xc000 -/* 50160: 34018000 */ dli $at,0x8000 -/* 50164: 11e10005 */ beq $t7,$at,.L0005017c -/* 50168: 3401c000 */ dli $at,0xc000 -/* 5016c: 11e10005 */ beq $t7,$at,.L00050184 -/* 50170: 24030002 */ addiu $v1,$zero,0x2 -/* 50174: 10000003 */ b .L00050184 -/* 50178: 00001825 */ or $v1,$zero,$zero -.L0005017c: -/* 5017c: 10000001 */ b .L00050184 -/* 50180: 24030001 */ addiu $v1,$zero,0x1 -.L00050184: -/* 50184: 0c012a29 */ jal __osSiRelAccess -/* 50188: afa3002c */ sw $v1,0x2c($sp) -/* 5018c: 8fbf0014 */ lw $ra,0x14($sp) -/* 50190: 8fa2002c */ lw $v0,0x2c($sp) -/* 50194: 27bd0030 */ addiu $sp,$sp,0x30 -/* 50198: 03e00008 */ jr $ra -/* 5019c: 00000000 */ nop -); +#include GLOBAL_ASM( glabel osEepromRead @@ -108,7 +59,7 @@ glabel osEepromRead /* 50264: 5560fffb */ bnezl $t3,.L00050254 /* 50268: 02402025 */ or $a0,$s2,$zero .L0005026c: -/* 5026c: 0c0140d9 */ jal func00050364 +/* 5026c: 0c0140d9 */ jal __osPackEepReadData /* 50270: 93a40057 */ lbu $a0,0x57($sp) /* 50274: 3c05800a */ lui $a1,%hi(var8009ca80) /* 50278: 24a5ca80 */ addiu $a1,$a1,%lo(var8009ca80) @@ -177,7 +128,7 @@ glabel osEepromRead ); GLOBAL_ASM( -glabel func00050364 +glabel __osPackEepReadData /* 50364: 27bdffe8 */ addiu $sp,$sp,-24 /* 50368: 3c03800a */ lui $v1,%hi(var8009ca80) /* 5036c: 2463ca80 */ addiu $v1,$v1,%lo(var8009ca80) @@ -214,47 +165,3 @@ glabel func00050364 /* 503e8: 03e00008 */ jr $ra /* 503ec: b841ffff */ swr $at,-0x1($v0) ); - -GLOBAL_ASM( -glabel osEepromLongRead -/* 503f0: 27bdffe0 */ addiu $sp,$sp,-32 -/* 503f4: afa7002c */ sw $a3,0x2c($sp) -/* 503f8: 8fae002c */ lw $t6,0x2c($sp) -/* 503fc: afbf0014 */ sw $ra,0x14($sp) -/* 50400: afa40020 */ sw $a0,0x20($sp) -/* 50404: afa50024 */ sw $a1,0x24($sp) -/* 50408: afa60028 */ sw $a2,0x28($sp) -/* 5040c: 19c00016 */ blez $t6,.L00050468 -/* 50410: afa0001c */ sw $zero,0x1c($sp) -.L00050414: -/* 50414: 8fa40020 */ lw $a0,0x20($sp) -/* 50418: 93a50027 */ lbu $a1,0x27($sp) -/* 5041c: 0c014068 */ jal osEepromRead -/* 50420: 8fa60028 */ lw $a2,0x28($sp) -/* 50424: afa2001c */ sw $v0,0x1c($sp) -/* 50428: 8faf001c */ lw $t7,0x1c($sp) -/* 5042c: 11e00003 */ beqz $t7,.L0005043c -/* 50430: 00000000 */ nop -/* 50434: 1000000d */ b .L0005046c -/* 50438: 01e01025 */ or $v0,$t7,$zero -.L0005043c: -/* 5043c: 8fb8002c */ lw $t8,0x2c($sp) -/* 50440: 93a80027 */ lbu $t0,0x27($sp) -/* 50444: 8faa0028 */ lw $t2,0x28($sp) -/* 50448: 2719fff8 */ addiu $t9,$t8,-8 -/* 5044c: afb9002c */ sw $t9,0x2c($sp) -/* 50450: 8fac002c */ lw $t4,0x2c($sp) -/* 50454: 25090001 */ addiu $t1,$t0,0x1 -/* 50458: 254b0008 */ addiu $t3,$t2,0x8 -/* 5045c: a3a90027 */ sb $t1,0x27($sp) -/* 50460: 1d80ffec */ bgtz $t4,.L00050414 -/* 50464: afab0028 */ sw $t3,0x28($sp) -.L00050468: -/* 50468: 8fa2001c */ lw $v0,0x1c($sp) -.L0005046c: -/* 5046c: 8fbf0014 */ lw $ra,0x14($sp) -/* 50470: 27bd0020 */ addiu $sp,$sp,0x20 -/* 50474: 03e00008 */ jr $ra -/* 50478: 00000000 */ nop -/* 5047c: 00000000 */ nop -); diff --git a/src/lib/lib_4ba90.c b/src/lib/ultra/io/conteepwrite.c similarity index 61% rename from src/lib/lib_4ba90.c rename to src/lib/ultra/io/conteepwrite.c index 519b0d5a6..f7190ed24 100644 --- a/src/lib/lib_4ba90.c +++ b/src/lib/ultra/io/conteepwrite.c @@ -1,180 +1,4 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_48650.h" -#include "lib/lib_4a810.h" -#include "lib/lib_4ba90.h" -#include "types.h" - -GLOBAL_ASM( -glabel __osPfsGetStatus -/* 4ba90: 27bdffd0 */ addiu $sp,$sp,-48 -/* 4ba94: afa40030 */ sw $a0,0x30($sp) -/* 4ba98: afbf0014 */ sw $ra,0x14($sp) -/* 4ba9c: afa50034 */ sw $a1,0x34($sp) -/* 4baa0: 240e00fa */ addiu $t6,$zero,0xfa -/* 4baa4: 3c018006 */ lui $at,%hi(var80060984) -/* 4baa8: 00a02025 */ or $a0,$a1,$zero -/* 4baac: a02e0984 */ sb $t6,%lo(var80060984)($at) -/* 4bab0: 0c012ed8 */ jal __osPfsRequestOneChannel -/* 4bab4: 00002825 */ or $a1,$zero,$zero -/* 4bab8: 3c058009 */ lui $a1,%hi(var80090a20) -/* 4babc: 24a50a20 */ addiu $a1,$a1,%lo(var80090a20) -/* 4bac0: 0c012a34 */ jal __osSiRawStartDma -/* 4bac4: 24040001 */ addiu $a0,$zero,0x1 -/* 4bac8: 8fa40030 */ lw $a0,0x30($sp) -/* 4bacc: 27a50028 */ addiu $a1,$sp,0x28 -/* 4bad0: 0c0121bc */ jal osRecvMesg -/* 4bad4: 24060001 */ addiu $a2,$zero,0x1 -/* 4bad8: 3c058009 */ lui $a1,%hi(var80090a20) -/* 4badc: 24a50a20 */ addiu $a1,$a1,%lo(var80090a20) -/* 4bae0: 0c012a34 */ jal __osSiRawStartDma -/* 4bae4: 00002025 */ or $a0,$zero,$zero -/* 4bae8: afa2002c */ sw $v0,0x2c($sp) -/* 4baec: 8fa40030 */ lw $a0,0x30($sp) -/* 4baf0: 27a50028 */ addiu $a1,$sp,0x28 -/* 4baf4: 0c0121bc */ jal osRecvMesg -/* 4baf8: 24060001 */ addiu $a2,$zero,0x1 -/* 4bafc: 8fa40034 */ lw $a0,0x34($sp) -/* 4bb00: 0c012f09 */ jal __osPfsGetOneChannelData -/* 4bb04: 27a50024 */ addiu $a1,$sp,0x24 -/* 4bb08: 93a20026 */ lbu $v0,0x26($sp) -/* 4bb0c: 93b80027 */ lbu $t8,0x27($sp) -/* 4bb10: 8fbf0014 */ lw $ra,0x14($sp) -/* 4bb14: 30430001 */ andi $v1,$v0,0x1 -/* 4bb18: 10600005 */ beqz $v1,.L0004bb30 -/* 4bb1c: 304f0002 */ andi $t7,$v0,0x2 -/* 4bb20: 11e00003 */ beqz $t7,.L0004bb30 -/* 4bb24: 00000000 */ nop -/* 4bb28: 1000000b */ b .L0004bb58 -/* 4bb2c: 24020002 */ addiu $v0,$zero,0x2 -.L0004bb30: -/* 4bb30: 17000003 */ bnez $t8,.L0004bb40 -/* 4bb34: 00000000 */ nop -/* 4bb38: 14600003 */ bnez $v1,.L0004bb48 -/* 4bb3c: 30590004 */ andi $t9,$v0,0x4 -.L0004bb40: -/* 4bb40: 10000005 */ b .L0004bb58 -/* 4bb44: 24020001 */ addiu $v0,$zero,0x1 -.L0004bb48: -/* 4bb48: 13200003 */ beqz $t9,.L0004bb58 -/* 4bb4c: 8fa2002c */ lw $v0,0x2c($sp) -/* 4bb50: 10000001 */ b .L0004bb58 -/* 4bb54: 24020004 */ addiu $v0,$zero,0x4 -.L0004bb58: -/* 4bb58: 03e00008 */ jr $ra -/* 4bb5c: 27bd0030 */ addiu $sp,$sp,0x30 -); - -GLOBAL_ASM( -glabel __osPfsRequestOneChannel -/* 4bb60: 27bdffe8 */ addiu $sp,$sp,-24 -/* 4bb64: 3c068009 */ lui $a2,%hi(var80090a20) -/* 4bb68: 240700fe */ addiu $a3,$zero,0xfe -/* 4bb6c: 3c01800a */ lui $at,%hi(__osContLastCmd) -/* 4bb70: 24c20a20 */ addiu $v0,$a2,%lo(var80090a20) -/* 4bb74: afa5001c */ sw $a1,0x1c($sp) -/* 4bb78: a027c820 */ sb $a3,%lo(__osContLastCmd)($at) -/* 4bb7c: 240f0001 */ addiu $t7,$zero,0x1 -/* 4bb80: ac4f003c */ sw $t7,0x3c($v0) -/* 4bb84: 24180001 */ addiu $t8,$zero,0x1 -/* 4bb88: 24190003 */ addiu $t9,$zero,0x3 -/* 4bb8c: 240800ff */ addiu $t0,$zero,0xff -/* 4bb90: 240900ff */ addiu $t1,$zero,0xff -/* 4bb94: 240a00ff */ addiu $t2,$zero,0xff -/* 4bb98: a3b8000c */ sb $t8,0xc($sp) -/* 4bb9c: a3b9000d */ sb $t9,0xd($sp) -/* 4bba0: a3a5000e */ sb $a1,0xe($sp) -/* 4bba4: a3a8000f */ sb $t0,0xf($sp) -/* 4bba8: a3a90010 */ sb $t1,0x10($sp) -/* 4bbac: a3aa0011 */ sb $t2,0x11($sp) -/* 4bbb0: 18800010 */ blez $a0,.L0004bbf4 -/* 4bbb4: 00001825 */ or $v1,$zero,$zero -/* 4bbb8: 30860003 */ andi $a2,$a0,0x3 -/* 4bbbc: 10c00006 */ beqz $a2,.L0004bbd8 -/* 4bbc0: 00c02825 */ or $a1,$a2,$zero -.L0004bbc4: -/* 4bbc4: 24630001 */ addiu $v1,$v1,0x1 -/* 4bbc8: a0400000 */ sb $zero,0x0($v0) -/* 4bbcc: 14a3fffd */ bne $a1,$v1,.L0004bbc4 -/* 4bbd0: 24420001 */ addiu $v0,$v0,0x1 -/* 4bbd4: 10640007 */ beq $v1,$a0,.L0004bbf4 -.L0004bbd8: -/* 4bbd8: 24630004 */ addiu $v1,$v1,0x4 -/* 4bbdc: a0400001 */ sb $zero,0x1($v0) -/* 4bbe0: a0400002 */ sb $zero,0x2($v0) -/* 4bbe4: a0400003 */ sb $zero,0x3($v0) -/* 4bbe8: 24420004 */ addiu $v0,$v0,0x4 -/* 4bbec: 1464fffa */ bne $v1,$a0,.L0004bbd8 -/* 4bbf0: a040fffc */ sb $zero,-0x4($v0) -.L0004bbf4: -/* 4bbf4: 27ab000c */ addiu $t3,$sp,0xc -/* 4bbf8: 8d610000 */ lw $at,0x0($t3) -/* 4bbfc: 24420006 */ addiu $v0,$v0,0x6 -/* 4bc00: a841fffa */ swl $at,-0x6($v0) -/* 4bc04: b841fffd */ swr $at,-0x3($v0) -/* 4bc08: 91610004 */ lbu $at,0x4($t3) -/* 4bc0c: a041fffe */ sb $at,-0x2($v0) -/* 4bc10: 916d0005 */ lbu $t5,0x5($t3) -/* 4bc14: a0470000 */ sb $a3,0x0($v0) -/* 4bc18: 27bd0018 */ addiu $sp,$sp,0x18 -/* 4bc1c: 03e00008 */ jr $ra -/* 4bc20: a04dffff */ sb $t5,-0x1($v0) -); - -GLOBAL_ASM( -glabel __osPfsGetOneChannelData -/* 4bc24: 3c028009 */ lui $v0,%hi(var80090a20) -/* 4bc28: 27bdffe8 */ addiu $sp,$sp,-24 -/* 4bc2c: 24420a20 */ addiu $v0,$v0,%lo(var80090a20) -/* 4bc30: 1880000b */ blez $a0,.L0004bc60 -/* 4bc34: 00001825 */ or $v1,$zero,$zero -/* 4bc38: 30870003 */ andi $a3,$a0,0x3 -/* 4bc3c: 10e00005 */ beqz $a3,.L0004bc54 -/* 4bc40: 00e03025 */ or $a2,$a3,$zero -.L0004bc44: -/* 4bc44: 24630001 */ addiu $v1,$v1,0x1 -/* 4bc48: 14c3fffe */ bne $a2,$v1,.L0004bc44 -/* 4bc4c: 24420001 */ addiu $v0,$v0,0x1 -/* 4bc50: 10640003 */ beq $v1,$a0,.L0004bc60 -.L0004bc54: -/* 4bc54: 24630004 */ addiu $v1,$v1,0x4 -/* 4bc58: 1464fffe */ bne $v1,$a0,.L0004bc54 -/* 4bc5c: 24420004 */ addiu $v0,$v0,0x4 -.L0004bc60: -/* 4bc60: 88410000 */ lwl $at,0x0($v0) -/* 4bc64: 98410003 */ lwr $at,0x3($v0) -/* 4bc68: 27ae000c */ addiu $t6,$sp,0xc -/* 4bc6c: adc10000 */ sw $at,0x0($t6) -/* 4bc70: 90410004 */ lbu $at,0x4($v0) -/* 4bc74: a1c10004 */ sb $at,0x4($t6) -/* 4bc78: 90580005 */ lbu $t8,0x5($v0) -/* 4bc7c: a1d80005 */ sb $t8,0x5($t6) -/* 4bc80: 93b9000d */ lbu $t9,0xd($sp) -/* 4bc84: 332800c0 */ andi $t0,$t9,0xc0 -/* 4bc88: 00084903 */ sra $t1,$t0,0x4 -/* 4bc8c: 312a00ff */ andi $t2,$t1,0xff -/* 4bc90: 15400008 */ bnez $t2,.L0004bcb4 -/* 4bc94: a0a90003 */ sb $t1,0x3($a1) -/* 4bc98: 93ab0010 */ lbu $t3,0x10($sp) -/* 4bc9c: 93ad000f */ lbu $t5,0xf($sp) -/* 4bca0: 000b6200 */ sll $t4,$t3,0x8 -/* 4bca4: 018d7825 */ or $t7,$t4,$t5 -/* 4bca8: a4af0000 */ sh $t7,0x0($a1) -/* 4bcac: 93ae0011 */ lbu $t6,0x11($sp) -/* 4bcb0: a0ae0002 */ sb $t6,0x2($a1) -.L0004bcb4: -/* 4bcb4: 03e00008 */ jr $ra -/* 4bcb8: 27bd0018 */ addiu $sp,$sp,0x18 -/* 4bcbc: 00000000 */ nop -); +#include GLOBAL_ASM( glabel osEepromWrite @@ -442,4 +266,4 @@ glabel __osEepStatus /* 4c084: 03e00008 */ jr $ra /* 4c088: 00000000 */ nop /* 4c08c: 00000000 */ nop -); \ No newline at end of file +); diff --git a/src/lib/lib_4f350.c b/src/lib/ultra/io/contquery.c similarity index 81% rename from src/lib/lib_4f350.c rename to src/lib/ultra/io/contquery.c index cebb59c3f..aeeab66c6 100644 --- a/src/lib/lib_4f350.c +++ b/src/lib/ultra/io/contquery.c @@ -1,17 +1,4 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_48650.h" -#include "lib/lib_4a810.h" -#include "lib/lib_4a980.h" -#include "types.h" +#include GLOBAL_ASM( glabel osContStartQuery @@ -24,7 +11,7 @@ glabel osContStartQuery /* 4f368: 91cec820 */ lbu $t6,%lo(__osContLastCmd)($t6) /* 4f36c: 11c0000c */ beqz $t6,.L0004f3a0 /* 4f370: 00000000 */ nop -/* 4f374: 0c012af0 */ jal func0004abc0 +/* 4f374: 0c012af0 */ jal __osPackRequestData /* 4f378: 00002025 */ or $a0,$zero,$zero /* 4f37c: 3c05800a */ lui $a1,%hi(__osContPifRam) /* 4f380: 24a5c7e0 */ addiu $a1,$a1,%lo(__osContPifRam) @@ -64,4 +51,4 @@ glabel osContGetQuery /* 4f3f4: 03e00008 */ jr $ra /* 4f3f8: 00000000 */ nop /* 4f3fc: 00000000 */ nop -); \ No newline at end of file +); diff --git a/src/lib/ultra/io/contramread.c b/src/lib/ultra/io/contramread.c new file mode 100644 index 000000000..d63aa83de --- /dev/null +++ b/src/lib/ultra/io/contramread.c @@ -0,0 +1,156 @@ +#include + +GLOBAL_ASM( +glabel __osContRamRead +/* 4b860: 27bdffa0 */ addiu $sp,$sp,-96 +/* 4b864: afbf003c */ sw $ra,0x3c($sp) +/* 4b868: afb60030 */ sw $s6,0x30($sp) +/* 4b86c: afb5002c */ sw $s5,0x2c($sp) +/* 4b870: afb1001c */ sw $s1,0x1c($sp) +/* 4b874: 00a08825 */ or $s1,$a1,$zero +/* 4b878: 0080b025 */ or $s6,$a0,$zero +/* 4b87c: afbe0038 */ sw $s8,0x38($sp) +/* 4b880: afb70034 */ sw $s7,0x34($sp) +/* 4b884: afb40028 */ sw $s4,0x28($sp) +/* 4b888: afb30024 */ sw $s3,0x24($sp) +/* 4b88c: afb20020 */ sw $s2,0x20($sp) +/* 4b890: afb00018 */ sw $s0,0x18($sp) +/* 4b894: afa60068 */ sw $a2,0x68($sp) +/* 4b898: afa7006c */ sw $a3,0x6c($sp) +/* 4b89c: 0c012a18 */ jal __osSiGetAccess +/* 4b8a0: 24150002 */ addiu $s5,$zero,0x2 +/* 4b8a4: 97a5006a */ lhu $a1,0x6a($sp) +/* 4b8a8: 3c1e8006 */ lui $s8,%hi(var80060970) +/* 4b8ac: 3c17800a */ lui $s7,%hi(__osContLastCmd) +/* 4b8b0: 3c148009 */ lui $s4,%hi(var80090a20) +/* 4b8b4: 000570c3 */ sra $t6,$a1,0x3 +/* 4b8b8: 00057940 */ sll $t7,$a1,0x5 +/* 4b8bc: afaf0040 */ sw $t7,0x40($sp) +/* 4b8c0: afae0044 */ sw $t6,0x44($sp) +/* 4b8c4: 26940a20 */ addiu $s4,$s4,%lo(var80090a20) +/* 4b8c8: 26f7c820 */ addiu $s7,$s7,%lo(__osContLastCmd) +/* 4b8cc: 27de0970 */ addiu $s8,$s8,%lo(var80060970) +.L0004b8d0: +/* 4b8d0: 92f80000 */ lbu $t8,0x0($s7) +/* 4b8d4: 24010002 */ addiu $at,$zero,0x2 +/* 4b8d8: 97a5006a */ lhu $a1,0x6a($sp) +/* 4b8dc: 17010003 */ bne $t8,$at,.L0004b8ec +/* 4b8e0: 02808025 */ or $s0,$s4,$zero +/* 4b8e4: 8fd90000 */ lw $t9,0x0($s8) +/* 4b8e8: 12390023 */ beq $s1,$t9,.L0004b978 +.L0004b8ec: +/* 4b8ec: 24080002 */ addiu $t0,$zero,0x2 +/* 4b8f0: a2e80000 */ sb $t0,0x0($s7) +/* 4b8f4: afd10000 */ sw $s1,0x0($s8) +/* 4b8f8: 1a200010 */ blez $s1,.L0004b93c +/* 4b8fc: 00001025 */ or $v0,$zero,$zero +/* 4b900: 32240003 */ andi $a0,$s1,0x3 +/* 4b904: 10800006 */ beqz $a0,.L0004b920 +/* 4b908: 00801825 */ or $v1,$a0,$zero +.L0004b90c: +/* 4b90c: 24420001 */ addiu $v0,$v0,0x1 +/* 4b910: a2000000 */ sb $zero,0x0($s0) +/* 4b914: 1462fffd */ bne $v1,$v0,.L0004b90c +/* 4b918: 26100001 */ addiu $s0,$s0,0x1 +/* 4b91c: 10510007 */ beq $v0,$s1,.L0004b93c +.L0004b920: +/* 4b920: 24420004 */ addiu $v0,$v0,0x4 +/* 4b924: a2000000 */ sb $zero,0x0($s0) +/* 4b928: a2000001 */ sb $zero,0x1($s0) +/* 4b92c: a2000002 */ sb $zero,0x2($s0) +/* 4b930: a2000003 */ sb $zero,0x3($s0) +/* 4b934: 1451fffa */ bne $v0,$s1,.L0004b920 +/* 4b938: 26100004 */ addiu $s0,$s0,0x4 +.L0004b93c: +/* 4b93c: 24090001 */ addiu $t1,$zero,0x1 +/* 4b940: ae89003c */ sw $t1,0x3c($s4) +/* 4b944: 240a00ff */ addiu $t2,$zero,0xff +/* 4b948: 240b0003 */ addiu $t3,$zero,0x3 +/* 4b94c: 240c0021 */ addiu $t4,$zero,0x21 +/* 4b950: 240d0002 */ addiu $t5,$zero,0x2 +/* 4b954: 240e00ff */ addiu $t6,$zero,0xff +/* 4b958: 240f00fe */ addiu $t7,$zero,0xfe +/* 4b95c: a20a0000 */ sb $t2,0x0($s0) +/* 4b960: a20b0001 */ sb $t3,0x1($s0) +/* 4b964: a20c0002 */ sb $t4,0x2($s0) +/* 4b968: a20d0003 */ sb $t5,0x3($s0) +/* 4b96c: a20e0026 */ sb $t6,0x26($s0) +/* 4b970: 10000002 */ b .L0004b97c +/* 4b974: a20f0027 */ sb $t7,0x27($s0) +.L0004b978: +/* 4b978: 02918021 */ addu $s0,$s4,$s1 +.L0004b97c: +/* 4b97c: 8fb80044 */ lw $t8,0x44($sp) +/* 4b980: 30a4ffff */ andi $a0,$a1,0xffff +/* 4b984: 0c014754 */ jal func00051d50 +/* 4b988: a2180004 */ sb $t8,0x4($s0) +/* 4b98c: 8fb90040 */ lw $t9,0x40($sp) +/* 4b990: 24040001 */ addiu $a0,$zero,0x1 +/* 4b994: 02802825 */ or $a1,$s4,$zero +/* 4b998: 00594025 */ or $t0,$v0,$t9 +/* 4b99c: 0c012a34 */ jal __osSiRawStartDma +/* 4b9a0: a2080005 */ sb $t0,0x5($s0) +/* 4b9a4: 02c02025 */ or $a0,$s6,$zero +/* 4b9a8: 00002825 */ or $a1,$zero,$zero +/* 4b9ac: 0c0121bc */ jal osRecvMesg +/* 4b9b0: 24060001 */ addiu $a2,$zero,0x1 +/* 4b9b4: 00002025 */ or $a0,$zero,$zero +/* 4b9b8: 0c012a34 */ jal __osSiRawStartDma +/* 4b9bc: 02802825 */ or $a1,$s4,$zero +/* 4b9c0: 02c02025 */ or $a0,$s6,$zero +/* 4b9c4: 00002825 */ or $a1,$zero,$zero +/* 4b9c8: 0c0121bc */ jal osRecvMesg +/* 4b9cc: 24060001 */ addiu $a2,$zero,0x1 +/* 4b9d0: 92130002 */ lbu $s3,0x2($s0) +/* 4b9d4: 26120006 */ addiu $s2,$s0,0x6 +/* 4b9d8: 326900c0 */ andi $t1,$s3,0xc0 +/* 4b9dc: 00099903 */ sra $s3,$t1,0x4 +/* 4b9e0: 56600014 */ bnezl $s3,.L0004ba34 +/* 4b9e4: 24130001 */ addiu $s3,$zero,0x1 +/* 4b9e8: 0c014788 */ jal func00051e20 +/* 4b9ec: 02402025 */ or $a0,$s2,$zero +/* 4b9f0: 920b0026 */ lbu $t3,0x26($s0) +/* 4b9f4: 02402025 */ or $a0,$s2,$zero +/* 4b9f8: 8fa5006c */ lw $a1,0x6c($sp) +/* 4b9fc: 11620008 */ beq $t3,$v0,.L0004ba20 +/* 4ba00: 00000000 */ nop +/* 4ba04: 02c02025 */ or $a0,$s6,$zero +/* 4ba08: 0c012ea4 */ jal __osPfsGetStatus +/* 4ba0c: 02202825 */ or $a1,$s1,$zero +/* 4ba10: 1440000d */ bnez $v0,.L0004ba48 +/* 4ba14: 00409825 */ or $s3,$v0,$zero +/* 4ba18: 10000006 */ b .L0004ba34 +/* 4ba1c: 24130004 */ addiu $s3,$zero,0x4 +.L0004ba20: +/* 4ba20: 0c012c5c */ jal func0004b170 +/* 4ba24: 24060020 */ addiu $a2,$zero,0x20 +/* 4ba28: 10000003 */ b .L0004ba38 +/* 4ba2c: 24010004 */ addiu $at,$zero,0x4 +/* 4ba30: 24130001 */ addiu $s3,$zero,0x1 +.L0004ba34: +/* 4ba34: 24010004 */ addiu $at,$zero,0x4 +.L0004ba38: +/* 4ba38: 16610003 */ bne $s3,$at,.L0004ba48 +/* 4ba3c: 2aa20000 */ slti $v0,$s5,0x0 +/* 4ba40: 1040ffa3 */ beqz $v0,.L0004b8d0 +/* 4ba44: 26b5ffff */ addiu $s5,$s5,-1 +.L0004ba48: +/* 4ba48: 0c012a29 */ jal __osSiRelAccess +/* 4ba4c: 00000000 */ nop +/* 4ba50: 8fbf003c */ lw $ra,0x3c($sp) +/* 4ba54: 02601025 */ or $v0,$s3,$zero +/* 4ba58: 8fb30024 */ lw $s3,0x24($sp) +/* 4ba5c: 8fb00018 */ lw $s0,0x18($sp) +/* 4ba60: 8fb1001c */ lw $s1,0x1c($sp) +/* 4ba64: 8fb20020 */ lw $s2,0x20($sp) +/* 4ba68: 8fb40028 */ lw $s4,0x28($sp) +/* 4ba6c: 8fb5002c */ lw $s5,0x2c($sp) +/* 4ba70: 8fb60030 */ lw $s6,0x30($sp) +/* 4ba74: 8fb70034 */ lw $s7,0x34($sp) +/* 4ba78: 8fbe0038 */ lw $s8,0x38($sp) +/* 4ba7c: 03e00008 */ jr $ra +/* 4ba80: 27bd0060 */ addiu $sp,$sp,0x60 +/* 4ba84: 00000000 */ nop +/* 4ba88: 00000000 */ nop +/* 4ba8c: 00000000 */ nop +); diff --git a/src/lib/ultra/io/contramwrite.c b/src/lib/ultra/io/contramwrite.c new file mode 100644 index 000000000..ad1df9f4d --- /dev/null +++ b/src/lib/ultra/io/contramwrite.c @@ -0,0 +1,165 @@ +#include + +GLOBAL_ASM( +glabel __osContRamWrite +/* 4b610: 27bdff98 */ addiu $sp,$sp,-104 +/* 4b614: 8faf0078 */ lw $t7,0x78($sp) +/* 4b618: afb5002c */ sw $s5,0x2c($sp) +/* 4b61c: afb40028 */ sw $s4,0x28($sp) +/* 4b620: afb1001c */ sw $s1,0x1c($sp) +/* 4b624: afa60070 */ sw $a2,0x70($sp) +/* 4b628: 30ceffff */ andi $t6,$a2,0xffff +/* 4b62c: 24010001 */ addiu $at,$zero,0x1 +/* 4b630: 01c03025 */ or $a2,$t6,$zero +/* 4b634: 00a08825 */ or $s1,$a1,$zero +/* 4b638: 0080a825 */ or $s5,$a0,$zero +/* 4b63c: afbf003c */ sw $ra,0x3c($sp) +/* 4b640: afbe0038 */ sw $s8,0x38($sp) +/* 4b644: afb70034 */ sw $s7,0x34($sp) +/* 4b648: afb60030 */ sw $s6,0x30($sp) +/* 4b64c: afb30024 */ sw $s3,0x24($sp) +/* 4b650: afb20020 */ sw $s2,0x20($sp) +/* 4b654: afb00018 */ sw $s0,0x18($sp) +/* 4b658: afa70074 */ sw $a3,0x74($sp) +/* 4b65c: 11e10008 */ beq $t7,$at,.L0004b680 +/* 4b660: 24140002 */ addiu $s4,$zero,0x2 +/* 4b664: 29c10007 */ slti $at,$t6,0x7 +/* 4b668: 50200006 */ beqzl $at,.L0004b684 +/* 4b66c: 00c08025 */ or $s0,$a2,$zero +/* 4b670: 51c00004 */ beqzl $t6,.L0004b684 +/* 4b674: 00c08025 */ or $s0,$a2,$zero +/* 4b678: 1000006c */ b .L0004b82c +/* 4b67c: 00001025 */ or $v0,$zero,$zero +.L0004b680: +/* 4b680: 00c08025 */ or $s0,$a2,$zero +.L0004b684: +/* 4b684: 0c012a18 */ jal __osSiGetAccess +/* 4b688: a7a60072 */ sh $a2,0x72($sp) +/* 4b68c: 0010c0c3 */ sra $t8,$s0,0x3 +/* 4b690: 0010c940 */ sll $t9,$s0,0x5 +/* 4b694: 3c178006 */ lui $s7,%hi(var80060970) +/* 4b698: 3c16800a */ lui $s6,%hi(__osContLastCmd) +/* 4b69c: 3c138009 */ lui $s3,%hi(var80090a20) +/* 4b6a0: 26730a20 */ addiu $s3,$s3,%lo(var80090a20) +/* 4b6a4: 26d6c820 */ addiu $s6,$s6,%lo(__osContLastCmd) +/* 4b6a8: 26f70970 */ addiu $s7,$s7,%lo(var80060970) +/* 4b6ac: afb90040 */ sw $t9,0x40($sp) +/* 4b6b0: afb80044 */ sw $t8,0x44($sp) +/* 4b6b4: 241e0003 */ addiu $s8,$zero,0x3 +.L0004b6b8: +/* 4b6b8: 92c80000 */ lbu $t0,0x0($s6) +/* 4b6bc: 24010003 */ addiu $at,$zero,0x3 +/* 4b6c0: 02608025 */ or $s0,$s3,$zero +/* 4b6c4: 15010004 */ bne $t0,$at,.L0004b6d8 +/* 4b6c8: 00001025 */ or $v0,$zero,$zero +/* 4b6cc: 8ee90000 */ lw $t1,0x0($s7) +/* 4b6d0: 52290022 */ beql $s1,$t1,.L0004b75c +/* 4b6d4: 02718021 */ addu $s0,$s3,$s1 +.L0004b6d8: +/* 4b6d8: a2de0000 */ sb $s8,0x0($s6) +/* 4b6dc: 1a200010 */ blez $s1,.L0004b720 +/* 4b6e0: aef10000 */ sw $s1,0x0($s7) +/* 4b6e4: 32240003 */ andi $a0,$s1,0x3 +/* 4b6e8: 10800006 */ beqz $a0,.L0004b704 +/* 4b6ec: 00801825 */ or $v1,$a0,$zero +.L0004b6f0: +/* 4b6f0: 24420001 */ addiu $v0,$v0,0x1 +/* 4b6f4: a2000000 */ sb $zero,0x0($s0) +/* 4b6f8: 1462fffd */ bne $v1,$v0,.L0004b6f0 +/* 4b6fc: 26100001 */ addiu $s0,$s0,0x1 +/* 4b700: 10510007 */ beq $v0,$s1,.L0004b720 +.L0004b704: +/* 4b704: 24420004 */ addiu $v0,$v0,0x4 +/* 4b708: a2000000 */ sb $zero,0x0($s0) +/* 4b70c: a2000001 */ sb $zero,0x1($s0) +/* 4b710: a2000002 */ sb $zero,0x2($s0) +/* 4b714: a2000003 */ sb $zero,0x3($s0) +/* 4b718: 1451fffa */ bne $v0,$s1,.L0004b704 +/* 4b71c: 26100004 */ addiu $s0,$s0,0x4 +.L0004b720: +/* 4b720: 240a0001 */ addiu $t2,$zero,0x1 +/* 4b724: ae6a003c */ sw $t2,0x3c($s3) +/* 4b728: 240b00ff */ addiu $t3,$zero,0xff +/* 4b72c: 240c0023 */ addiu $t4,$zero,0x23 +/* 4b730: 240d0001 */ addiu $t5,$zero,0x1 +/* 4b734: 240e00ff */ addiu $t6,$zero,0xff +/* 4b738: 240f00fe */ addiu $t7,$zero,0xfe +/* 4b73c: a20b0000 */ sb $t3,0x0($s0) +/* 4b740: a20c0001 */ sb $t4,0x1($s0) +/* 4b744: a20d0002 */ sb $t5,0x2($s0) +/* 4b748: a21e0003 */ sb $s8,0x3($s0) +/* 4b74c: a20e0026 */ sb $t6,0x26($s0) +/* 4b750: 10000002 */ b .L0004b75c +/* 4b754: a20f0027 */ sb $t7,0x27($s0) +/* 4b758: 02718021 */ addu $s0,$s3,$s1 +.L0004b75c: +/* 4b75c: 8fb80044 */ lw $t8,0x44($sp) +/* 4b760: a2180004 */ sb $t8,0x4($s0) +/* 4b764: 0c014754 */ jal func00051d50 +/* 4b768: 97a40072 */ lhu $a0,0x72($sp) +/* 4b76c: 8fb90040 */ lw $t9,0x40($sp) +/* 4b770: 26050006 */ addiu $a1,$s0,0x6 +/* 4b774: 24060020 */ addiu $a2,$zero,0x20 +/* 4b778: 00594025 */ or $t0,$v0,$t9 +/* 4b77c: a2080005 */ sb $t0,0x5($s0) +/* 4b780: 0c012c5c */ jal func0004b170 +/* 4b784: 8fa40074 */ lw $a0,0x74($sp) +/* 4b788: 24040001 */ addiu $a0,$zero,0x1 +/* 4b78c: 0c012a34 */ jal __osSiRawStartDma +/* 4b790: 02602825 */ or $a1,$s3,$zero +/* 4b794: 0c014788 */ jal func00051e20 +/* 4b798: 8fa40074 */ lw $a0,0x74($sp) +/* 4b79c: 305200ff */ andi $s2,$v0,0xff +/* 4b7a0: 02a02025 */ or $a0,$s5,$zero +/* 4b7a4: 00002825 */ or $a1,$zero,$zero +/* 4b7a8: 0c0121bc */ jal osRecvMesg +/* 4b7ac: 24060001 */ addiu $a2,$zero,0x1 +/* 4b7b0: 00002025 */ or $a0,$zero,$zero +/* 4b7b4: 0c012a34 */ jal __osSiRawStartDma +/* 4b7b8: 02602825 */ or $a1,$s3,$zero +/* 4b7bc: 02a02025 */ or $a0,$s5,$zero +/* 4b7c0: 00002825 */ or $a1,$zero,$zero +/* 4b7c4: 0c0121bc */ jal osRecvMesg +/* 4b7c8: 24060001 */ addiu $a2,$zero,0x1 +/* 4b7cc: 92030002 */ lbu $v1,0x2($s0) +/* 4b7d0: 306900c0 */ andi $t1,$v1,0xc0 +/* 4b7d4: 00091903 */ sra $v1,$t1,0x4 +/* 4b7d8: 5460000c */ bnezl $v1,.L0004b80c +/* 4b7dc: 24030001 */ addiu $v1,$zero,0x1 +/* 4b7e0: 920b0026 */ lbu $t3,0x26($s0) +/* 4b7e4: 02a02025 */ or $a0,$s5,$zero +/* 4b7e8: 51720009 */ beql $t3,$s2,.L0004b810 +/* 4b7ec: 24010004 */ addiu $at,$zero,0x4 +/* 4b7f0: 0c012ea4 */ jal __osPfsGetStatus +/* 4b7f4: 02202825 */ or $a1,$s1,$zero +/* 4b7f8: 14400009 */ bnez $v0,.L0004b820 +/* 4b7fc: 00401825 */ or $v1,$v0,$zero +/* 4b800: 10000002 */ b .L0004b80c +/* 4b804: 24030004 */ addiu $v1,$zero,0x4 +/* 4b808: 24030001 */ addiu $v1,$zero,0x1 +.L0004b80c: +/* 4b80c: 24010004 */ addiu $at,$zero,0x4 +.L0004b810: +/* 4b810: 14610003 */ bne $v1,$at,.L0004b820 +/* 4b814: 2a820000 */ slti $v0,$s4,0x0 +/* 4b818: 1040ffa7 */ beqz $v0,.L0004b6b8 +/* 4b81c: 2694ffff */ addiu $s4,$s4,-1 +.L0004b820: +/* 4b820: 0c012a29 */ jal __osSiRelAccess +/* 4b824: afa30064 */ sw $v1,0x64($sp) +/* 4b828: 8fa20064 */ lw $v0,0x64($sp) +.L0004b82c: +/* 4b82c: 8fbf003c */ lw $ra,0x3c($sp) +/* 4b830: 8fb00018 */ lw $s0,0x18($sp) +/* 4b834: 8fb1001c */ lw $s1,0x1c($sp) +/* 4b838: 8fb20020 */ lw $s2,0x20($sp) +/* 4b83c: 8fb30024 */ lw $s3,0x24($sp) +/* 4b840: 8fb40028 */ lw $s4,0x28($sp) +/* 4b844: 8fb5002c */ lw $s5,0x2c($sp) +/* 4b848: 8fb60030 */ lw $s6,0x30($sp) +/* 4b84c: 8fb70034 */ lw $s7,0x34($sp) +/* 4b850: 8fbe0038 */ lw $s8,0x38($sp) +/* 4b854: 03e00008 */ jr $ra +/* 4b858: 27bd0068 */ addiu $sp,$sp,0x68 +/* 4b85c: 00000000 */ nop +); diff --git a/src/lib/lib_4f400.c b/src/lib/ultra/io/contreaddata.c similarity index 92% rename from src/lib/lib_4f400.c rename to src/lib/ultra/io/contreaddata.c index c862b8cc3..64e65c7b5 100644 --- a/src/lib/lib_4f400.c +++ b/src/lib/ultra/io/contreaddata.c @@ -1,17 +1,5 @@ -#include #include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" #include "gvars/gvars.h" -#include "lib/lib_48650.h" -#include "lib/lib_4a810.h" -#include "types.h" void __osPackReadData(void); diff --git a/src/lib/lib_4a980.c b/src/lib/ultra/io/controller.c similarity index 94% rename from src/lib/lib_4a980.c rename to src/lib/ultra/io/controller.c index bf5e6460a..edc6216a9 100644 --- a/src/lib/lib_4a980.c +++ b/src/lib/ultra/io/controller.c @@ -1,20 +1,4 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_481e0.h" -#include "lib/lib_48650.h" -#include "lib/lib_48b20.h" -#include "lib/lib_490b0.h" -#include "lib/lib_4a810.h" -#include "lib/lib_4a980.h" -#include "types.h" +#include GLOBAL_ASM( glabel osContInit @@ -75,7 +59,7 @@ glabel osContInit /* 4aa50: 24180004 */ addiu $t8,$zero,0x4 /* 4aa54: 3c01800a */ lui $at,%hi(__osContLastCmd+0x1) /* 4aa58: a038c821 */ sb $t8,%lo(__osContLastCmd+0x1)($at) -/* 4aa5c: 0c012af0 */ jal func0004abc0 +/* 4aa5c: 0c012af0 */ jal __osPackRequestData /* 4aa60: 00002025 */ or $a0,$zero,$zero /* 4aa64: 3c05800a */ lui $a1,%hi(__osContPifRam) /* 4aa68: 24a5c7e0 */ addiu $a1,$a1,%lo(__osContPifRam) @@ -175,7 +159,7 @@ glabel __osContGetInitData ); GLOBAL_ASM( -glabel func0004abc0 +glabel __osPackRequestData /* 4abc0: 27bdfff0 */ addiu $sp,$sp,-16 /* 4abc4: 308400ff */ andi $a0,$a0,0xff /* 4abc8: afa00000 */ sw $zero,0x0($sp) @@ -243,4 +227,4 @@ glabel func0004abc0 /* 4acb4: 00000000 */ nop /* 4acb8: 00000000 */ nop /* 4acbc: 00000000 */ nop -); \ No newline at end of file +); diff --git a/src/lib/lib_49c20.c b/src/lib/ultra/io/devmgr.c similarity index 53% rename from src/lib/lib_49c20.c rename to src/lib/ultra/io/devmgr.c index 458033e3d..aaee6633a 100644 --- a/src/lib/lib_49c20.c +++ b/src/lib/ultra/io/devmgr.c @@ -1,164 +1,4 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_034f0.h" -#include "lib/lib_48650.h" -#include "lib/lib_488e0.h" -#include "lib/lib_491b0.h" -#include "lib/lib_49c20.h" -#include "lib/lib_4b480.h" -#include "lib/lib_51890.h" -#include "lib/lib_51900.h" -#include "lib/lib_51a60.h" -#include "lib/lib_51c10.h" -#include "types.h" - -GLOBAL_ASM( -glabel osEPiRawStartDma -/* 49c20: 27bdffe0 */ addiu $sp,$sp,-32 -/* 49c24: 3c03a460 */ lui $v1,0xa460 -/* 49c28: 34630010 */ ori $v1,$v1,0x10 -/* 49c2c: afbf001c */ sw $ra,0x1c($sp) -/* 49c30: afb00018 */ sw $s0,0x18($sp) -/* 49c34: afa60028 */ sw $a2,0x28($sp) -/* 49c38: 8c620000 */ lw $v0,0x0($v1) -/* 49c3c: 00808025 */ or $s0,$a0,$zero -/* 49c40: 304e0003 */ andi $t6,$v0,0x3 -/* 49c44: 51c00006 */ beqzl $t6,.L00049c60 -/* 49c48: 92020009 */ lbu $v0,0x9($s0) -/* 49c4c: 8c620000 */ lw $v0,0x0($v1) -.L00049c50: -/* 49c50: 304f0003 */ andi $t7,$v0,0x3 -/* 49c54: 55e0fffe */ bnezl $t7,.L00049c50 -/* 49c58: 8c620000 */ lw $v0,0x0($v1) -/* 49c5c: 92020009 */ lbu $v0,0x9($s0) -.L00049c60: -/* 49c60: 3c048006 */ lui $a0,%hi(var8005cf20) -/* 49c64: 92190004 */ lbu $t9,0x4($s0) -/* 49c68: 0002c080 */ sll $t8,$v0,0x2 -/* 49c6c: 00982021 */ addu $a0,$a0,$t8 -/* 49c70: 8c84cf20 */ lw $a0,%lo(var8005cf20)($a0) -/* 49c74: 90880004 */ lbu $t0,0x4($a0) -/* 49c78: 5328003d */ beql $t9,$t0,.L00049d70 -/* 49c7c: 00e02025 */ or $a0,$a3,$zero -/* 49c80: 14400019 */ bnez $v0,.L00049ce8 -/* 49c84: 00801825 */ or $v1,$a0,$zero -/* 49c88: 92020005 */ lbu $v0,0x5($s0) -/* 49c8c: 90890005 */ lbu $t1,0x5($a0) -/* 49c90: 3c0aa460 */ lui $t2,0xa460 -/* 49c94: 3c0ca460 */ lui $t4,0xa460 -/* 49c98: 10490002 */ beq $v0,$t1,.L00049ca4 -/* 49c9c: 3c0ea460 */ lui $t6,0xa460 -/* 49ca0: ad420014 */ sw $v0,0x14($t2) -.L00049ca4: -/* 49ca4: 92020006 */ lbu $v0,0x6($s0) -/* 49ca8: 906b0006 */ lbu $t3,0x6($v1) -/* 49cac: 3c18a460 */ lui $t8,0xa460 -/* 49cb0: 504b0003 */ beql $v0,$t3,.L00049cc0 -/* 49cb4: 92020007 */ lbu $v0,0x7($s0) -/* 49cb8: ad82001c */ sw $v0,0x1c($t4) -/* 49cbc: 92020007 */ lbu $v0,0x7($s0) -.L00049cc0: -/* 49cc0: 906d0007 */ lbu $t5,0x7($v1) -/* 49cc4: 504d0003 */ beql $v0,$t5,.L00049cd4 -/* 49cc8: 92020008 */ lbu $v0,0x8($s0) -/* 49ccc: adc20020 */ sw $v0,0x20($t6) -/* 49cd0: 92020008 */ lbu $v0,0x8($s0) -.L00049cd4: -/* 49cd4: 906f0008 */ lbu $t7,0x8($v1) -/* 49cd8: 504f001b */ beql $v0,$t7,.L00049d48 -/* 49cdc: 920f0004 */ lbu $t7,0x4($s0) -/* 49ce0: 10000018 */ b .L00049d44 -/* 49ce4: af020018 */ sw $v0,0x18($t8) -.L00049ce8: -/* 49ce8: 92020005 */ lbu $v0,0x5($s0) -/* 49cec: 90790005 */ lbu $t9,0x5($v1) -/* 49cf0: 3c08a460 */ lui $t0,0xa460 -/* 49cf4: 3c0aa460 */ lui $t2,0xa460 -/* 49cf8: 10590002 */ beq $v0,$t9,.L00049d04 -/* 49cfc: 3c0ca460 */ lui $t4,0xa460 -/* 49d00: ad020024 */ sw $v0,0x24($t0) -.L00049d04: -/* 49d04: 92020006 */ lbu $v0,0x6($s0) -/* 49d08: 90690006 */ lbu $t1,0x6($v1) -/* 49d0c: 3c0ea460 */ lui $t6,0xa460 -/* 49d10: 50490003 */ beql $v0,$t1,.L00049d20 -/* 49d14: 92020007 */ lbu $v0,0x7($s0) -/* 49d18: ad42002c */ sw $v0,0x2c($t2) -/* 49d1c: 92020007 */ lbu $v0,0x7($s0) -.L00049d20: -/* 49d20: 906b0007 */ lbu $t3,0x7($v1) -/* 49d24: 504b0003 */ beql $v0,$t3,.L00049d34 -/* 49d28: 92020008 */ lbu $v0,0x8($s0) -/* 49d2c: ad820030 */ sw $v0,0x30($t4) -/* 49d30: 92020008 */ lbu $v0,0x8($s0) -.L00049d34: -/* 49d34: 906d0008 */ lbu $t5,0x8($v1) -/* 49d38: 504d0003 */ beql $v0,$t5,.L00049d48 -/* 49d3c: 920f0004 */ lbu $t7,0x4($s0) -/* 49d40: adc20028 */ sw $v0,0x28($t6) -.L00049d44: -/* 49d44: 920f0004 */ lbu $t7,0x4($s0) -.L00049d48: -/* 49d48: a06f0004 */ sb $t7,0x4($v1) -/* 49d4c: 92180005 */ lbu $t8,0x5($s0) -/* 49d50: a0780005 */ sb $t8,0x5($v1) -/* 49d54: 92190006 */ lbu $t9,0x6($s0) -/* 49d58: a0790006 */ sb $t9,0x6($v1) -/* 49d5c: 92080007 */ lbu $t0,0x7($s0) -/* 49d60: a0680007 */ sb $t0,0x7($v1) -/* 49d64: 92090008 */ lbu $t1,0x8($s0) -/* 49d68: a0690008 */ sb $t1,0x8($v1) -/* 49d6c: 00e02025 */ or $a0,$a3,$zero -.L00049d70: -/* 49d70: 0c012d20 */ jal osVirtualToPhysical -/* 49d74: afa50024 */ sw $a1,0x24($sp) -/* 49d78: 8fa50024 */ lw $a1,0x24($sp) -/* 49d7c: 3c0aa460 */ lui $t2,0xa460 -/* 49d80: ad420000 */ sw $v0,0x0($t2) -/* 49d84: 8fac0028 */ lw $t4,0x28($sp) -/* 49d88: 8e0b000c */ lw $t3,0xc($s0) -/* 49d8c: 3c011fff */ lui $at,0x1fff -/* 49d90: 3421ffff */ ori $at,$at,0xffff -/* 49d94: 016c6825 */ or $t5,$t3,$t4 -/* 49d98: 01a17024 */ and $t6,$t5,$at -/* 49d9c: 3c0fa460 */ lui $t7,0xa460 -/* 49da0: 10a00006 */ beqz $a1,.L00049dbc -/* 49da4: adee0004 */ sw $t6,0x4($t7) -/* 49da8: 24010001 */ addiu $at,$zero,0x1 -/* 49dac: 10a10008 */ beq $a1,$at,.L00049dd0 -/* 49db0: 8fa90030 */ lw $t1,0x30($sp) -/* 49db4: 1000000d */ b .L00049dec -/* 49db8: 2402ffff */ addiu $v0,$zero,-1 -.L00049dbc: -/* 49dbc: 8fb80030 */ lw $t8,0x30($sp) -/* 49dc0: 3c08a460 */ lui $t0,0xa460 -/* 49dc4: 2719ffff */ addiu $t9,$t8,-1 -/* 49dc8: 10000007 */ b .L00049de8 -/* 49dcc: ad19000c */ sw $t9,0xc($t0) -.L00049dd0: -/* 49dd0: 252affff */ addiu $t2,$t1,-1 -/* 49dd4: 3c0ba460 */ lui $t3,0xa460 -/* 49dd8: 10000003 */ b .L00049de8 -/* 49ddc: ad6a0008 */ sw $t2,0x8($t3) -/* 49de0: 10000002 */ b .L00049dec -/* 49de4: 2402ffff */ addiu $v0,$zero,-1 -.L00049de8: -/* 49de8: 00001025 */ or $v0,$zero,$zero -.L00049dec: -/* 49dec: 8fbf001c */ lw $ra,0x1c($sp) -/* 49df0: 8fb00018 */ lw $s0,0x18($sp) -/* 49df4: 27bd0020 */ addiu $sp,$sp,0x20 -/* 49df8: 03e00008 */ jr $ra -/* 49dfc: 00000000 */ nop -); +#include GLOBAL_ASM( glabel __osDevMgrMain @@ -436,105 +276,3 @@ glabel __osDevMgrMain /* 4a208: 03e00008 */ jr $ra /* 4a20c: 27bd0078 */ addiu $sp,$sp,0x78 ); - -GLOBAL_ASM( -glabel __osDequeueThread -/* 4a210: 00803025 */ or $a2,$a0,$zero -/* 4a214: 8cc70000 */ lw $a3,0x0($a2) -/* 4a218: 27bdfff8 */ addiu $sp,$sp,-8 -/* 4a21c: 10e0000a */ beqz $a3,.L0004a248 -/* 4a220: 00000000 */ nop -.L0004a224: -/* 4a224: 14e50004 */ bne $a3,$a1,.L0004a238 -/* 4a228: 00000000 */ nop -/* 4a22c: 8cae0000 */ lw $t6,0x0($a1) -/* 4a230: 10000005 */ b .L0004a248 -/* 4a234: acce0000 */ sw $t6,0x0($a2) -.L0004a238: -/* 4a238: 00e03025 */ or $a2,$a3,$zero -/* 4a23c: 8cc70000 */ lw $a3,0x0($a2) -/* 4a240: 14e0fff8 */ bnez $a3,.L0004a224 -/* 4a244: 00000000 */ nop -.L0004a248: -/* 4a248: 03e00008 */ jr $ra -/* 4a24c: 27bd0008 */ addiu $sp,$sp,0x8 -); - -GLOBAL_ASM( -glabel __osDestroyThread -/* 4a250: 27bdffc8 */ addiu $sp,$sp,-56 -/* 4a254: afbf0024 */ sw $ra,0x24($sp) -/* 4a258: afa40038 */ sw $a0,0x38($sp) -/* 4a25c: afb20020 */ sw $s2,0x20($sp) -/* 4a260: afb1001c */ sw $s1,0x1c($sp) -/* 4a264: 0c01256c */ jal __osDisableInt -/* 4a268: afb00018 */ sw $s0,0x18($sp) -/* 4a26c: 8fae0038 */ lw $t6,0x38($sp) -/* 4a270: 00408025 */ or $s0,$v0,$zero -/* 4a274: 15c00005 */ bnez $t6,.L0004a28c -/* 4a278: 00000000 */ nop -/* 4a27c: 3c0f8006 */ lui $t7,%hi(__osRunningThread) -/* 4a280: 8def0940 */ lw $t7,%lo(__osRunningThread)($t7) -/* 4a284: 10000009 */ b .L0004a2ac -/* 4a288: afaf0038 */ sw $t7,0x38($sp) -.L0004a28c: -/* 4a28c: 8fb80038 */ lw $t8,0x38($sp) -/* 4a290: 24010001 */ addiu $at,$zero,0x1 -/* 4a294: 97190010 */ lhu $t9,0x10($t8) -/* 4a298: 13210004 */ beq $t9,$at,.L0004a2ac -/* 4a29c: 00000000 */ nop -/* 4a2a0: 8f040008 */ lw $a0,0x8($t8) -/* 4a2a4: 0c012884 */ jal __osDequeueThread -/* 4a2a8: 03002825 */ or $a1,$t8,$zero -.L0004a2ac: -/* 4a2ac: 3c088006 */ lui $t0,%hi(var8006093c) -/* 4a2b0: 8d08093c */ lw $t0,%lo(var8006093c)($t0) -/* 4a2b4: 8fa90038 */ lw $t1,0x38($sp) -/* 4a2b8: 15090005 */ bne $t0,$t1,.L0004a2d0 -/* 4a2bc: 00000000 */ nop -/* 4a2c0: 8d0a000c */ lw $t2,0xc($t0) -/* 4a2c4: 3c018006 */ lui $at,%hi(var8006093c) -/* 4a2c8: 10000013 */ b .L0004a318 -/* 4a2cc: ac2a093c */ sw $t2,%lo(var8006093c)($at) -.L0004a2d0: -/* 4a2d0: 3c118006 */ lui $s1,%hi(var8006093c) -/* 4a2d4: 8e31093c */ lw $s1,%lo(var8006093c)($s1) -/* 4a2d8: 2401ffff */ addiu $at,$zero,-1 -/* 4a2dc: 8e2b0004 */ lw $t3,0x4($s1) -/* 4a2e0: 1161000d */ beq $t3,$at,.L0004a318 -/* 4a2e4: 00000000 */ nop -.L0004a2e8: -/* 4a2e8: 8e32000c */ lw $s2,0xc($s1) -/* 4a2ec: 8fac0038 */ lw $t4,0x38($sp) -/* 4a2f0: 164c0004 */ bne $s2,$t4,.L0004a304 -/* 4a2f4: 00000000 */ nop -/* 4a2f8: 8d8d000c */ lw $t5,0xc($t4) -/* 4a2fc: 10000006 */ b .L0004a318 -/* 4a300: ae2d000c */ sw $t5,0xc($s1) -.L0004a304: -/* 4a304: 02408825 */ or $s1,$s2,$zero -/* 4a308: 8e2e0004 */ lw $t6,0x4($s1) -/* 4a30c: 2401ffff */ addiu $at,$zero,-1 -/* 4a310: 15c1fff5 */ bne $t6,$at,.L0004a2e8 -/* 4a314: 00000000 */ nop -.L0004a318: -/* 4a318: 3c198006 */ lui $t9,%hi(__osRunningThread) -/* 4a31c: 8f390940 */ lw $t9,%lo(__osRunningThread)($t9) -/* 4a320: 8faf0038 */ lw $t7,0x38($sp) -/* 4a324: 15f90003 */ bne $t7,$t9,.L0004a334 -/* 4a328: 00000000 */ nop -/* 4a32c: 0c000f44 */ jal __osDispatchThread -/* 4a330: 00000000 */ nop -.L0004a334: -/* 4a334: 0c012588 */ jal __osRestoreInt -/* 4a338: 02002025 */ or $a0,$s0,$zero -/* 4a33c: 8fbf0024 */ lw $ra,0x24($sp) -/* 4a340: 8fb00018 */ lw $s0,0x18($sp) -/* 4a344: 8fb1001c */ lw $s1,0x1c($sp) -/* 4a348: 8fb20020 */ lw $s2,0x20($sp) -/* 4a34c: 03e00008 */ jr $ra -/* 4a350: 27bd0038 */ addiu $sp,$sp,0x38 -/* 4a354: 00000000 */ nop -/* 4a358: 00000000 */ nop -/* 4a35c: 00000000 */ nop -); diff --git a/src/lib/ultra/io/epirawdma.c b/src/lib/ultra/io/epirawdma.c new file mode 100644 index 000000000..1942424a9 --- /dev/null +++ b/src/lib/ultra/io/epirawdma.c @@ -0,0 +1,141 @@ +#include + +GLOBAL_ASM( +glabel osEPiRawStartDma +/* 49c20: 27bdffe0 */ addiu $sp,$sp,-32 +/* 49c24: 3c03a460 */ lui $v1,0xa460 +/* 49c28: 34630010 */ ori $v1,$v1,0x10 +/* 49c2c: afbf001c */ sw $ra,0x1c($sp) +/* 49c30: afb00018 */ sw $s0,0x18($sp) +/* 49c34: afa60028 */ sw $a2,0x28($sp) +/* 49c38: 8c620000 */ lw $v0,0x0($v1) +/* 49c3c: 00808025 */ or $s0,$a0,$zero +/* 49c40: 304e0003 */ andi $t6,$v0,0x3 +/* 49c44: 51c00006 */ beqzl $t6,.L00049c60 +/* 49c48: 92020009 */ lbu $v0,0x9($s0) +/* 49c4c: 8c620000 */ lw $v0,0x0($v1) +.L00049c50: +/* 49c50: 304f0003 */ andi $t7,$v0,0x3 +/* 49c54: 55e0fffe */ bnezl $t7,.L00049c50 +/* 49c58: 8c620000 */ lw $v0,0x0($v1) +/* 49c5c: 92020009 */ lbu $v0,0x9($s0) +.L00049c60: +/* 49c60: 3c048006 */ lui $a0,%hi(var8005cf20) +/* 49c64: 92190004 */ lbu $t9,0x4($s0) +/* 49c68: 0002c080 */ sll $t8,$v0,0x2 +/* 49c6c: 00982021 */ addu $a0,$a0,$t8 +/* 49c70: 8c84cf20 */ lw $a0,%lo(var8005cf20)($a0) +/* 49c74: 90880004 */ lbu $t0,0x4($a0) +/* 49c78: 5328003d */ beql $t9,$t0,.L00049d70 +/* 49c7c: 00e02025 */ or $a0,$a3,$zero +/* 49c80: 14400019 */ bnez $v0,.L00049ce8 +/* 49c84: 00801825 */ or $v1,$a0,$zero +/* 49c88: 92020005 */ lbu $v0,0x5($s0) +/* 49c8c: 90890005 */ lbu $t1,0x5($a0) +/* 49c90: 3c0aa460 */ lui $t2,0xa460 +/* 49c94: 3c0ca460 */ lui $t4,0xa460 +/* 49c98: 10490002 */ beq $v0,$t1,.L00049ca4 +/* 49c9c: 3c0ea460 */ lui $t6,0xa460 +/* 49ca0: ad420014 */ sw $v0,0x14($t2) +.L00049ca4: +/* 49ca4: 92020006 */ lbu $v0,0x6($s0) +/* 49ca8: 906b0006 */ lbu $t3,0x6($v1) +/* 49cac: 3c18a460 */ lui $t8,0xa460 +/* 49cb0: 504b0003 */ beql $v0,$t3,.L00049cc0 +/* 49cb4: 92020007 */ lbu $v0,0x7($s0) +/* 49cb8: ad82001c */ sw $v0,0x1c($t4) +/* 49cbc: 92020007 */ lbu $v0,0x7($s0) +.L00049cc0: +/* 49cc0: 906d0007 */ lbu $t5,0x7($v1) +/* 49cc4: 504d0003 */ beql $v0,$t5,.L00049cd4 +/* 49cc8: 92020008 */ lbu $v0,0x8($s0) +/* 49ccc: adc20020 */ sw $v0,0x20($t6) +/* 49cd0: 92020008 */ lbu $v0,0x8($s0) +.L00049cd4: +/* 49cd4: 906f0008 */ lbu $t7,0x8($v1) +/* 49cd8: 504f001b */ beql $v0,$t7,.L00049d48 +/* 49cdc: 920f0004 */ lbu $t7,0x4($s0) +/* 49ce0: 10000018 */ b .L00049d44 +/* 49ce4: af020018 */ sw $v0,0x18($t8) +.L00049ce8: +/* 49ce8: 92020005 */ lbu $v0,0x5($s0) +/* 49cec: 90790005 */ lbu $t9,0x5($v1) +/* 49cf0: 3c08a460 */ lui $t0,0xa460 +/* 49cf4: 3c0aa460 */ lui $t2,0xa460 +/* 49cf8: 10590002 */ beq $v0,$t9,.L00049d04 +/* 49cfc: 3c0ca460 */ lui $t4,0xa460 +/* 49d00: ad020024 */ sw $v0,0x24($t0) +.L00049d04: +/* 49d04: 92020006 */ lbu $v0,0x6($s0) +/* 49d08: 90690006 */ lbu $t1,0x6($v1) +/* 49d0c: 3c0ea460 */ lui $t6,0xa460 +/* 49d10: 50490003 */ beql $v0,$t1,.L00049d20 +/* 49d14: 92020007 */ lbu $v0,0x7($s0) +/* 49d18: ad42002c */ sw $v0,0x2c($t2) +/* 49d1c: 92020007 */ lbu $v0,0x7($s0) +.L00049d20: +/* 49d20: 906b0007 */ lbu $t3,0x7($v1) +/* 49d24: 504b0003 */ beql $v0,$t3,.L00049d34 +/* 49d28: 92020008 */ lbu $v0,0x8($s0) +/* 49d2c: ad820030 */ sw $v0,0x30($t4) +/* 49d30: 92020008 */ lbu $v0,0x8($s0) +.L00049d34: +/* 49d34: 906d0008 */ lbu $t5,0x8($v1) +/* 49d38: 504d0003 */ beql $v0,$t5,.L00049d48 +/* 49d3c: 920f0004 */ lbu $t7,0x4($s0) +/* 49d40: adc20028 */ sw $v0,0x28($t6) +.L00049d44: +/* 49d44: 920f0004 */ lbu $t7,0x4($s0) +.L00049d48: +/* 49d48: a06f0004 */ sb $t7,0x4($v1) +/* 49d4c: 92180005 */ lbu $t8,0x5($s0) +/* 49d50: a0780005 */ sb $t8,0x5($v1) +/* 49d54: 92190006 */ lbu $t9,0x6($s0) +/* 49d58: a0790006 */ sb $t9,0x6($v1) +/* 49d5c: 92080007 */ lbu $t0,0x7($s0) +/* 49d60: a0680007 */ sb $t0,0x7($v1) +/* 49d64: 92090008 */ lbu $t1,0x8($s0) +/* 49d68: a0690008 */ sb $t1,0x8($v1) +/* 49d6c: 00e02025 */ or $a0,$a3,$zero +.L00049d70: +/* 49d70: 0c012d20 */ jal osVirtualToPhysical +/* 49d74: afa50024 */ sw $a1,0x24($sp) +/* 49d78: 8fa50024 */ lw $a1,0x24($sp) +/* 49d7c: 3c0aa460 */ lui $t2,0xa460 +/* 49d80: ad420000 */ sw $v0,0x0($t2) +/* 49d84: 8fac0028 */ lw $t4,0x28($sp) +/* 49d88: 8e0b000c */ lw $t3,0xc($s0) +/* 49d8c: 3c011fff */ lui $at,0x1fff +/* 49d90: 3421ffff */ ori $at,$at,0xffff +/* 49d94: 016c6825 */ or $t5,$t3,$t4 +/* 49d98: 01a17024 */ and $t6,$t5,$at +/* 49d9c: 3c0fa460 */ lui $t7,0xa460 +/* 49da0: 10a00006 */ beqz $a1,.L00049dbc +/* 49da4: adee0004 */ sw $t6,0x4($t7) +/* 49da8: 24010001 */ addiu $at,$zero,0x1 +/* 49dac: 10a10008 */ beq $a1,$at,.L00049dd0 +/* 49db0: 8fa90030 */ lw $t1,0x30($sp) +/* 49db4: 1000000d */ b .L00049dec +/* 49db8: 2402ffff */ addiu $v0,$zero,-1 +.L00049dbc: +/* 49dbc: 8fb80030 */ lw $t8,0x30($sp) +/* 49dc0: 3c08a460 */ lui $t0,0xa460 +/* 49dc4: 2719ffff */ addiu $t9,$t8,-1 +/* 49dc8: 10000007 */ b .L00049de8 +/* 49dcc: ad19000c */ sw $t9,0xc($t0) +.L00049dd0: +/* 49dd0: 252affff */ addiu $t2,$t1,-1 +/* 49dd4: 3c0ba460 */ lui $t3,0xa460 +/* 49dd8: 10000003 */ b .L00049de8 +/* 49ddc: ad6a0008 */ sw $t2,0x8($t3) +/* 49de0: 10000002 */ b .L00049dec +/* 49de4: 2402ffff */ addiu $v0,$zero,-1 +.L00049de8: +/* 49de8: 00001025 */ or $v0,$zero,$zero +.L00049dec: +/* 49dec: 8fbf001c */ lw $ra,0x1c($sp) +/* 49df0: 8fb00018 */ lw $s0,0x18($sp) +/* 49df4: 27bd0020 */ addiu $sp,$sp,0x20 +/* 49df8: 03e00008 */ jr $ra +/* 49dfc: 00000000 */ nop +); diff --git a/src/lib/lib_51a60.c b/src/lib/ultra/io/epirawread.c similarity index 75% rename from src/lib/lib_51a60.c rename to src/lib/ultra/io/epirawread.c index f2938dfe1..ebda54b6a 100644 --- a/src/lib/lib_51a60.c +++ b/src/lib/ultra/io/epirawread.c @@ -1,15 +1,4 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_491b0.h" -#include "types.h" +#include GLOBAL_ASM( glabel osEPiRawReadIo @@ -114,27 +103,3 @@ glabel osEPiRawReadIo /* 51bb8: accd0000 */ sw $t5,0x0($a2) /* 51bbc: 00000000 */ nop ); - -GLOBAL_ASM( -glabel __osSetGlobalIntMask -/* 51bc0: 27bdffd8 */ addiu $sp,$sp,-40 -/* 51bc4: afbf001c */ sw $ra,0x1c($sp) -/* 51bc8: afa40028 */ sw $a0,0x28($sp) -/* 51bcc: 0c01256c */ jal __osDisableInt -/* 51bd0: afb00018 */ sw $s0,0x18($sp) -/* 51bd4: 3c0e8006 */ lui $t6,%hi(var8005cf70) -/* 51bd8: 8dcecf70 */ lw $t6,%lo(var8005cf70)($t6) -/* 51bdc: 8faf0028 */ lw $t7,0x28($sp) -/* 51be0: 00408025 */ or $s0,$v0,$zero -/* 51be4: 3c018006 */ lui $at,%hi(var8005cf70) -/* 51be8: 01cfc025 */ or $t8,$t6,$t7 -/* 51bec: ac38cf70 */ sw $t8,%lo(var8005cf70)($at) -/* 51bf0: 0c012588 */ jal __osRestoreInt -/* 51bf4: 02002025 */ or $a0,$s0,$zero -/* 51bf8: 8fbf001c */ lw $ra,0x1c($sp) -/* 51bfc: 8fb00018 */ lw $s0,0x18($sp) -/* 51c00: 27bd0028 */ addiu $sp,$sp,0x28 -/* 51c04: 03e00008 */ jr $ra -/* 51c08: 00000000 */ nop -/* 51c0c: 00000000 */ nop -); \ No newline at end of file diff --git a/src/lib/lib_51900.c b/src/lib/ultra/io/epirawwrite.c similarity index 92% rename from src/lib/lib_51900.c rename to src/lib/ultra/io/epirawwrite.c index 15c49680b..d91403a5b 100644 --- a/src/lib/lib_51900.c +++ b/src/lib/ultra/io/epirawwrite.c @@ -1,14 +1,4 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "types.h" +#include GLOBAL_ASM( glabel osEPiRawWriteIo @@ -112,4 +102,4 @@ glabel osEPiRawWriteIo /* 51a54: ad860000 */ sw $a2,0x0($t4) /* 51a58: 00000000 */ nop /* 51a5c: 00000000 */ nop -); \ No newline at end of file +); diff --git a/src/lib/ultra/io/pfsgetstatus.c b/src/lib/ultra/io/pfsgetstatus.c new file mode 100644 index 000000000..f7b4b5890 --- /dev/null +++ b/src/lib/ultra/io/pfsgetstatus.c @@ -0,0 +1,164 @@ +#include + +GLOBAL_ASM( +glabel __osPfsGetStatus +/* 4ba90: 27bdffd0 */ addiu $sp,$sp,-48 +/* 4ba94: afa40030 */ sw $a0,0x30($sp) +/* 4ba98: afbf0014 */ sw $ra,0x14($sp) +/* 4ba9c: afa50034 */ sw $a1,0x34($sp) +/* 4baa0: 240e00fa */ addiu $t6,$zero,0xfa +/* 4baa4: 3c018006 */ lui $at,%hi(var80060984) +/* 4baa8: 00a02025 */ or $a0,$a1,$zero +/* 4baac: a02e0984 */ sb $t6,%lo(var80060984)($at) +/* 4bab0: 0c012ed8 */ jal __osPfsRequestOneChannel +/* 4bab4: 00002825 */ or $a1,$zero,$zero +/* 4bab8: 3c058009 */ lui $a1,%hi(var80090a20) +/* 4babc: 24a50a20 */ addiu $a1,$a1,%lo(var80090a20) +/* 4bac0: 0c012a34 */ jal __osSiRawStartDma +/* 4bac4: 24040001 */ addiu $a0,$zero,0x1 +/* 4bac8: 8fa40030 */ lw $a0,0x30($sp) +/* 4bacc: 27a50028 */ addiu $a1,$sp,0x28 +/* 4bad0: 0c0121bc */ jal osRecvMesg +/* 4bad4: 24060001 */ addiu $a2,$zero,0x1 +/* 4bad8: 3c058009 */ lui $a1,%hi(var80090a20) +/* 4badc: 24a50a20 */ addiu $a1,$a1,%lo(var80090a20) +/* 4bae0: 0c012a34 */ jal __osSiRawStartDma +/* 4bae4: 00002025 */ or $a0,$zero,$zero +/* 4bae8: afa2002c */ sw $v0,0x2c($sp) +/* 4baec: 8fa40030 */ lw $a0,0x30($sp) +/* 4baf0: 27a50028 */ addiu $a1,$sp,0x28 +/* 4baf4: 0c0121bc */ jal osRecvMesg +/* 4baf8: 24060001 */ addiu $a2,$zero,0x1 +/* 4bafc: 8fa40034 */ lw $a0,0x34($sp) +/* 4bb00: 0c012f09 */ jal __osPfsGetOneChannelData +/* 4bb04: 27a50024 */ addiu $a1,$sp,0x24 +/* 4bb08: 93a20026 */ lbu $v0,0x26($sp) +/* 4bb0c: 93b80027 */ lbu $t8,0x27($sp) +/* 4bb10: 8fbf0014 */ lw $ra,0x14($sp) +/* 4bb14: 30430001 */ andi $v1,$v0,0x1 +/* 4bb18: 10600005 */ beqz $v1,.L0004bb30 +/* 4bb1c: 304f0002 */ andi $t7,$v0,0x2 +/* 4bb20: 11e00003 */ beqz $t7,.L0004bb30 +/* 4bb24: 00000000 */ nop +/* 4bb28: 1000000b */ b .L0004bb58 +/* 4bb2c: 24020002 */ addiu $v0,$zero,0x2 +.L0004bb30: +/* 4bb30: 17000003 */ bnez $t8,.L0004bb40 +/* 4bb34: 00000000 */ nop +/* 4bb38: 14600003 */ bnez $v1,.L0004bb48 +/* 4bb3c: 30590004 */ andi $t9,$v0,0x4 +.L0004bb40: +/* 4bb40: 10000005 */ b .L0004bb58 +/* 4bb44: 24020001 */ addiu $v0,$zero,0x1 +.L0004bb48: +/* 4bb48: 13200003 */ beqz $t9,.L0004bb58 +/* 4bb4c: 8fa2002c */ lw $v0,0x2c($sp) +/* 4bb50: 10000001 */ b .L0004bb58 +/* 4bb54: 24020004 */ addiu $v0,$zero,0x4 +.L0004bb58: +/* 4bb58: 03e00008 */ jr $ra +/* 4bb5c: 27bd0030 */ addiu $sp,$sp,0x30 +); + +GLOBAL_ASM( +glabel __osPfsRequestOneChannel +/* 4bb60: 27bdffe8 */ addiu $sp,$sp,-24 +/* 4bb64: 3c068009 */ lui $a2,%hi(var80090a20) +/* 4bb68: 240700fe */ addiu $a3,$zero,0xfe +/* 4bb6c: 3c01800a */ lui $at,%hi(__osContLastCmd) +/* 4bb70: 24c20a20 */ addiu $v0,$a2,%lo(var80090a20) +/* 4bb74: afa5001c */ sw $a1,0x1c($sp) +/* 4bb78: a027c820 */ sb $a3,%lo(__osContLastCmd)($at) +/* 4bb7c: 240f0001 */ addiu $t7,$zero,0x1 +/* 4bb80: ac4f003c */ sw $t7,0x3c($v0) +/* 4bb84: 24180001 */ addiu $t8,$zero,0x1 +/* 4bb88: 24190003 */ addiu $t9,$zero,0x3 +/* 4bb8c: 240800ff */ addiu $t0,$zero,0xff +/* 4bb90: 240900ff */ addiu $t1,$zero,0xff +/* 4bb94: 240a00ff */ addiu $t2,$zero,0xff +/* 4bb98: a3b8000c */ sb $t8,0xc($sp) +/* 4bb9c: a3b9000d */ sb $t9,0xd($sp) +/* 4bba0: a3a5000e */ sb $a1,0xe($sp) +/* 4bba4: a3a8000f */ sb $t0,0xf($sp) +/* 4bba8: a3a90010 */ sb $t1,0x10($sp) +/* 4bbac: a3aa0011 */ sb $t2,0x11($sp) +/* 4bbb0: 18800010 */ blez $a0,.L0004bbf4 +/* 4bbb4: 00001825 */ or $v1,$zero,$zero +/* 4bbb8: 30860003 */ andi $a2,$a0,0x3 +/* 4bbbc: 10c00006 */ beqz $a2,.L0004bbd8 +/* 4bbc0: 00c02825 */ or $a1,$a2,$zero +.L0004bbc4: +/* 4bbc4: 24630001 */ addiu $v1,$v1,0x1 +/* 4bbc8: a0400000 */ sb $zero,0x0($v0) +/* 4bbcc: 14a3fffd */ bne $a1,$v1,.L0004bbc4 +/* 4bbd0: 24420001 */ addiu $v0,$v0,0x1 +/* 4bbd4: 10640007 */ beq $v1,$a0,.L0004bbf4 +.L0004bbd8: +/* 4bbd8: 24630004 */ addiu $v1,$v1,0x4 +/* 4bbdc: a0400001 */ sb $zero,0x1($v0) +/* 4bbe0: a0400002 */ sb $zero,0x2($v0) +/* 4bbe4: a0400003 */ sb $zero,0x3($v0) +/* 4bbe8: 24420004 */ addiu $v0,$v0,0x4 +/* 4bbec: 1464fffa */ bne $v1,$a0,.L0004bbd8 +/* 4bbf0: a040fffc */ sb $zero,-0x4($v0) +.L0004bbf4: +/* 4bbf4: 27ab000c */ addiu $t3,$sp,0xc +/* 4bbf8: 8d610000 */ lw $at,0x0($t3) +/* 4bbfc: 24420006 */ addiu $v0,$v0,0x6 +/* 4bc00: a841fffa */ swl $at,-0x6($v0) +/* 4bc04: b841fffd */ swr $at,-0x3($v0) +/* 4bc08: 91610004 */ lbu $at,0x4($t3) +/* 4bc0c: a041fffe */ sb $at,-0x2($v0) +/* 4bc10: 916d0005 */ lbu $t5,0x5($t3) +/* 4bc14: a0470000 */ sb $a3,0x0($v0) +/* 4bc18: 27bd0018 */ addiu $sp,$sp,0x18 +/* 4bc1c: 03e00008 */ jr $ra +/* 4bc20: a04dffff */ sb $t5,-0x1($v0) +); + +GLOBAL_ASM( +glabel __osPfsGetOneChannelData +/* 4bc24: 3c028009 */ lui $v0,%hi(var80090a20) +/* 4bc28: 27bdffe8 */ addiu $sp,$sp,-24 +/* 4bc2c: 24420a20 */ addiu $v0,$v0,%lo(var80090a20) +/* 4bc30: 1880000b */ blez $a0,.L0004bc60 +/* 4bc34: 00001825 */ or $v1,$zero,$zero +/* 4bc38: 30870003 */ andi $a3,$a0,0x3 +/* 4bc3c: 10e00005 */ beqz $a3,.L0004bc54 +/* 4bc40: 00e03025 */ or $a2,$a3,$zero +.L0004bc44: +/* 4bc44: 24630001 */ addiu $v1,$v1,0x1 +/* 4bc48: 14c3fffe */ bne $a2,$v1,.L0004bc44 +/* 4bc4c: 24420001 */ addiu $v0,$v0,0x1 +/* 4bc50: 10640003 */ beq $v1,$a0,.L0004bc60 +.L0004bc54: +/* 4bc54: 24630004 */ addiu $v1,$v1,0x4 +/* 4bc58: 1464fffe */ bne $v1,$a0,.L0004bc54 +/* 4bc5c: 24420004 */ addiu $v0,$v0,0x4 +.L0004bc60: +/* 4bc60: 88410000 */ lwl $at,0x0($v0) +/* 4bc64: 98410003 */ lwr $at,0x3($v0) +/* 4bc68: 27ae000c */ addiu $t6,$sp,0xc +/* 4bc6c: adc10000 */ sw $at,0x0($t6) +/* 4bc70: 90410004 */ lbu $at,0x4($v0) +/* 4bc74: a1c10004 */ sb $at,0x4($t6) +/* 4bc78: 90580005 */ lbu $t8,0x5($v0) +/* 4bc7c: a1d80005 */ sb $t8,0x5($t6) +/* 4bc80: 93b9000d */ lbu $t9,0xd($sp) +/* 4bc84: 332800c0 */ andi $t0,$t9,0xc0 +/* 4bc88: 00084903 */ sra $t1,$t0,0x4 +/* 4bc8c: 312a00ff */ andi $t2,$t1,0xff +/* 4bc90: 15400008 */ bnez $t2,.L0004bcb4 +/* 4bc94: a0a90003 */ sb $t1,0x3($a1) +/* 4bc98: 93ab0010 */ lbu $t3,0x10($sp) +/* 4bc9c: 93ad000f */ lbu $t5,0xf($sp) +/* 4bca0: 000b6200 */ sll $t4,$t3,0x8 +/* 4bca4: 018d7825 */ or $t7,$t4,$t5 +/* 4bca8: a4af0000 */ sh $t7,0x0($a1) +/* 4bcac: 93ae0011 */ lbu $t6,0x11($sp) +/* 4bcb0: a0ae0002 */ sb $t6,0x2($a1) +.L0004bcb4: +/* 4bcb4: 03e00008 */ jr $ra +/* 4bcb8: 27bd0018 */ addiu $sp,$sp,0x18 +/* 4bcbc: 00000000 */ nop +); diff --git a/src/lib/ultra/io/pfsisplug.c b/src/lib/ultra/io/pfsisplug.c new file mode 100644 index 000000000..e34a471f2 --- /dev/null +++ b/src/lib/ultra/io/pfsisplug.c @@ -0,0 +1,215 @@ +#include + +GLOBAL_ASM( +glabel osPfsIsPlug +/* 5770: 27bdff90 */ addiu $sp,$sp,-112 +/* 5774: afbf003c */ sw $ra,0x3c($sp) +/* 5778: afb5002c */ sw $s5,0x2c($sp) +/* 577c: afb20020 */ sw $s2,0x20($sp) +/* 5780: afb1001c */ sw $s1,0x1c($sp) +/* 5784: 00809025 */ or $s2,$a0,$zero +/* 5788: afbe0038 */ sw $s8,0x38($sp) +/* 578c: afb70034 */ sw $s7,0x34($sp) +/* 5790: afb60030 */ sw $s6,0x30($sp) +/* 5794: afb40028 */ sw $s4,0x28($sp) +/* 5798: afb30024 */ sw $s3,0x24($sp) +/* 579c: afb00018 */ sw $s0,0x18($sp) +/* 57a0: afa50074 */ sw $a1,0x74($sp) +/* 57a4: 0000a825 */ or $s5,$zero,$zero +/* 57a8: 0c012a18 */ jal __osSiGetAccess +/* 57ac: 24110001 */ addiu $s1,$zero,0x1 +/* 57b0: 3c1e800a */ lui $s8,%hi(__osContLastCmd+0x1) +/* 57b4: 3c138009 */ lui $s3,%hi(var80090a20) +/* 57b8: 26730a20 */ addiu $s3,$s3,%lo(var80090a20) +/* 57bc: 27dec821 */ addiu $s8,$s8,%lo(__osContLastCmd+0x1) +/* 57c0: 00008025 */ or $s0,$zero,$zero +/* 57c4: 27b70054 */ addiu $s7,$sp,0x54 +/* 57c8: 27b60067 */ addiu $s6,$sp,0x67 +/* 57cc: 27b40068 */ addiu $s4,$sp,0x68 +.L000057d0: +/* 57d0: 0c00163f */ jal __osPfsRequestData +/* 57d4: 00002025 */ or $a0,$zero,$zero +/* 57d8: 24040001 */ addiu $a0,$zero,0x1 +/* 57dc: 0c012a34 */ jal __osSiRawStartDma +/* 57e0: 02602825 */ or $a1,$s3,$zero +/* 57e4: 02402025 */ or $a0,$s2,$zero +/* 57e8: 02802825 */ or $a1,$s4,$zero +/* 57ec: 0c0121bc */ jal osRecvMesg +/* 57f0: 24060001 */ addiu $a2,$zero,0x1 +/* 57f4: 00002025 */ or $a0,$zero,$zero +/* 57f8: 0c012a34 */ jal __osSiRawStartDma +/* 57fc: 02602825 */ or $a1,$s3,$zero +/* 5800: afa2006c */ sw $v0,0x6c($sp) +/* 5804: 02402025 */ or $a0,$s2,$zero +/* 5808: 02802825 */ or $a1,$s4,$zero +/* 580c: 0c0121bc */ jal osRecvMesg +/* 5810: 24060001 */ addiu $a2,$zero,0x1 +/* 5814: 02c02025 */ or $a0,$s6,$zero +/* 5818: 0c00166c */ jal __osPfsGetInitData +/* 581c: 02e02825 */ or $a1,$s7,$zero +/* 5820: 93c30000 */ lbu $v1,0x0($s8) +/* 5824: 27a20054 */ addiu $v0,$sp,0x54 +/* 5828: 5860000c */ blezl $v1,.L0000585c +/* 582c: 02031026 */ xor $v0,$s0,$v1 +.L00005830: +/* 5830: 904e0002 */ lbu $t6,0x2($v0) +/* 5834: 31cf0004 */ andi $t7,$t6,0x4 +/* 5838: 55e00004 */ bnezl $t7,.L0000584c +/* 583c: 26100001 */ addiu $s0,$s0,0x1 +/* 5840: 10000005 */ b .L00005858 +/* 5844: 2631ffff */ addiu $s1,$s1,-1 +/* 5848: 26100001 */ addiu $s0,$s0,0x1 +.L0000584c: +/* 584c: 0203082a */ slt $at,$s0,$v1 +/* 5850: 1420fff7 */ bnez $at,.L00005830 +/* 5854: 24420004 */ addiu $v0,$v0,0x4 +.L00005858: +/* 5858: 02031026 */ xor $v0,$s0,$v1 +.L0000585c: +/* 585c: 14400002 */ bnez $v0,.L00005868 +/* 5860: 00008025 */ or $s0,$zero,$zero +/* 5864: 00008825 */ or $s1,$zero,$zero +.L00005868: +/* 5868: 1e20ffd9 */ bgtz $s1,.L000057d0 +/* 586c: 00000000 */ nop +/* 5870: 18600011 */ blez $v1,.L000058b8 +/* 5874: 27a20054 */ addiu $v0,$sp,0x54 +.L00005878: +/* 5878: 90580003 */ lbu $t8,0x3($v0) +/* 587c: 5700000b */ bnezl $t8,.L000058ac +/* 5880: 26100001 */ addiu $s0,$s0,0x1 +/* 5884: 90590002 */ lbu $t9,0x2($v0) +/* 5888: 24090001 */ addiu $t1,$zero,0x1 +/* 588c: 02095004 */ sllv $t2,$t1,$s0 +/* 5890: 33280001 */ andi $t0,$t9,0x1 +/* 5894: 51000005 */ beqzl $t0,.L000058ac +/* 5898: 26100001 */ addiu $s0,$s0,0x1 +/* 589c: 02aaa825 */ or $s5,$s5,$t2 +/* 58a0: 32ab00ff */ andi $t3,$s5,0xff +/* 58a4: 0160a825 */ or $s5,$t3,$zero +/* 58a8: 26100001 */ addiu $s0,$s0,0x1 +.L000058ac: +/* 58ac: 0203082a */ slt $at,$s0,$v1 +/* 58b0: 1420fff1 */ bnez $at,.L00005878 +/* 58b4: 24420004 */ addiu $v0,$v0,0x4 +.L000058b8: +/* 58b8: 0c012a29 */ jal __osSiRelAccess +/* 58bc: 00000000 */ nop +/* 58c0: 8fac0074 */ lw $t4,0x74($sp) +/* 58c4: a1950000 */ sb $s5,0x0($t4) +/* 58c8: 8fbf003c */ lw $ra,0x3c($sp) +/* 58cc: 8fbe0038 */ lw $s8,0x38($sp) +/* 58d0: 8fb70034 */ lw $s7,0x34($sp) +/* 58d4: 8fb60030 */ lw $s6,0x30($sp) +/* 58d8: 8fb5002c */ lw $s5,0x2c($sp) +/* 58dc: 8fb40028 */ lw $s4,0x28($sp) +/* 58e0: 8fb30024 */ lw $s3,0x24($sp) +/* 58e4: 8fb20020 */ lw $s2,0x20($sp) +/* 58e8: 8fb1001c */ lw $s1,0x1c($sp) +/* 58ec: 8fb00018 */ lw $s0,0x18($sp) +/* 58f0: 8fa2006c */ lw $v0,0x6c($sp) +/* 58f4: 03e00008 */ jr $ra +/* 58f8: 27bd0070 */ addiu $sp,$sp,0x70 +); + +GLOBAL_ASM( +glabel __osPfsRequestData +/* 58fc: 27bdfff0 */ addiu $sp,$sp,-16 +/* 5900: 3c058009 */ lui $a1,%hi(var80090a20) +/* 5904: 3c01800a */ lui $at,%hi(__osContLastCmd) +/* 5908: 24a20a20 */ addiu $v0,$a1,%lo(var80090a20) +/* 590c: afa40010 */ sw $a0,0x10($sp) +/* 5910: a024c820 */ sb $a0,%lo(__osContLastCmd)($at) +/* 5914: 240f0001 */ addiu $t7,$zero,0x1 +/* 5918: ac4f003c */ sw $t7,0x3c($v0) +/* 591c: 3c06800a */ lui $a2,%hi(__osContLastCmd+0x1) +/* 5920: 24c6c821 */ addiu $a2,$a2,%lo(__osContLastCmd+0x1) +/* 5924: 90cd0000 */ lbu $t5,0x0($a2) +/* 5928: 241800ff */ addiu $t8,$zero,0xff +/* 592c: 24190001 */ addiu $t9,$zero,0x1 +/* 5930: 24080003 */ addiu $t0,$zero,0x3 +/* 5934: 240900ff */ addiu $t1,$zero,0xff +/* 5938: 240a00ff */ addiu $t2,$zero,0xff +/* 593c: 240b00ff */ addiu $t3,$zero,0xff +/* 5940: 240c00ff */ addiu $t4,$zero,0xff +/* 5944: a3b80004 */ sb $t8,0x4($sp) +/* 5948: a3b90005 */ sb $t9,0x5($sp) +/* 594c: a3a80006 */ sb $t0,0x6($sp) +/* 5950: a3a40007 */ sb $a0,0x7($sp) +/* 5954: a3a90008 */ sb $t1,0x8($sp) +/* 5958: a3aa0009 */ sb $t2,0x9($sp) +/* 595c: a3ab000a */ sb $t3,0xa($sp) +/* 5960: a3ac000b */ sb $t4,0xb($sp) +/* 5964: 19a0000e */ blez $t5,.L000059a0 +/* 5968: 00001825 */ or $v1,$zero,$zero +/* 596c: 27a40004 */ addiu $a0,$sp,0x4 +/* 5970: 8c810000 */ lw $at,0x0($a0) +.L00005974: +/* 5974: 24630001 */ addiu $v1,$v1,0x1 +/* 5978: 24420008 */ addiu $v0,$v0,0x8 +/* 597c: a841fff8 */ swl $at,-0x8($v0) +/* 5980: b841fffb */ swr $at,-0x5($v0) +/* 5984: 8c8f0004 */ lw $t7,0x4($a0) +/* 5988: a84ffffc */ swl $t7,-0x4($v0) +/* 598c: b84fffff */ swr $t7,-0x1($v0) +/* 5990: 90d80000 */ lbu $t8,0x0($a2) +/* 5994: 0078082a */ slt $at,$v1,$t8 +/* 5998: 5420fff6 */ bnezl $at,.L00005974 +/* 599c: 8c810000 */ lw $at,0x0($a0) +.L000059a0: +/* 59a0: 241900fe */ addiu $t9,$zero,0xfe +/* 59a4: a0590000 */ sb $t9,0x0($v0) +/* 59a8: 03e00008 */ jr $ra +/* 59ac: 27bd0010 */ addiu $sp,$sp,0x10 +); + +GLOBAL_ASM( +glabel __osPfsGetInitData +/* 59b0: 3c07800a */ lui $a3,%hi(__osContLastCmd+0x1) +/* 59b4: 24e7c821 */ addiu $a3,$a3,%lo(__osContLastCmd+0x1) +/* 59b8: 90ee0000 */ lbu $t6,0x0($a3) +/* 59bc: 3c038009 */ lui $v1,%hi(var80090a20) +/* 59c0: 27bdffe8 */ addiu $sp,$sp,-24 +/* 59c4: 00001025 */ or $v0,$zero,$zero +/* 59c8: 24630a20 */ addiu $v1,$v1,%lo(var80090a20) +/* 59cc: 19c00020 */ blez $t6,.L00005a50 +/* 59d0: 00003025 */ or $a2,$zero,$zero +/* 59d4: 27a8000c */ addiu $t0,$sp,0xc +.L000059d8: +/* 59d8: 88610000 */ lwl $at,0x0($v1) +/* 59dc: 98610003 */ lwr $at,0x3($v1) +/* 59e0: ad010000 */ sw $at,0x0($t0) +/* 59e4: 88780004 */ lwl $t8,0x4($v1) +/* 59e8: 98780007 */ lwr $t8,0x7($v1) +/* 59ec: ad180004 */ sw $t8,0x4($t0) +/* 59f0: 93b9000e */ lbu $t9,0xe($sp) +/* 59f4: 332900c0 */ andi $t1,$t9,0xc0 +/* 59f8: 00095103 */ sra $t2,$t1,0x4 +/* 59fc: 314b00ff */ andi $t3,$t2,0xff +/* 5a00: 1560000d */ bnez $t3,.L00005a38 +/* 5a04: a0aa0003 */ sb $t2,0x3($a1) +/* 5a08: 93ac0011 */ lbu $t4,0x11($sp) +/* 5a0c: 93ae0010 */ lbu $t6,0x10($sp) +/* 5a10: 24190001 */ addiu $t9,$zero,0x1 +/* 5a14: 000c6a00 */ sll $t5,$t4,0x8 +/* 5a18: 01ae7825 */ or $t7,$t5,$t6 +/* 5a1c: a4af0000 */ sh $t7,0x0($a1) +/* 5a20: 93b80012 */ lbu $t8,0x12($sp) +/* 5a24: 00d94804 */ sllv $t1,$t9,$a2 +/* 5a28: 00491025 */ or $v0,$v0,$t1 +/* 5a2c: 304a00ff */ andi $t2,$v0,0xff +/* 5a30: 01401025 */ or $v0,$t2,$zero +/* 5a34: a0b80002 */ sb $t8,0x2($a1) +.L00005a38: +/* 5a38: 90eb0000 */ lbu $t3,0x0($a3) +/* 5a3c: 24c60001 */ addiu $a2,$a2,0x1 +/* 5a40: 24630008 */ addiu $v1,$v1,0x8 +/* 5a44: 00cb082a */ slt $at,$a2,$t3 +/* 5a48: 1420ffe3 */ bnez $at,.L000059d8 +/* 5a4c: 24a50004 */ addiu $a1,$a1,0x4 +.L00005a50: +/* 5a50: a0820000 */ sb $v0,0x0($a0) +/* 5a54: 03e00008 */ jr $ra +/* 5a58: 27bd0018 */ addiu $sp,$sp,0x18 +/* 5a5c: 00000000 */ nop +); diff --git a/src/lib/ultra/io/piacs.c b/src/lib/ultra/io/piacs.c new file mode 100644 index 000000000..19d124414 --- /dev/null +++ b/src/lib/ultra/io/piacs.c @@ -0,0 +1,62 @@ +#include + +GLOBAL_ASM( +glabel __osPiCreateAccessQueue +/* 49a90: 27bdffe8 */ addiu $sp,$sp,-24 +/* 49a94: afbf0014 */ sw $ra,0x14($sp) +/* 49a98: 240e0001 */ addiu $t6,$zero,0x1 +/* 49a9c: 3c018006 */ lui $at,%hi(var80060920) +/* 49aa0: 3c04800a */ lui $a0,%hi(var8009c7a8) +/* 49aa4: 3c05800a */ lui $a1,%hi(var8009c7a0) +/* 49aa8: ac2e0920 */ sw $t6,%lo(var80060920)($at) +/* 49aac: 24a5c7a0 */ addiu $a1,$a1,%lo(var8009c7a0) +/* 49ab0: 2484c7a8 */ addiu $a0,$a0,%lo(var8009c7a8) +/* 49ab4: 0c0120d0 */ jal osCreateMesgQueue +/* 49ab8: 24060001 */ addiu $a2,$zero,0x1 +/* 49abc: 3c04800a */ lui $a0,%hi(var8009c7a8) +/* 49ac0: 2484c7a8 */ addiu $a0,$a0,%lo(var8009c7a8) +/* 49ac4: 00002825 */ or $a1,$zero,$zero +/* 49ac8: 0c012238 */ jal osSendMesg +/* 49acc: 00003025 */ or $a2,$zero,$zero +/* 49ad0: 8fbf0014 */ lw $ra,0x14($sp) +/* 49ad4: 27bd0018 */ addiu $sp,$sp,0x18 +/* 49ad8: 03e00008 */ jr $ra +/* 49adc: 00000000 */ nop +); + +GLOBAL_ASM( +glabel __osPiGetAccess +/* 49ae0: 3c0e8006 */ lui $t6,%hi(var80060920) +/* 49ae4: 8dce0920 */ lw $t6,%lo(var80060920)($t6) +/* 49ae8: 27bdffe0 */ addiu $sp,$sp,-32 +/* 49aec: afbf0014 */ sw $ra,0x14($sp) +/* 49af0: 15c00003 */ bnez $t6,.L00049b00 +/* 49af4: 00000000 */ nop +/* 49af8: 0c0126a4 */ jal __osPiCreateAccessQueue +/* 49afc: 00000000 */ nop +.L00049b00: +/* 49b00: 3c04800a */ lui $a0,%hi(var8009c7a8) +/* 49b04: 2484c7a8 */ addiu $a0,$a0,%lo(var8009c7a8) +/* 49b08: 27a5001c */ addiu $a1,$sp,0x1c +/* 49b0c: 0c0121bc */ jal osRecvMesg +/* 49b10: 24060001 */ addiu $a2,$zero,0x1 +/* 49b14: 8fbf0014 */ lw $ra,0x14($sp) +/* 49b18: 27bd0020 */ addiu $sp,$sp,0x20 +/* 49b1c: 03e00008 */ jr $ra +/* 49b20: 00000000 */ nop +); + +GLOBAL_ASM( +glabel __osPiRelAccess +/* 49b24: 27bdffe8 */ addiu $sp,$sp,-24 +/* 49b28: afbf0014 */ sw $ra,0x14($sp) +/* 49b2c: 3c04800a */ lui $a0,%hi(var8009c7a8) +/* 49b30: 2484c7a8 */ addiu $a0,$a0,%lo(var8009c7a8) +/* 49b34: 00002825 */ or $a1,$zero,$zero +/* 49b38: 0c012238 */ jal osSendMesg +/* 49b3c: 00003025 */ or $a2,$zero,$zero +/* 49b40: 8fbf0014 */ lw $ra,0x14($sp) +/* 49b44: 27bd0018 */ addiu $sp,$sp,0x18 +/* 49b48: 03e00008 */ jr $ra +/* 49b4c: 00000000 */ nop +); diff --git a/src/lib/lib_4e530.c b/src/lib/ultra/io/pidma.c similarity index 69% rename from src/lib/lib_4e530.c rename to src/lib/ultra/io/pidma.c index 0d4724c02..f3a95b7fd 100644 --- a/src/lib/lib_4e530.c +++ b/src/lib/ultra/io/pidma.c @@ -1,18 +1,4 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_488e0.h" -#include "lib/lib_49a90.h" -#include "lib/lib_51ec0.h" -#include "lib/lib_52070.h" -#include "types.h" +#include GLOBAL_ASM( glabel osPiStartDma @@ -91,31 +77,3 @@ glabel osPiStartDma /* 4e638: 27bd0028 */ addiu $sp,$sp,0x28 /* 4e63c: 00000000 */ nop ); - -GLOBAL_ASM( -glabel func0004e640 -/* 4e640: 3c028006 */ lui $v0,%hi(var80060944) -/* 4e644: 03e00008 */ jr $ra -/* 4e648: 8c420944 */ lw $v0,%lo(var80060944)($v0) -/* 4e64c: 00000000 */ nop -); - -GLOBAL_ASM( -glabel osPiReadIo -/* 4e650: 27bdffe0 */ addiu $sp,$sp,-32 -/* 4e654: afbf0014 */ sw $ra,0x14($sp) -/* 4e658: afa40020 */ sw $a0,0x20($sp) -/* 4e65c: 0c0126b8 */ jal __osPiGetAccess -/* 4e660: afa50024 */ sw $a1,0x24($sp) -/* 4e664: 8fa40020 */ lw $a0,0x20($sp) -/* 4e668: 0c01481c */ jal osPiRawReadIo -/* 4e66c: 8fa50024 */ lw $a1,0x24($sp) -/* 4e670: 0c0126c9 */ jal __osPiRelAccess -/* 4e674: afa2001c */ sw $v0,0x1c($sp) -/* 4e678: 8fbf0014 */ lw $ra,0x14($sp) -/* 4e67c: 8fa2001c */ lw $v0,0x1c($sp) -/* 4e680: 27bd0020 */ addiu $sp,$sp,0x20 -/* 4e684: 03e00008 */ jr $ra -/* 4e688: 00000000 */ nop -/* 4e68c: 00000000 */ nop -); \ No newline at end of file diff --git a/src/lib/ultra/io/pigetcmdq.c b/src/lib/ultra/io/pigetcmdq.c new file mode 100644 index 000000000..75b2745cb --- /dev/null +++ b/src/lib/ultra/io/pigetcmdq.c @@ -0,0 +1,18 @@ +#include + +GLOBAL_ASM( +glabel osPiGetCmdQueue +/* 52040: 3c0e8006 */ lui $t6,%hi(var8005cf00) +/* 52044: 8dcecf00 */ lw $t6,%lo(var8005cf00)($t6) +/* 52048: 15c00003 */ bnez $t6,.L00052058 +/* 5204c: 00000000 */ nop +/* 52050: 03e00008 */ jr $ra +/* 52054: 00001025 */ or $v0,$zero,$zero +.L00052058: +/* 52058: 3c028006 */ lui $v0,%hi(var8005cf08) +/* 5205c: 8c42cf08 */ lw $v0,%lo(var8005cf08)($v0) +/* 52060: 03e00008 */ jr $ra +/* 52064: 00000000 */ nop +/* 52068: 00000000 */ nop +/* 5206c: 00000000 */ nop +); diff --git a/src/lib/ultra/io/pimgr.c b/src/lib/ultra/io/pimgr.c new file mode 100644 index 000000000..fe6eb6eba --- /dev/null +++ b/src/lib/ultra/io/pimgr.c @@ -0,0 +1,101 @@ +#include + +GLOBAL_ASM( +glabel osCreatePiPanager +/* 3360: 27bdffd0 */ addiu $sp,$sp,-48 +/* 3364: afb00020 */ sw $s0,0x20($sp) +/* 3368: 3c108006 */ lui $s0,%hi(var8005cf00) +/* 336c: 2610cf00 */ addiu $s0,$s0,%lo(var8005cf00) +/* 3370: 8e0e0000 */ lw $t6,0x0($s0) +/* 3374: afbf0024 */ sw $ra,0x24($sp) +/* 3378: afa40030 */ sw $a0,0x30($sp) +/* 337c: afa50034 */ sw $a1,0x34($sp) +/* 3380: 15c0004e */ bnez $t6,.L000034bc +/* 3384: afa60038 */ sw $a2,0x38($sp) +/* 3388: 00a02025 */ or $a0,$a1,$zero +/* 338c: 00c02825 */ or $a1,$a2,$zero +/* 3390: 0c0120d0 */ jal osCreateMesgQueue +/* 3394: 00e03025 */ or $a2,$a3,$zero +/* 3398: 3c048009 */ lui $a0,%hi(var800907c0) +/* 339c: 3c058009 */ lui $a1,%hi(var800907d8) +/* 33a0: 24a507d8 */ addiu $a1,$a1,%lo(var800907d8) +/* 33a4: 248407c0 */ addiu $a0,$a0,%lo(var800907c0) +/* 33a8: 0c0120d0 */ jal osCreateMesgQueue +/* 33ac: 24060004 */ addiu $a2,$zero,0x4 +/* 33b0: 3c0f8006 */ lui $t7,%hi(var80060920) +/* 33b4: 8def0920 */ lw $t7,%lo(var80060920)($t7) +/* 33b8: 15e00003 */ bnez $t7,.L000033c8 +/* 33bc: 00000000 */ nop +/* 33c0: 0c0126a4 */ jal __osPiCreateAccessQueue +/* 33c4: 00000000 */ nop +.L000033c8: +/* 33c8: 3c058009 */ lui $a1,%hi(var800907c0) +/* 33cc: 3c062222 */ lui $a2,0x2222 +/* 33d0: 34c62222 */ ori $a2,$a2,0x2222 +/* 33d4: 24a507c0 */ addiu $a1,$a1,%lo(var800907c0) +/* 33d8: 0c012148 */ jal osSetEventMesg +/* 33dc: 24040008 */ addiu $a0,$zero,0x8 +/* 33e0: 2418ffff */ addiu $t8,$zero,-1 +/* 33e4: afb80028 */ sw $t8,0x28($sp) +/* 33e8: 0c012230 */ jal osGetThreadPri +/* 33ec: 00002025 */ or $a0,$zero,$zero +/* 33f0: 8fb90030 */ lw $t9,0x30($sp) +/* 33f4: 00002025 */ or $a0,$zero,$zero +/* 33f8: 0059082a */ slt $at,$v0,$t9 +/* 33fc: 10200003 */ beqz $at,.L0000340c +/* 3400: 03202825 */ or $a1,$t9,$zero +/* 3404: 0c01210c */ jal osSetThreadPri +/* 3408: afa20028 */ sw $v0,0x28($sp) +.L0000340c: +/* 340c: 0c01256c */ jal __osDisableInt +/* 3410: 00000000 */ nop +/* 3414: 8fa90034 */ lw $t1,0x34($sp) +/* 3418: 8faf0030 */ lw $t7,0x30($sp) +/* 341c: 3c048009 */ lui $a0,%hi(var80090390) +/* 3420: 3c0a8009 */ lui $t2,%hi(var800907c0) +/* 3424: 3c0b800a */ lui $t3,%hi(var8009c7a8) +/* 3428: 3c0c7005 */ lui $t4,%hi(osPiRawStartDma) +/* 342c: 3c0d7005 */ lui $t5,%hi(osEPiRawStartDma) +/* 3430: 3c0e8009 */ lui $t6,%hi(var800907c0) +/* 3434: 24840390 */ addiu $a0,$a0,%lo(var80090390) +/* 3438: 24080001 */ addiu $t0,$zero,0x1 +/* 343c: 254a07c0 */ addiu $t2,$t2,%lo(var800907c0) +/* 3440: 256bc7a8 */ addiu $t3,$t3,%lo(var8009c7a8) +/* 3444: 258c9b50 */ addiu $t4,$t4,%lo(osPiRawStartDma) +/* 3448: 25ad9c20 */ addiu $t5,$t5,%lo(osEPiRawStartDma) +/* 344c: 25ce07c0 */ addiu $t6,$t6,%lo(var800907c0) +/* 3450: 3c067005 */ lui $a2,%hi(__osDevMgrMain) +/* 3454: afa2002c */ sw $v0,0x2c($sp) +/* 3458: ae080000 */ sw $t0,0x0($s0) +/* 345c: ae040004 */ sw $a0,0x4($s0) +/* 3460: ae0a000c */ sw $t2,0xc($s0) +/* 3464: ae0b0010 */ sw $t3,0x10($s0) +/* 3468: ae0c0014 */ sw $t4,0x14($s0) +/* 346c: ae0d0018 */ sw $t5,0x18($s0) +/* 3470: 24c69e00 */ addiu $a2,$a2,%lo(__osDevMgrMain) +/* 3474: afae0010 */ sw $t6,0x10($sp) +/* 3478: 00002825 */ or $a1,$zero,$zero +/* 347c: 02003825 */ or $a3,$s0,$zero +/* 3480: ae090008 */ sw $t1,0x8($s0) +/* 3484: 0c000fb8 */ jal osCreateThread +/* 3488: afaf0014 */ sw $t7,0x14($sp) +/* 348c: 3c048009 */ lui $a0,%hi(var80090390) +/* 3490: 0c01207c */ jal osStartThread +/* 3494: 24840390 */ addiu $a0,$a0,%lo(var80090390) +/* 3498: 0c012588 */ jal __osRestoreInt +/* 349c: 8fa4002c */ lw $a0,0x2c($sp) +/* 34a0: 8fb80028 */ lw $t8,0x28($sp) +/* 34a4: 2401ffff */ addiu $at,$zero,-1 +/* 34a8: 00002025 */ or $a0,$zero,$zero +/* 34ac: 53010004 */ beql $t8,$at,.L000034c0 +/* 34b0: 8fbf0024 */ lw $ra,0x24($sp) +/* 34b4: 0c01210c */ jal osSetThreadPri +/* 34b8: 03002825 */ or $a1,$t8,$zero +.L000034bc: +/* 34bc: 8fbf0024 */ lw $ra,0x24($sp) +.L000034c0: +/* 34c0: 8fb00020 */ lw $s0,0x20($sp) +/* 34c4: 27bd0030 */ addiu $sp,$sp,0x30 +/* 34c8: 03e00008 */ jr $ra +/* 34cc: 00000000 */ nop +); diff --git a/src/lib/ultra/io/pirawdma.c b/src/lib/ultra/io/pirawdma.c new file mode 100644 index 000000000..970a55d68 --- /dev/null +++ b/src/lib/ultra/io/pirawdma.c @@ -0,0 +1,63 @@ +#include + +GLOBAL_ASM( +glabel osPiRawStartDma +/* 49b50: 27bdffe8 */ addiu $sp,$sp,-24 +/* 49b54: 3c03a460 */ lui $v1,0xa460 +/* 49b58: 34630010 */ ori $v1,$v1,0x10 +/* 49b5c: afbf0014 */ sw $ra,0x14($sp) +/* 49b60: afa40018 */ sw $a0,0x18($sp) +/* 49b64: afa5001c */ sw $a1,0x1c($sp) +/* 49b68: 8c620000 */ lw $v0,0x0($v1) +/* 49b6c: 00c02025 */ or $a0,$a2,$zero +/* 49b70: 304e0003 */ andi $t6,$v0,0x3 +/* 49b74: 11c00005 */ beqz $t6,.L00049b8c +/* 49b78: 00000000 */ nop +/* 49b7c: 8c620000 */ lw $v0,0x0($v1) +.L00049b80: +/* 49b80: 304f0003 */ andi $t7,$v0,0x3 +/* 49b84: 55e0fffe */ bnezl $t7,.L00049b80 +/* 49b88: 8c620000 */ lw $v0,0x0($v1) +.L00049b8c: +/* 49b8c: 0c012d20 */ jal osVirtualToPhysical +/* 49b90: afa70024 */ sw $a3,0x24($sp) +/* 49b94: 8fa30018 */ lw $v1,0x18($sp) +/* 49b98: 8fa70024 */ lw $a3,0x24($sp) +/* 49b9c: 3c18a460 */ lui $t8,0xa460 +/* 49ba0: af020000 */ sw $v0,0x0($t8) +/* 49ba4: 3c198000 */ lui $t9,0x8000 +/* 49ba8: 8f390308 */ lw $t9,0x308($t9) +/* 49bac: 8fa8001c */ lw $t0,0x1c($sp) +/* 49bb0: 3c011fff */ lui $at,0x1fff +/* 49bb4: 3421ffff */ ori $at,$at,0xffff +/* 49bb8: 03284825 */ or $t1,$t9,$t0 +/* 49bbc: 01215024 */ and $t2,$t1,$at +/* 49bc0: 3c0ba460 */ lui $t3,0xa460 +/* 49bc4: 10600006 */ beqz $v1,.L00049be0 +/* 49bc8: ad6a0004 */ sw $t2,0x4($t3) +/* 49bcc: 24010001 */ addiu $at,$zero,0x1 +/* 49bd0: 10610007 */ beq $v1,$at,.L00049bf0 +/* 49bd4: 24eeffff */ addiu $t6,$a3,-1 +/* 49bd8: 1000000b */ b .L00049c08 +/* 49bdc: 2402ffff */ addiu $v0,$zero,-1 +.L00049be0: +/* 49be0: 24ecffff */ addiu $t4,$a3,-1 +/* 49be4: 3c0da460 */ lui $t5,0xa460 +/* 49be8: 10000006 */ b .L00049c04 +/* 49bec: adac000c */ sw $t4,0xc($t5) +.L00049bf0: +/* 49bf0: 3c0fa460 */ lui $t7,0xa460 +/* 49bf4: 10000003 */ b .L00049c04 +/* 49bf8: adee0008 */ sw $t6,0x8($t7) +/* 49bfc: 10000002 */ b .L00049c08 +/* 49c00: 2402ffff */ addiu $v0,$zero,-1 +.L00049c04: +/* 49c04: 00001025 */ or $v0,$zero,$zero +.L00049c08: +/* 49c08: 8fbf0014 */ lw $ra,0x14($sp) +/* 49c0c: 27bd0018 */ addiu $sp,$sp,0x18 +/* 49c10: 03e00008 */ jr $ra +/* 49c14: 00000000 */ nop +/* 49c18: 00000000 */ nop +/* 49c1c: 00000000 */ nop +); diff --git a/src/lib/ultra/io/pirawread.c b/src/lib/ultra/io/pirawread.c new file mode 100644 index 000000000..847f41775 --- /dev/null +++ b/src/lib/ultra/io/pirawread.c @@ -0,0 +1,27 @@ +#include + +GLOBAL_ASM( +glabel osPiRawReadIo +/* 52070: 3c03a460 */ lui $v1,0xa460 +/* 52074: 34630010 */ ori $v1,$v1,0x10 +/* 52078: 8c620000 */ lw $v0,0x0($v1) +/* 5207c: 3c188000 */ lui $t8,0x8000 +/* 52080: 304e0003 */ andi $t6,$v0,0x3 +/* 52084: 11c00005 */ beqz $t6,.L0005209c +/* 52088: 00000000 */ nop +/* 5208c: 8c620000 */ lw $v0,0x0($v1) +.L00052090: +/* 52090: 304f0003 */ andi $t7,$v0,0x3 +/* 52094: 55e0fffe */ bnezl $t7,.L00052090 +/* 52098: 8c620000 */ lw $v0,0x0($v1) +.L0005209c: +/* 5209c: 8f180308 */ lw $t8,0x308($t8) +/* 520a0: 3c01a000 */ lui $at,0xa000 +/* 520a4: 00001025 */ or $v0,$zero,$zero +/* 520a8: 0304c825 */ or $t9,$t8,$a0 +/* 520ac: 03214025 */ or $t0,$t9,$at +/* 520b0: 8d090000 */ lw $t1,0x0($t0) +/* 520b4: 03e00008 */ jr $ra +/* 520b8: aca90000 */ sw $t1,0x0($a1) +/* 520bc: 00000000 */ nop +); diff --git a/src/lib/ultra/io/piread.c b/src/lib/ultra/io/piread.c new file mode 100644 index 000000000..ba3ec538b --- /dev/null +++ b/src/lib/ultra/io/piread.c @@ -0,0 +1,21 @@ +#include + +GLOBAL_ASM( +glabel osPiReadIo +/* 4e650: 27bdffe0 */ addiu $sp,$sp,-32 +/* 4e654: afbf0014 */ sw $ra,0x14($sp) +/* 4e658: afa40020 */ sw $a0,0x20($sp) +/* 4e65c: 0c0126b8 */ jal __osPiGetAccess +/* 4e660: afa50024 */ sw $a1,0x24($sp) +/* 4e664: 8fa40020 */ lw $a0,0x20($sp) +/* 4e668: 0c01481c */ jal osPiRawReadIo +/* 4e66c: 8fa50024 */ lw $a1,0x24($sp) +/* 4e670: 0c0126c9 */ jal __osPiRelAccess +/* 4e674: afa2001c */ sw $v0,0x1c($sp) +/* 4e678: 8fbf0014 */ lw $ra,0x14($sp) +/* 4e67c: 8fa2001c */ lw $v0,0x1c($sp) +/* 4e680: 27bd0020 */ addiu $sp,$sp,0x20 +/* 4e684: 03e00008 */ jr $ra +/* 4e688: 00000000 */ nop +/* 4e68c: 00000000 */ nop +); diff --git a/src/lib/ultra/io/si.c b/src/lib/ultra/io/si.c new file mode 100644 index 000000000..135d204d5 --- /dev/null +++ b/src/lib/ultra/io/si.c @@ -0,0 +1,19 @@ +#include + +GLOBAL_ASM( +glabel __osSiDeviceBusy +/* 51c60: 3c0ea480 */ lui $t6,0xa480 +/* 51c64: 8dc40018 */ lw $a0,0x18($t6) +/* 51c68: 27bdfff8 */ addiu $sp,$sp,-8 +/* 51c6c: 308f0003 */ andi $t7,$a0,0x3 +/* 51c70: 11e00003 */ beqz $t7,.L00051c80 +/* 51c74: 00000000 */ nop +/* 51c78: 10000002 */ b .L00051c84 +/* 51c7c: 24020001 */ addiu $v0,$zero,0x1 +.L00051c80: +/* 51c80: 00001025 */ or $v0,$zero,$zero +.L00051c84: +/* 51c84: 03e00008 */ jr $ra +/* 51c88: 27bd0008 */ addiu $sp,$sp,0x8 +/* 51c8c: 00000000 */ nop +); diff --git a/src/lib/ultra/io/siacs.c b/src/lib/ultra/io/siacs.c new file mode 100644 index 000000000..4543f8ca9 --- /dev/null +++ b/src/lib/ultra/io/siacs.c @@ -0,0 +1,62 @@ +#include + +GLOBAL_ASM( +glabel __osSiCreateAccessQueue +/* 4a810: 27bdffe8 */ addiu $sp,$sp,-24 +/* 4a814: afbf0014 */ sw $ra,0x14($sp) +/* 4a818: 240e0001 */ addiu $t6,$zero,0x1 +/* 4a81c: 3c018006 */ lui $at,%hi(var80060950) +/* 4a820: 3c04800a */ lui $a0,%hi(var8009c7c8) +/* 4a824: 3c05800a */ lui $a1,%hi(var8009c7c0) +/* 4a828: ac2e0950 */ sw $t6,%lo(var80060950)($at) +/* 4a82c: 24a5c7c0 */ addiu $a1,$a1,%lo(var8009c7c0) +/* 4a830: 2484c7c8 */ addiu $a0,$a0,%lo(var8009c7c8) +/* 4a834: 0c0120d0 */ jal osCreateMesgQueue +/* 4a838: 24060001 */ addiu $a2,$zero,0x1 +/* 4a83c: 3c04800a */ lui $a0,%hi(var8009c7c8) +/* 4a840: 2484c7c8 */ addiu $a0,$a0,%lo(var8009c7c8) +/* 4a844: 00002825 */ or $a1,$zero,$zero +/* 4a848: 0c012238 */ jal osSendMesg +/* 4a84c: 00003025 */ or $a2,$zero,$zero +/* 4a850: 8fbf0014 */ lw $ra,0x14($sp) +/* 4a854: 27bd0018 */ addiu $sp,$sp,0x18 +/* 4a858: 03e00008 */ jr $ra +/* 4a85c: 00000000 */ nop +); + +GLOBAL_ASM( +glabel __osSiGetAccess +/* 4a860: 3c0e8006 */ lui $t6,%hi(var80060950) +/* 4a864: 8dce0950 */ lw $t6,%lo(var80060950)($t6) +/* 4a868: 27bdffe0 */ addiu $sp,$sp,-32 +/* 4a86c: afbf0014 */ sw $ra,0x14($sp) +/* 4a870: 15c00003 */ bnez $t6,.L0004a880 +/* 4a874: 00000000 */ nop +/* 4a878: 0c012a04 */ jal __osSiCreateAccessQueue +/* 4a87c: 00000000 */ nop +.L0004a880: +/* 4a880: 3c04800a */ lui $a0,%hi(var8009c7c8) +/* 4a884: 2484c7c8 */ addiu $a0,$a0,%lo(var8009c7c8) +/* 4a888: 27a5001c */ addiu $a1,$sp,0x1c +/* 4a88c: 0c0121bc */ jal osRecvMesg +/* 4a890: 24060001 */ addiu $a2,$zero,0x1 +/* 4a894: 8fbf0014 */ lw $ra,0x14($sp) +/* 4a898: 27bd0020 */ addiu $sp,$sp,0x20 +/* 4a89c: 03e00008 */ jr $ra +/* 4a8a0: 00000000 */ nop +); + +GLOBAL_ASM( +glabel __osSiRelAccess +/* 4a8a4: 27bdffe8 */ addiu $sp,$sp,-24 +/* 4a8a8: afbf0014 */ sw $ra,0x14($sp) +/* 4a8ac: 3c04800a */ lui $a0,%hi(var8009c7c8) +/* 4a8b0: 2484c7c8 */ addiu $a0,$a0,%lo(var8009c7c8) +/* 4a8b4: 00002825 */ or $a1,$zero,$zero +/* 4a8b8: 0c012238 */ jal osSendMesg +/* 4a8bc: 00003025 */ or $a2,$zero,$zero +/* 4a8c0: 8fbf0014 */ lw $ra,0x14($sp) +/* 4a8c4: 27bd0018 */ addiu $sp,$sp,0x18 +/* 4a8c8: 03e00008 */ jr $ra +/* 4a8cc: 00000000 */ nop +); diff --git a/src/lib/ultra/io/sirawdma.c b/src/lib/ultra/io/sirawdma.c new file mode 100644 index 000000000..7ca37b788 --- /dev/null +++ b/src/lib/ultra/io/sirawdma.c @@ -0,0 +1,55 @@ +#include + +GLOBAL_ASM( +glabel __osSiRawStartDma +/* 4a8d0: 27bdffe8 */ addiu $sp,$sp,-24 +/* 4a8d4: afbf0014 */ sw $ra,0x14($sp) +/* 4a8d8: afa5001c */ sw $a1,0x1c($sp) +/* 4a8dc: 3c0ea480 */ lui $t6,0xa480 +/* 4a8e0: 8dcf0018 */ lw $t7,0x18($t6) +/* 4a8e4: 00803025 */ or $a2,$a0,$zero +/* 4a8e8: 24010001 */ addiu $at,$zero,0x1 +/* 4a8ec: 31f80003 */ andi $t8,$t7,0x3 +/* 4a8f0: 13000003 */ beqz $t8,.L0004a900 +/* 4a8f4: 00000000 */ nop +/* 4a8f8: 1000001c */ b .L0004a96c +/* 4a8fc: 2402ffff */ addiu $v0,$zero,-1 +.L0004a900: +/* 4a900: 14c10005 */ bne $a2,$at,.L0004a918 +/* 4a904: 8fa4001c */ lw $a0,0x1c($sp) +/* 4a908: 24050040 */ addiu $a1,$zero,0x40 +/* 4a90c: 0c012b60 */ jal osWritebackDCache +/* 4a910: afa60018 */ sw $a2,0x18($sp) +/* 4a914: 8fa60018 */ lw $a2,0x18($sp) +.L0004a918: +/* 4a918: 8fa4001c */ lw $a0,0x1c($sp) +/* 4a91c: 0c012d20 */ jal osVirtualToPhysical +/* 4a920: afa60018 */ sw $a2,0x18($sp) +/* 4a924: 8fa60018 */ lw $a2,0x18($sp) +/* 4a928: 3c19a480 */ lui $t9,0xa480 +/* 4a92c: af220000 */ sw $v0,0x0($t9) +/* 4a930: 14c00006 */ bnez $a2,.L0004a94c +/* 4a934: 3c0a1fc0 */ lui $t2,0x1fc0 +/* 4a938: 3c081fc0 */ lui $t0,0x1fc0 +/* 4a93c: 350807c0 */ ori $t0,$t0,0x7c0 +/* 4a940: 3c09a480 */ lui $t1,0xa480 +/* 4a944: 10000004 */ b .L0004a958 +/* 4a948: ad280004 */ sw $t0,0x4($t1) +.L0004a94c: +/* 4a94c: 354a07c0 */ ori $t2,$t2,0x7c0 +/* 4a950: 3c0ba480 */ lui $t3,0xa480 +/* 4a954: ad6a0010 */ sw $t2,0x10($t3) +.L0004a958: +/* 4a958: 14c00003 */ bnez $a2,.L0004a968 +/* 4a95c: 8fa4001c */ lw $a0,0x1c($sp) +/* 4a960: 0c013920 */ jal osInvalDCache +/* 4a964: 24050040 */ addiu $a1,$zero,0x40 +.L0004a968: +/* 4a968: 00001025 */ or $v0,$zero,$zero +.L0004a96c: +/* 4a96c: 8fbf0014 */ lw $ra,0x14($sp) +/* 4a970: 27bd0018 */ addiu $sp,$sp,0x18 +/* 4a974: 03e00008 */ jr $ra +/* 4a978: 00000000 */ nop +/* 4a97c: 00000000 */ nop +); diff --git a/src/lib/lib_4ace0.c b/src/lib/ultra/io/sirawread.c similarity index 71% rename from src/lib/lib_4ace0.c rename to src/lib/ultra/io/sirawread.c index 7a1285d96..8734e308c 100644 --- a/src/lib/lib_4ace0.c +++ b/src/lib/ultra/io/sirawread.c @@ -1,15 +1,4 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_51c60.h" -#include "types.h" +#include GLOBAL_ASM( glabel __osSiRawReadIo @@ -35,4 +24,4 @@ glabel __osSiRawReadIo /* 4ad24: 03e00008 */ jr $ra /* 4ad28: 00000000 */ nop /* 4ad2c: 00000000 */ nop -); \ No newline at end of file +); diff --git a/src/lib/lib_4ad30.c b/src/lib/ultra/io/sirawwrite.c similarity index 70% rename from src/lib/lib_4ad30.c rename to src/lib/ultra/io/sirawwrite.c index c448dc3dd..09c5f7a2b 100644 --- a/src/lib/lib_4ad30.c +++ b/src/lib/ultra/io/sirawwrite.c @@ -1,15 +1,4 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_51c60.h" -#include "types.h" +#include GLOBAL_ASM( glabel __osSiRawWriteIo @@ -35,4 +24,4 @@ glabel __osSiRawWriteIo /* 4ad74: 00000000 */ nop /* 4ad78: 00000000 */ nop /* 4ad7c: 00000000 */ nop -); \ No newline at end of file +); diff --git a/src/lib/lib_49640.c b/src/lib/ultra/io/vi.c similarity index 90% rename from src/lib/lib_49640.c rename to src/lib/ultra/io/vi.c index e22efdb59..5935f6908 100644 --- a/src/lib/lib_49640.c +++ b/src/lib/ultra/io/vi.c @@ -1,16 +1,4 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_49780.h" -#include "lib/lib_4ae00.h" -#include "types.h" +#include GLOBAL_ASM( glabel __osViInit @@ -99,4 +87,4 @@ glabel __osViInit /* 49774: 03e00008 */ jr $ra /* 49778: 00000000 */ nop /* 4977c: 00000000 */ nop -); \ No newline at end of file +); diff --git a/src/lib/lib_03050.c b/src/lib/ultra/io/vimgr.c similarity index 63% rename from src/lib/lib_03050.c rename to src/lib/ultra/io/vimgr.c index 28091872f..a77c9ff29 100644 --- a/src/lib/lib_03050.c +++ b/src/lib/ultra/io/vimgr.c @@ -1,25 +1,4 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_03050.h" -#include "lib/lib_03ee0.h" -#include "lib/lib_481e0.h" -#include "lib/lib_48520.h" -#include "lib/lib_48650.h" -#include "lib/lib_48830.h" -#include "lib/lib_488e0.h" -#include "lib/lib_491b0.h" -#include "lib/lib_49640.h" -#include "lib/lib_49780.h" -#include "lib/lib_49a90.h" -#include "types.h" +#include const u32 var70052430[] = {0x70002d68}; const u32 var70052434[] = {0x70002d14}; @@ -242,121 +221,3 @@ glabel viMgrMain /* 3358: 27bd0050 */ addiu $sp,$sp,0x50 /* 335c: 00000000 */ nop ); - -GLOBAL_ASM( -glabel osCreatePiPanager -/* 3360: 27bdffd0 */ addiu $sp,$sp,-48 -/* 3364: afb00020 */ sw $s0,0x20($sp) -/* 3368: 3c108006 */ lui $s0,%hi(var8005cf00) -/* 336c: 2610cf00 */ addiu $s0,$s0,%lo(var8005cf00) -/* 3370: 8e0e0000 */ lw $t6,0x0($s0) -/* 3374: afbf0024 */ sw $ra,0x24($sp) -/* 3378: afa40030 */ sw $a0,0x30($sp) -/* 337c: afa50034 */ sw $a1,0x34($sp) -/* 3380: 15c0004e */ bnez $t6,.L000034bc -/* 3384: afa60038 */ sw $a2,0x38($sp) -/* 3388: 00a02025 */ or $a0,$a1,$zero -/* 338c: 00c02825 */ or $a1,$a2,$zero -/* 3390: 0c0120d0 */ jal osCreateMesgQueue -/* 3394: 00e03025 */ or $a2,$a3,$zero -/* 3398: 3c048009 */ lui $a0,%hi(var800907c0) -/* 339c: 3c058009 */ lui $a1,%hi(var800907d8) -/* 33a0: 24a507d8 */ addiu $a1,$a1,%lo(var800907d8) -/* 33a4: 248407c0 */ addiu $a0,$a0,%lo(var800907c0) -/* 33a8: 0c0120d0 */ jal osCreateMesgQueue -/* 33ac: 24060004 */ addiu $a2,$zero,0x4 -/* 33b0: 3c0f8006 */ lui $t7,%hi(var80060920) -/* 33b4: 8def0920 */ lw $t7,%lo(var80060920)($t7) -/* 33b8: 15e00003 */ bnez $t7,.L000033c8 -/* 33bc: 00000000 */ nop -/* 33c0: 0c0126a4 */ jal __osPiCreateAccessQueue -/* 33c4: 00000000 */ nop -.L000033c8: -/* 33c8: 3c058009 */ lui $a1,%hi(var800907c0) -/* 33cc: 3c062222 */ lui $a2,0x2222 -/* 33d0: 34c62222 */ ori $a2,$a2,0x2222 -/* 33d4: 24a507c0 */ addiu $a1,$a1,%lo(var800907c0) -/* 33d8: 0c012148 */ jal osSetEventMesg -/* 33dc: 24040008 */ addiu $a0,$zero,0x8 -/* 33e0: 2418ffff */ addiu $t8,$zero,-1 -/* 33e4: afb80028 */ sw $t8,0x28($sp) -/* 33e8: 0c012230 */ jal osGetThreadPri -/* 33ec: 00002025 */ or $a0,$zero,$zero -/* 33f0: 8fb90030 */ lw $t9,0x30($sp) -/* 33f4: 00002025 */ or $a0,$zero,$zero -/* 33f8: 0059082a */ slt $at,$v0,$t9 -/* 33fc: 10200003 */ beqz $at,.L0000340c -/* 3400: 03202825 */ or $a1,$t9,$zero -/* 3404: 0c01210c */ jal osSetThreadPri -/* 3408: afa20028 */ sw $v0,0x28($sp) -.L0000340c: -/* 340c: 0c01256c */ jal __osDisableInt -/* 3410: 00000000 */ nop -/* 3414: 8fa90034 */ lw $t1,0x34($sp) -/* 3418: 8faf0030 */ lw $t7,0x30($sp) -/* 341c: 3c048009 */ lui $a0,%hi(var80090390) -/* 3420: 3c0a8009 */ lui $t2,%hi(var800907c0) -/* 3424: 3c0b800a */ lui $t3,%hi(var8009c7a8) -/* 3428: 3c0c7005 */ lui $t4,%hi(osPiRawStartDma) -/* 342c: 3c0d7005 */ lui $t5,%hi(osEPiRawStartDma) -/* 3430: 3c0e8009 */ lui $t6,%hi(var800907c0) -/* 3434: 24840390 */ addiu $a0,$a0,%lo(var80090390) -/* 3438: 24080001 */ addiu $t0,$zero,0x1 -/* 343c: 254a07c0 */ addiu $t2,$t2,%lo(var800907c0) -/* 3440: 256bc7a8 */ addiu $t3,$t3,%lo(var8009c7a8) -/* 3444: 258c9b50 */ addiu $t4,$t4,%lo(osPiRawStartDma) -/* 3448: 25ad9c20 */ addiu $t5,$t5,%lo(osEPiRawStartDma) -/* 344c: 25ce07c0 */ addiu $t6,$t6,%lo(var800907c0) -/* 3450: 3c067005 */ lui $a2,%hi(__osDevMgrMain) -/* 3454: afa2002c */ sw $v0,0x2c($sp) -/* 3458: ae080000 */ sw $t0,0x0($s0) -/* 345c: ae040004 */ sw $a0,0x4($s0) -/* 3460: ae0a000c */ sw $t2,0xc($s0) -/* 3464: ae0b0010 */ sw $t3,0x10($s0) -/* 3468: ae0c0014 */ sw $t4,0x14($s0) -/* 346c: ae0d0018 */ sw $t5,0x18($s0) -/* 3470: 24c69e00 */ addiu $a2,$a2,%lo(__osDevMgrMain) -/* 3474: afae0010 */ sw $t6,0x10($sp) -/* 3478: 00002825 */ or $a1,$zero,$zero -/* 347c: 02003825 */ or $a3,$s0,$zero -/* 3480: ae090008 */ sw $t1,0x8($s0) -/* 3484: 0c000fb8 */ jal osCreateThread -/* 3488: afaf0014 */ sw $t7,0x14($sp) -/* 348c: 3c048009 */ lui $a0,%hi(var80090390) -/* 3490: 0c01207c */ jal osStartThread -/* 3494: 24840390 */ addiu $a0,$a0,%lo(var80090390) -/* 3498: 0c012588 */ jal __osRestoreInt -/* 349c: 8fa4002c */ lw $a0,0x2c($sp) -/* 34a0: 8fb80028 */ lw $t8,0x28($sp) -/* 34a4: 2401ffff */ addiu $at,$zero,-1 -/* 34a8: 00002025 */ or $a0,$zero,$zero -/* 34ac: 53010004 */ beql $t8,$at,.L000034c0 -/* 34b0: 8fbf0024 */ lw $ra,0x24($sp) -/* 34b4: 0c01210c */ jal osSetThreadPri -/* 34b8: 03002825 */ or $a1,$t8,$zero -.L000034bc: -/* 34bc: 8fbf0024 */ lw $ra,0x24($sp) -.L000034c0: -/* 34c0: 8fb00020 */ lw $s0,0x20($sp) -/* 34c4: 27bd0030 */ addiu $sp,$sp,0x30 -/* 34c8: 03e00008 */ jr $ra -/* 34cc: 00000000 */ nop -); - -void func000034d0(void) -{ - // empty -} - -void func000034d8(void) -{ - // empty -} - -GLOBAL_ASM( -glabel func000034e0 -/* 34e0: 03e00008 */ jr $ra -/* 34e4: afa40000 */ sw $a0,0x0($sp) -/* 34e8: 00000000 */ nop -/* 34ec: 00000000 */ nop -); diff --git a/src/lib/ultra/io/viswapcontext.c b/src/lib/ultra/io/viswapcontext.c new file mode 100644 index 000000000..110f93974 --- /dev/null +++ b/src/lib/ultra/io/viswapcontext.c @@ -0,0 +1,209 @@ +#include + +GLOBAL_ASM( +glabel __osViSwapContext +/* 49790: 27bdffb8 */ addiu $sp,$sp,-72 +/* 49794: afb00018 */ sw $s0,0x18($sp) +/* 49798: afbf001c */ sw $ra,0x1c($sp) +/* 4979c: 3c108006 */ lui $s0,%hi(var80060914) +/* 497a0: 3c0ea440 */ lui $t6,0xa440 +/* 497a4: 8e100914 */ lw $s0,%lo(var80060914)($s0) +/* 497a8: 8dcf0010 */ lw $t7,0x10($t6) +/* 497ac: 8e050008 */ lw $a1,0x8($s0) +/* 497b0: 31f80001 */ andi $t8,$t7,0x1 +/* 497b4: afb8002c */ sw $t8,0x2c($sp) +/* 497b8: 8e040004 */ lw $a0,0x4($s0) +/* 497bc: 0c012d20 */ jal osVirtualToPhysical +/* 497c0: afa50044 */ sw $a1,0x44($sp) +/* 497c4: 8fb9002c */ lw $t9,0x2c($sp) +/* 497c8: 8fa50044 */ lw $a1,0x44($sp) +/* 497cc: 960a0000 */ lhu $t2,0x0($s0) +/* 497d0: 00194080 */ sll $t0,$t9,0x2 +/* 497d4: 01194021 */ addu $t0,$t0,$t9 +/* 497d8: 00084080 */ sll $t0,$t0,0x2 +/* 497dc: 00a83021 */ addu $a2,$a1,$t0 +/* 497e0: 8cc90028 */ lw $t1,0x28($a2) +/* 497e4: 314b0002 */ andi $t3,$t2,0x2 +/* 497e8: 11600008 */ beqz $t3,.L0004980c +/* 497ec: 01222021 */ addu $a0,$t1,$v0 +/* 497f0: 8cad0020 */ lw $t5,0x20($a1) +/* 497f4: 8e0c0020 */ lw $t4,0x20($s0) +/* 497f8: 2401f000 */ addiu $at,$zero,-4096 +/* 497fc: 01a17024 */ and $t6,$t5,$at +/* 49800: 018e7825 */ or $t7,$t4,$t6 +/* 49804: 10000003 */ b .L00049814 +/* 49808: ae0f0020 */ sw $t7,0x20($s0) +.L0004980c: +/* 4980c: 8cb80020 */ lw $t8,0x20($a1) +/* 49810: ae180020 */ sw $t8,0x20($s0) +.L00049814: +/* 49814: 96190000 */ lhu $t9,0x0($s0) +/* 49818: 33280004 */ andi $t0,$t9,0x4 +/* 4981c: 51000035 */ beqzl $t0,.L000498f4 +/* 49820: 8cce002c */ lw $t6,0x2c($a2) +/* 49824: 8cc3002c */ lw $v1,0x2c($a2) +/* 49828: c6040024 */ lwc1 $f4,0x24($s0) +/* 4982c: 3c014f80 */ lui $at,0x4f80 +/* 49830: 30690fff */ andi $t1,$v1,0xfff +/* 49834: 44893000 */ mtc1 $t1,$f6 +/* 49838: 05210004 */ bgez $t1,.L0004984c +/* 4983c: 46803220 */ cvt.s.w $f8,$f6 +/* 49840: 44815000 */ mtc1 $at,$f10 +/* 49844: 00000000 */ nop +/* 49848: 460a4200 */ add.s $f8,$f8,$f10 +.L0004984c: +/* 4984c: 46082402 */ mul.s $f16,$f4,$f8 +/* 49850: 24020001 */ addiu $v0,$zero,0x1 +/* 49854: 3c014f00 */ lui $at,0x4f00 +/* 49858: 444af800 */ cfc1 $t2,$31 +/* 4985c: 44c2f800 */ ctc1 $v0,$31 +/* 49860: 00000000 */ nop +/* 49864: 460084a4 */ cvt.w.s $f18,$f16 +/* 49868: 4442f800 */ cfc1 $v0,$31 +/* 4986c: 00000000 */ nop +/* 49870: 30420078 */ andi $v0,$v0,0x78 +/* 49874: 50400013 */ beqzl $v0,.L000498c4 +/* 49878: 44029000 */ mfc1 $v0,$f18 +/* 4987c: 44819000 */ mtc1 $at,$f18 +/* 49880: 24020001 */ addiu $v0,$zero,0x1 +/* 49884: 46128481 */ sub.s $f18,$f16,$f18 +/* 49888: 44c2f800 */ ctc1 $v0,$31 +/* 4988c: 00000000 */ nop +/* 49890: 460094a4 */ cvt.w.s $f18,$f18 +/* 49894: 4442f800 */ cfc1 $v0,$31 +/* 49898: 00000000 */ nop +/* 4989c: 30420078 */ andi $v0,$v0,0x78 +/* 498a0: 14400005 */ bnez $v0,.L000498b8 +/* 498a4: 00000000 */ nop +/* 498a8: 44029000 */ mfc1 $v0,$f18 +/* 498ac: 3c018000 */ lui $at,0x8000 +/* 498b0: 10000007 */ b .L000498d0 +/* 498b4: 00411025 */ or $v0,$v0,$at +.L000498b8: +/* 498b8: 10000005 */ b .L000498d0 +/* 498bc: 2402ffff */ addiu $v0,$zero,-1 +/* 498c0: 44029000 */ mfc1 $v0,$f18 +.L000498c4: +/* 498c4: 00000000 */ nop +/* 498c8: 0440fffb */ bltz $v0,.L000498b8 +/* 498cc: 00000000 */ nop +.L000498d0: +/* 498d0: ae02002c */ sw $v0,0x2c($s0) +/* 498d4: 8ccb002c */ lw $t3,0x2c($a2) +/* 498d8: 2401f000 */ addiu $at,$zero,-4096 +/* 498dc: 44caf800 */ ctc1 $t2,$31 +/* 498e0: 01616824 */ and $t5,$t3,$at +/* 498e4: 004d6025 */ or $t4,$v0,$t5 +/* 498e8: 10000003 */ b .L000498f8 +/* 498ec: ae0c002c */ sw $t4,0x2c($s0) +/* 498f0: 8cce002c */ lw $t6,0x2c($a2) +.L000498f4: +/* 498f4: ae0e002c */ sw $t6,0x2c($s0) +.L000498f8: +/* 498f8: 3c028006 */ lui $v0,%hi(var8005cefc) +/* 498fc: 8c42cefc */ lw $v0,%lo(var8005cefc)($v0) +/* 49900: 8ccf0030 */ lw $t7,0x30($a2) +/* 49904: 0002c400 */ sll $t8,$v0,0x10 +/* 49908: 01f8c823 */ subu $t9,$t7,$t8 +/* 4990c: 03224021 */ addu $t0,$t9,$v0 +/* 49910: afa80034 */ sw $t0,0x34($sp) +/* 49914: 96030000 */ lhu $v1,0x0($s0) +/* 49918: 8ca7001c */ lw $a3,0x1c($a1) +/* 4991c: 30690020 */ andi $t1,$v1,0x20 +/* 49920: 11200002 */ beqz $t1,.L0004992c +/* 49924: 306a0040 */ andi $t2,$v1,0x40 +/* 49928: 00003825 */ or $a3,$zero,$zero +.L0004992c: +/* 4992c: 5140000d */ beqzl $t2,.L00049964 +/* 49930: 306b0080 */ andi $t3,$v1,0x80 +/* 49934: ae00002c */ sw $zero,0x2c($s0) +/* 49938: 8e040004 */ lw $a0,0x4($s0) +/* 4993c: afa70038 */ sw $a3,0x38($sp) +/* 49940: afa60024 */ sw $a2,0x24($sp) +/* 49944: 0c012d20 */ jal osVirtualToPhysical +/* 49948: afa50044 */ sw $a1,0x44($sp) +/* 4994c: 8fa50044 */ lw $a1,0x44($sp) +/* 49950: 8fa60024 */ lw $a2,0x24($sp) +/* 49954: 8fa70038 */ lw $a3,0x38($sp) +/* 49958: 00402025 */ or $a0,$v0,$zero +/* 4995c: 96030000 */ lhu $v1,0x0($s0) +/* 49960: 306b0080 */ andi $t3,$v1,0x80 +.L00049964: +/* 49964: 51600010 */ beqzl $t3,.L000499a8 +/* 49968: 3c0fa440 */ lui $t7,0xa440 +/* 4996c: 960d0028 */ lhu $t5,0x28($s0) +/* 49970: 3c0103ff */ lui $at,0x3ff +/* 49974: 8e040004 */ lw $a0,0x4($s0) +/* 49978: 000d6400 */ sll $t4,$t5,0x10 +/* 4997c: 01817024 */ and $t6,$t4,$at +/* 49980: ae0e002c */ sw $t6,0x2c($s0) +/* 49984: afa70038 */ sw $a3,0x38($sp) +/* 49988: afa60024 */ sw $a2,0x24($sp) +/* 4998c: 0c012d20 */ jal osVirtualToPhysical +/* 49990: afa50044 */ sw $a1,0x44($sp) +/* 49994: 8fa50044 */ lw $a1,0x44($sp) +/* 49998: 8fa60024 */ lw $a2,0x24($sp) +/* 4999c: 8fa70038 */ lw $a3,0x38($sp) +/* 499a0: 00402025 */ or $a0,$v0,$zero +/* 499a4: 3c0fa440 */ lui $t7,0xa440 +.L000499a8: +/* 499a8: ade40004 */ sw $a0,0x4($t7) +/* 499ac: 8cb80008 */ lw $t8,0x8($a1) +/* 499b0: 3c19a440 */ lui $t9,0xa440 +/* 499b4: 3c09a440 */ lui $t1,0xa440 +/* 499b8: af380008 */ sw $t8,0x8($t9) +/* 499bc: 8ca8000c */ lw $t0,0xc($a1) +/* 499c0: 3c0ba440 */ lui $t3,0xa440 +/* 499c4: 3c0ca440 */ lui $t4,0xa440 +/* 499c8: ad280014 */ sw $t0,0x14($t1) +/* 499cc: 8caa0010 */ lw $t2,0x10($a1) +/* 499d0: 3c18a440 */ lui $t8,0xa440 +/* 499d4: 3c08a440 */ lui $t0,0xa440 +/* 499d8: ad6a0018 */ sw $t2,0x18($t3) +/* 499dc: 8cad0014 */ lw $t5,0x14($a1) +/* 499e0: 3c0aa440 */ lui $t2,0xa440 +/* 499e4: 3c028006 */ lui $v0,%hi(var80060910) +/* 499e8: ad8d001c */ sw $t5,0x1c($t4) +/* 499ec: 8cae0018 */ lw $t6,0x18($a1) +/* 499f0: 3c0da440 */ lui $t5,0xa440 +/* 499f4: 24420910 */ addiu $v0,$v0,%lo(var80060910) +/* 499f8: adee0020 */ sw $t6,0x20($t7) +/* 499fc: af070024 */ sw $a3,0x24($t8) +/* 49a00: 8fb90034 */ lw $t9,0x34($sp) +/* 49a04: 3c0ea440 */ lui $t6,0xa440 +/* 49a08: 3c038006 */ lui $v1,%hi(var80060914) +/* 49a0c: ad190028 */ sw $t9,0x28($t0) +/* 49a10: 8cc90034 */ lw $t1,0x34($a2) +/* 49a14: 24630914 */ addiu $v1,$v1,%lo(var80060914) +/* 49a18: ad49002c */ sw $t1,0x2c($t2) +/* 49a1c: 8ccb0038 */ lw $t3,0x38($a2) +/* 49a20: adab000c */ sw $t3,0xc($t5) +/* 49a24: 8e0c0020 */ lw $t4,0x20($s0) +/* 49a28: 02005825 */ or $t3,$s0,$zero +/* 49a2c: adcc0030 */ sw $t4,0x30($t6) +/* 49a30: 8e0f002c */ lw $t7,0x2c($s0) +/* 49a34: 260c0030 */ addiu $t4,$s0,0x30 +/* 49a38: af0f0034 */ sw $t7,0x34($t8) +/* 49a3c: 8e19000c */ lw $t9,0xc($s0) +/* 49a40: ad190000 */ sw $t9,0x0($t0) +/* 49a44: 8c4a0000 */ lw $t2,0x0($v0) +/* 49a48: ac500000 */ sw $s0,0x0($v0) +/* 49a4c: ac6a0000 */ sw $t2,0x0($v1) +.L00049a50: +/* 49a50: 8d610000 */ lw $at,0x0($t3) +/* 49a54: 256b000c */ addiu $t3,$t3,0xc +/* 49a58: 254a000c */ addiu $t2,$t2,0xc +/* 49a5c: ad41fff4 */ sw $at,-0xc($t2) +/* 49a60: 8d61fff8 */ lw $at,-0x8($t3) +/* 49a64: ad41fff8 */ sw $at,-0x8($t2) +/* 49a68: 8d61fffc */ lw $at,-0x4($t3) +/* 49a6c: 156cfff8 */ bne $t3,$t4,.L00049a50 +/* 49a70: ad41fffc */ sw $at,-0x4($t2) +/* 49a74: 8fbf001c */ lw $ra,0x1c($sp) +/* 49a78: 8fb00018 */ lw $s0,0x18($sp) +/* 49a7c: 27bd0048 */ addiu $sp,$sp,0x48 +/* 49a80: 03e00008 */ jr $ra +/* 49a84: 00000000 */ nop +/* 49a88: 00000000 */ nop +/* 49a8c: 00000000 */ nop +); diff --git a/src/lib/ultra/os/createmesgqueue.c b/src/lib/ultra/os/createmesgqueue.c new file mode 100644 index 000000000..296b09e46 --- /dev/null +++ b/src/lib/ultra/os/createmesgqueue.c @@ -0,0 +1,17 @@ +#include + +GLOBAL_ASM( +glabel osCreateMesgQueue +/* 48340: 3c0e8006 */ lui $t6,%hi(var80060930) +/* 48344: 3c0f8006 */ lui $t7,%hi(var80060930) +/* 48348: 25ce0930 */ addiu $t6,$t6,%lo(var80060930) +/* 4834c: 25ef0930 */ addiu $t7,$t7,%lo(var80060930) +/* 48350: ac8e0000 */ sw $t6,0x0($a0) +/* 48354: ac8f0004 */ sw $t7,0x4($a0) +/* 48358: ac800008 */ sw $zero,0x8($a0) +/* 4835c: ac80000c */ sw $zero,0xc($a0) +/* 48360: ac860010 */ sw $a2,0x10($a0) +/* 48364: 03e00008 */ jr $ra +/* 48368: ac850014 */ sw $a1,0x14($a0) +/* 4836c: 00000000 */ nop +); diff --git a/src/lib/lib_03ee0.c b/src/lib/ultra/os/createthread.c similarity index 86% rename from src/lib/lib_03ee0.c rename to src/lib/ultra/os/createthread.c index 4d2544537..8b2e9de43 100644 --- a/src/lib/lib_03ee0.c +++ b/src/lib/ultra/os/createthread.c @@ -1,15 +1,4 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_491b0.h" -#include "types.h" +#include GLOBAL_ASM( glabel osCreateThread @@ -65,4 +54,4 @@ glabel osCreateThread /* 3fa4: 00000000 */ nop /* 3fa8: 00000000 */ nop /* 3fac: 00000000 */ nop -); \ No newline at end of file +); diff --git a/src/lib/ultra/os/destroythread.c b/src/lib/ultra/os/destroythread.c new file mode 100644 index 000000000..657ada51f --- /dev/null +++ b/src/lib/ultra/os/destroythread.c @@ -0,0 +1,80 @@ +#include + +GLOBAL_ASM( +glabel __osDestroyThread +/* 4a250: 27bdffc8 */ addiu $sp,$sp,-56 +/* 4a254: afbf0024 */ sw $ra,0x24($sp) +/* 4a258: afa40038 */ sw $a0,0x38($sp) +/* 4a25c: afb20020 */ sw $s2,0x20($sp) +/* 4a260: afb1001c */ sw $s1,0x1c($sp) +/* 4a264: 0c01256c */ jal __osDisableInt +/* 4a268: afb00018 */ sw $s0,0x18($sp) +/* 4a26c: 8fae0038 */ lw $t6,0x38($sp) +/* 4a270: 00408025 */ or $s0,$v0,$zero +/* 4a274: 15c00005 */ bnez $t6,.L0004a28c +/* 4a278: 00000000 */ nop +/* 4a27c: 3c0f8006 */ lui $t7,%hi(__osRunningThread) +/* 4a280: 8def0940 */ lw $t7,%lo(__osRunningThread)($t7) +/* 4a284: 10000009 */ b .L0004a2ac +/* 4a288: afaf0038 */ sw $t7,0x38($sp) +.L0004a28c: +/* 4a28c: 8fb80038 */ lw $t8,0x38($sp) +/* 4a290: 24010001 */ addiu $at,$zero,0x1 +/* 4a294: 97190010 */ lhu $t9,0x10($t8) +/* 4a298: 13210004 */ beq $t9,$at,.L0004a2ac +/* 4a29c: 00000000 */ nop +/* 4a2a0: 8f040008 */ lw $a0,0x8($t8) +/* 4a2a4: 0c012884 */ jal __osDequeueThread +/* 4a2a8: 03002825 */ or $a1,$t8,$zero +.L0004a2ac: +/* 4a2ac: 3c088006 */ lui $t0,%hi(var8006093c) +/* 4a2b0: 8d08093c */ lw $t0,%lo(var8006093c)($t0) +/* 4a2b4: 8fa90038 */ lw $t1,0x38($sp) +/* 4a2b8: 15090005 */ bne $t0,$t1,.L0004a2d0 +/* 4a2bc: 00000000 */ nop +/* 4a2c0: 8d0a000c */ lw $t2,0xc($t0) +/* 4a2c4: 3c018006 */ lui $at,%hi(var8006093c) +/* 4a2c8: 10000013 */ b .L0004a318 +/* 4a2cc: ac2a093c */ sw $t2,%lo(var8006093c)($at) +.L0004a2d0: +/* 4a2d0: 3c118006 */ lui $s1,%hi(var8006093c) +/* 4a2d4: 8e31093c */ lw $s1,%lo(var8006093c)($s1) +/* 4a2d8: 2401ffff */ addiu $at,$zero,-1 +/* 4a2dc: 8e2b0004 */ lw $t3,0x4($s1) +/* 4a2e0: 1161000d */ beq $t3,$at,.L0004a318 +/* 4a2e4: 00000000 */ nop +.L0004a2e8: +/* 4a2e8: 8e32000c */ lw $s2,0xc($s1) +/* 4a2ec: 8fac0038 */ lw $t4,0x38($sp) +/* 4a2f0: 164c0004 */ bne $s2,$t4,.L0004a304 +/* 4a2f4: 00000000 */ nop +/* 4a2f8: 8d8d000c */ lw $t5,0xc($t4) +/* 4a2fc: 10000006 */ b .L0004a318 +/* 4a300: ae2d000c */ sw $t5,0xc($s1) +.L0004a304: +/* 4a304: 02408825 */ or $s1,$s2,$zero +/* 4a308: 8e2e0004 */ lw $t6,0x4($s1) +/* 4a30c: 2401ffff */ addiu $at,$zero,-1 +/* 4a310: 15c1fff5 */ bne $t6,$at,.L0004a2e8 +/* 4a314: 00000000 */ nop +.L0004a318: +/* 4a318: 3c198006 */ lui $t9,%hi(__osRunningThread) +/* 4a31c: 8f390940 */ lw $t9,%lo(__osRunningThread)($t9) +/* 4a320: 8faf0038 */ lw $t7,0x38($sp) +/* 4a324: 15f90003 */ bne $t7,$t9,.L0004a334 +/* 4a328: 00000000 */ nop +/* 4a32c: 0c000f44 */ jal __osDispatchThread +/* 4a330: 00000000 */ nop +.L0004a334: +/* 4a334: 0c012588 */ jal __osRestoreInt +/* 4a338: 02002025 */ or $a0,$s0,$zero +/* 4a33c: 8fbf0024 */ lw $ra,0x24($sp) +/* 4a340: 8fb00018 */ lw $s0,0x18($sp) +/* 4a344: 8fb1001c */ lw $s1,0x1c($sp) +/* 4a348: 8fb20020 */ lw $s2,0x20($sp) +/* 4a34c: 03e00008 */ jr $ra +/* 4a350: 27bd0038 */ addiu $sp,$sp,0x38 +/* 4a354: 00000000 */ nop +/* 4a358: 00000000 */ nop +/* 4a35c: 00000000 */ nop +); diff --git a/src/lib/lib_034f0.c b/src/lib/ultra/os/exceptasm.c similarity index 96% rename from src/lib/lib_034f0.c rename to src/lib/ultra/os/exceptasm.c index 20c8316c8..516fc026f 100644 --- a/src/lib/lib_034f0.c +++ b/src/lib/ultra/os/exceptasm.c @@ -1,17 +1,4 @@ -#include -#include "boot/boot.h" -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_034f0.h" -#include "lib/lib_49c20.h" -#include "types.h" +#include const u32 var70052450[] = {0x00141818}; const u32 var70052454[] = {0x1c1c1c1c}; @@ -226,7 +213,7 @@ glabel __osException /* 37a4: 02018024 */ and $s0,$s0,$at /* 37a8: 40095800 */ mfc0 $t1,$11 /* 37ac: 40895800 */ mtc0 $t1,$11 -/* 37b0: 0c000eae */ jal func00003ab8 +/* 37b0: 0c000eae */ jal send_mesg /* 37b4: 24040018 */ addiu $a0,$zero,0x18 /* 37b8: 3c01ffff */ lui $at,0xffff /* 37bc: 34217fff */ ori $at,$at,0x7fff @@ -246,7 +233,7 @@ glabel __osException /* 37f4: 10000091 */ b .L00003a3c /* 37f8: 00000000 */ nop .L000037fc: -/* 37fc: 0c000eae */ jal func00003ab8 +/* 37fc: 0c000eae */ jal send_mesg /* 3800: 24040010 */ addiu $a0,$zero,0x10 /* 3804: 1000ffd5 */ b .L0000375c /* 3808: 3209ff00 */ andi $t1,$s0,0xff00 @@ -268,14 +255,14 @@ glabel __osException /* 3848: 3231003e */ andi $s1,$s1,0x3e /* 384c: 11800007 */ beqz $t4,.L0000386c /* 3850: ac290010 */ sw $t1,0x10($at) -/* 3854: 0c000eae */ jal func00003ab8 +/* 3854: 0c000eae */ jal send_mesg /* 3858: 24040020 */ addiu $a0,$zero,0x20 /* 385c: 52200039 */ beqzl $s1,.L00003944 /* 3860: 2401fbff */ addiu $at,$zero,-1025 /* 3864: 10000006 */ b .L00003880 /* 3868: 32290008 */ andi $t1,$s1,0x8 .L0000386c: -/* 386c: 0c000eae */ jal func00003ab8 +/* 386c: 0c000eae */ jal send_mesg /* 3870: 24040058 */ addiu $a0,$zero,0x58 /* 3874: 52200033 */ beqzl $s1,.L00003944 /* 3878: 2401fbff */ addiu $at,$zero,-1025 @@ -285,7 +272,7 @@ glabel __osException /* 3884: 3c01a440 */ lui $at,0xa440 /* 3888: 32310037 */ andi $s1,$s1,0x37 /* 388c: ac200010 */ sw $zero,0x10($at) -/* 3890: 0c000eae */ jal func00003ab8 +/* 3890: 0c000eae */ jal send_mesg /* 3894: 24040038 */ addiu $a0,$zero,0x38 /* 3898: 5220002a */ beqzl $s1,.L00003944 /* 389c: 2401fbff */ addiu $at,$zero,-1025 @@ -297,7 +284,7 @@ glabel __osException /* 38b0: 3c01a450 */ lui $at,0xa450 /* 38b4: 3231003b */ andi $s1,$s1,0x3b /* 38b8: ac29000c */ sw $t1,0xc($at) -/* 38bc: 0c000eae */ jal func00003ab8 +/* 38bc: 0c000eae */ jal send_mesg /* 38c0: 24040030 */ addiu $a0,$zero,0x30 /* 38c4: 5220001f */ beqzl $s1,.L00003944 /* 38c8: 2401fbff */ addiu $at,$zero,-1025 @@ -307,7 +294,7 @@ glabel __osException /* 38d4: 3c01a480 */ lui $at,0xa480 /* 38d8: 3231003d */ andi $s1,$s1,0x3d /* 38dc: ac200018 */ sw $zero,0x18($at) -/* 38e0: 0c000eae */ jal func00003ab8 +/* 38e0: 0c000eae */ jal send_mesg /* 38e4: 24040028 */ addiu $a0,$zero,0x28 /* 38e8: 52200016 */ beqzl $s1,.L00003944 /* 38ec: 2401fbff */ addiu $at,$zero,-1025 @@ -319,7 +306,7 @@ glabel __osException /* 3900: 3c01a460 */ lui $at,0xa460 /* 3904: 3231002f */ andi $s1,$s1,0x2f /* 3908: ac290010 */ sw $t1,0x10($at) -/* 390c: 0c000eae */ jal func00003ab8 +/* 390c: 0c000eae */ jal send_mesg /* 3910: 24040040 */ addiu $a0,$zero,0x40 /* 3914: 5220000b */ beqzl $s1,.L00003944 /* 3918: 2401fbff */ addiu $at,$zero,-1025 @@ -331,7 +318,7 @@ glabel __osException /* 392c: 3c01a430 */ lui $at,0xa430 /* 3930: 3231001f */ andi $s1,$s1,0x1f /* 3934: ac290000 */ sw $t1,0x0($at) -/* 3938: 0c000eae */ jal func00003ab8 +/* 3938: 0c000eae */ jal send_mesg /* 393c: 24040048 */ addiu $a0,$zero,0x48 /* 3940: 2401fbff */ addiu $at,$zero,-1025 .L00003944: @@ -351,7 +338,7 @@ glabel __osException .L00003978: /* 3978: 240a0001 */ addiu $t2,$zero,0x1 /* 397c: ad2a0000 */ sw $t2,0x0($t1) -/* 3980: 0c000eae */ jal func00003ab8 +/* 3980: 0c000eae */ jal send_mesg /* 3984: 24040070 */ addiu $a0,$zero,0x70 /* 3988: 3c0a8006 */ lui $t2,%hi(var80060938) /* 398c: 8d4a0938 */ lw $t2,%lo(var80060938)($t2) @@ -364,7 +351,7 @@ glabel __osException /* 39a8: 2401fdff */ addiu $at,$zero,-513 /* 39ac: 01014024 */ and $t0,$t0,$at /* 39b0: 40886800 */ mtc0 $t0,$13 -/* 39b4: 0c000eae */ jal func00003ab8 +/* 39b4: 0c000eae */ jal send_mesg /* 39b8: 24040008 */ addiu $a0,$zero,0x8 /* 39bc: 2401fdff */ addiu $at,$zero,-513 /* 39c0: 1000ff65 */ b .L00003758 @@ -372,7 +359,7 @@ glabel __osException /* 39c8: 2401feff */ addiu $at,$zero,-257 /* 39cc: 01014024 */ and $t0,$t0,$at /* 39d0: 40886800 */ mtc0 $t0,$13 -/* 39d4: 0c000eae */ jal func00003ab8 +/* 39d4: 0c000eae */ jal send_mesg /* 39d8: 24040000 */ addiu $a0,$zero,0x0 /* 39dc: 2401feff */ addiu $at,$zero,-257 /* 39e0: 1000ff5d */ b .L00003758 @@ -397,7 +384,7 @@ glabel __osException /* 3a20: 24010007 */ addiu $at,$zero,0x7 /* 3a24: 11210018 */ beq $t1,$at,.L00003a88 /* 3a28: 00000000 */ nop -/* 3a2c: 0c000eae */ jal func00003ab8 +/* 3a2c: 0c000eae */ jal send_mesg /* 3a30: 24040050 */ addiu $a0,$zero,0x50 /* 3a34: 10000001 */ b .L00003a3c /* 3a38: 00000000 */ nop @@ -431,14 +418,14 @@ glabel __osException /* 3a9c: a7490012 */ sh $t1,0x12($k0) /* 3aa0: 400a4000 */ mfc0 $t2,$8 /* 3aa4: af4a0124 */ sw $t2,0x124($k0) -/* 3aa8: 0c000eae */ jal func00003ab8 +/* 3aa8: 0c000eae */ jal send_mesg /* 3aac: 24040060 */ addiu $a0,$zero,0x60 /* 3ab0: 08000f44 */ j 0x3d10 /* 3ab4: 00000000 */ nop ); GLOBAL_ASM( -glabel func00003ab8 +glabel send_mesg /* 3ab8: 3c0a800a */ lui $t2,%hi(var8009c6e0) /* 3abc: 254ac6e0 */ addiu $t2,$t2,%lo(var8009c6e0) /* 3ac0: 01445021 */ addu $t2,$t2,$a0 diff --git a/src/lib/ultra/os/getcause.c b/src/lib/ultra/os/getcause.c new file mode 100644 index 000000000..f366dae7c --- /dev/null +++ b/src/lib/ultra/os/getcause.c @@ -0,0 +1,9 @@ +#include + +GLOBAL_ASM( +glabel __osGetCause +/* 4b160: 40026800 */ mfc0 $v0,$13 +/* 4b164: 03e00008 */ jr $ra +/* 4b168: 00000000 */ nop +/* 4b16c: 00000000 */ nop +); diff --git a/src/lib/ultra/os/getcount.c b/src/lib/ultra/os/getcount.c new file mode 100644 index 000000000..58a9c24b0 --- /dev/null +++ b/src/lib/ultra/os/getcount.c @@ -0,0 +1,9 @@ +#include + +GLOBAL_ASM( +glabel osGetCount +/* 48510: 40024800 */ mfc0 $v0,$9 +/* 48514: 03e00008 */ jr $ra +/* 48518: 00000000 */ nop +/* 4851c: 00000000 */ nop +); diff --git a/src/lib/ultra/os/getsr.c b/src/lib/ultra/os/getsr.c new file mode 100644 index 000000000..674162bae --- /dev/null +++ b/src/lib/ultra/os/getsr.c @@ -0,0 +1,9 @@ +#include + +GLOBAL_ASM( +glabel __osGetSR +/* 4acd0: 40026000 */ mfc0 $v0,$12 +/* 4acd4: 03e00008 */ jr $ra +/* 4acd8: 00000000 */ nop +/* 4acdc: 00000000 */ nop +); diff --git a/src/lib/ultra/os/initialize.c b/src/lib/ultra/os/initialize.c new file mode 100644 index 000000000..7b27b12c7 --- /dev/null +++ b/src/lib/ultra/os/initialize.c @@ -0,0 +1,167 @@ +#include + +GLOBAL_ASM( +glabel osInitialize +/* 5b60: 27bdffc8 */ addiu $sp,$sp,-56 +/* 5b64: afbf001c */ sw $ra,0x1c($sp) +/* 5b68: 240e0001 */ addiu $t6,$zero,0x1 +/* 5b6c: 3c018009 */ lui $at,%hi(var80090a60) +/* 5b70: afb10018 */ sw $s1,0x18($sp) +/* 5b74: afb00014 */ sw $s0,0x14($sp) +/* 5b78: 0c012b34 */ jal __osGetSR +/* 5b7c: ac2e0a60 */ sw $t6,%lo(var80090a60)($at) +/* 5b80: 3c012000 */ lui $at,0x2000 +/* 5b84: 0c012b30 */ jal __osSetSR +/* 5b88: 00412025 */ or $a0,$v0,$at +/* 5b8c: 3c040100 */ lui $a0,0x100 +/* 5b90: 0c012078 */ jal __osSetFpcCsr +/* 5b94: 34840800 */ ori $a0,$a0,0x800 +/* 5b98: 3c101fc0 */ lui $s0,0x1fc0 +/* 5b9c: 361007fc */ ori $s0,$s0,0x7fc +/* 5ba0: 27b10034 */ addiu $s1,$sp,0x34 +/* 5ba4: 02202825 */ or $a1,$s1,$zero +/* 5ba8: 0c012b38 */ jal __osSiRawReadIo +/* 5bac: 02002025 */ or $a0,$s0,$zero +/* 5bb0: 10400005 */ beqz $v0,.L00005bc8 +/* 5bb4: 02002025 */ or $a0,$s0,$zero +.L00005bb8: +/* 5bb8: 0c012b38 */ jal __osSiRawReadIo +/* 5bbc: 02202825 */ or $a1,$s1,$zero +/* 5bc0: 5440fffd */ bnezl $v0,.L00005bb8 +/* 5bc4: 02002025 */ or $a0,$s0,$zero +.L00005bc8: +/* 5bc8: 8fa50034 */ lw $a1,0x34($sp) +/* 5bcc: 02002025 */ or $a0,$s0,$zero +/* 5bd0: 34af0008 */ ori $t7,$a1,0x8 +/* 5bd4: 0c012b4c */ jal __osSiRawWriteIo +/* 5bd8: 01e02825 */ or $a1,$t7,$zero +/* 5bdc: 10400008 */ beqz $v0,.L00005c00 +/* 5be0: 00000000 */ nop +/* 5be4: 8fa50034 */ lw $a1,0x34($sp) +.L00005be8: +/* 5be8: 02002025 */ or $a0,$s0,$zero +/* 5bec: 34b80008 */ ori $t8,$a1,0x8 +/* 5bf0: 0c012b4c */ jal __osSiRawWriteIo +/* 5bf4: 03002825 */ or $a1,$t8,$zero +/* 5bf8: 5440fffb */ bnezl $v0,.L00005be8 +/* 5bfc: 8fa50034 */ lw $a1,0x34($sp) +.L00005c00: +/* 5c00: 3c027000 */ lui $v0,%hi(__osExceptionPreamble) +/* 5c04: 244234f0 */ addiu $v0,$v0,%lo(__osExceptionPreamble) +/* 5c08: 8c410000 */ lw $at,0x0($v0) +/* 5c0c: 3c108000 */ lui $s0,0x8000 +/* 5c10: 3c098000 */ lui $t1,0x8000 +/* 5c14: ae010000 */ sw $at,0x0($s0) +/* 5c18: 8c480004 */ lw $t0,0x4($v0) +/* 5c1c: 35290080 */ ori $t1,$t1,0x80 +/* 5c20: 3c0c8000 */ lui $t4,0x8000 +/* 5c24: ae080004 */ sw $t0,0x4($s0) +/* 5c28: 8c410008 */ lw $at,0x8($v0) +/* 5c2c: 358c0100 */ ori $t4,$t4,0x100 +/* 5c30: 3c0f8000 */ lui $t7,0x8000 +/* 5c34: ae010008 */ sw $at,0x8($s0) +/* 5c38: 8c48000c */ lw $t0,0xc($v0) +/* 5c3c: 35ef0180 */ ori $t7,$t7,0x180 +/* 5c40: 02002025 */ or $a0,$s0,$zero +/* 5c44: ae08000c */ sw $t0,0xc($s0) +/* 5c48: 8c410000 */ lw $at,0x0($v0) +/* 5c4c: 24050190 */ addiu $a1,$zero,0x190 +/* 5c50: ad210000 */ sw $at,0x0($t1) +/* 5c54: 8c4b0004 */ lw $t3,0x4($v0) +/* 5c58: ad2b0004 */ sw $t3,0x4($t1) +/* 5c5c: 8c410008 */ lw $at,0x8($v0) +/* 5c60: ad210008 */ sw $at,0x8($t1) +/* 5c64: 8c4b000c */ lw $t3,0xc($v0) +/* 5c68: ad2b000c */ sw $t3,0xc($t1) +/* 5c6c: 8c410000 */ lw $at,0x0($v0) +/* 5c70: ad810000 */ sw $at,0x0($t4) +/* 5c74: 8c4e0004 */ lw $t6,0x4($v0) +/* 5c78: ad8e0004 */ sw $t6,0x4($t4) +/* 5c7c: 8c410008 */ lw $at,0x8($v0) +/* 5c80: ad810008 */ sw $at,0x8($t4) +/* 5c84: 8c4e000c */ lw $t6,0xc($v0) +/* 5c88: ad8e000c */ sw $t6,0xc($t4) +/* 5c8c: 8c410000 */ lw $at,0x0($v0) +/* 5c90: ade10000 */ sw $at,0x0($t7) +/* 5c94: 8c590004 */ lw $t9,0x4($v0) +/* 5c98: adf90004 */ sw $t9,0x4($t7) +/* 5c9c: 8c410008 */ lw $at,0x8($v0) +/* 5ca0: ade10008 */ sw $at,0x8($t7) +/* 5ca4: 8c59000c */ lw $t9,0xc($v0) +/* 5ca8: 0c012b60 */ jal osWritebackDCache +/* 5cac: adf9000c */ sw $t9,0xc($t7) +/* 5cb0: 02002025 */ or $a0,$s0,$zero +/* 5cb4: 0c012054 */ jal osInvalICache +/* 5cb8: 24050190 */ addiu $a1,$zero,0x190 +/* 5cbc: 0c001770 */ jal func00005dc0 +/* 5cc0: 00000000 */ nop +/* 5cc4: 0c000bfc */ jal osMapTLBRdb +/* 5cc8: 00000000 */ nop +/* 5ccc: 3c108006 */ lui $s0,%hi(var8005cf60) +/* 5cd0: 2610cf60 */ addiu $s0,$s0,%lo(var8005cf60) +/* 5cd4: 8e040000 */ lw $a0,0x0($s0) +/* 5cd8: 8e050004 */ lw $a1,0x4($s0) +/* 5cdc: 24060000 */ addiu $a2,$zero,0x0 +/* 5ce0: 0c012bda */ jal func0004af68 +/* 5ce4: 24070003 */ addiu $a3,$zero,0x3 +/* 5ce8: 00402025 */ or $a0,$v0,$zero +/* 5cec: 00602825 */ or $a1,$v1,$zero +/* 5cf0: 24060000 */ addiu $a2,$zero,0x0 +/* 5cf4: 0c012b9a */ jal func0004ae68 +/* 5cf8: 24070004 */ addiu $a3,$zero,0x4 +/* 5cfc: ae020000 */ sw $v0,0x0($s0) +/* 5d00: ae030004 */ sw $v1,0x4($s0) +/* 5d04: 3c088000 */ lui $t0,0x8000 +/* 5d08: 8d08030c */ lw $t0,0x30c($t0) +/* 5d0c: 3c048000 */ lui $a0,0x8000 +/* 5d10: 2484031c */ addiu $a0,$a0,0x31c +/* 5d14: 15000003 */ bnez $t0,.L00005d24 +/* 5d18: 00000000 */ nop +/* 5d1c: 0c012c30 */ jal bzero +/* 5d20: 24050040 */ addiu $a1,$zero,0x40 +.L00005d24: +/* 5d24: 3c028000 */ lui $v0,0x8000 +/* 5d28: 8c420300 */ lw $v0,0x300($v0) +/* 5d2c: 3c0a02f5 */ lui $t2,0x2f5 +/* 5d30: 354ab2d2 */ ori $t2,$t2,0xb2d2 +/* 5d34: 14400004 */ bnez $v0,.L00005d48 +/* 5d38: 24010002 */ addiu $at,$zero,0x2 +/* 5d3c: 3c018006 */ lui $at,%hi(var8005cf68) +/* 5d40: 1000000b */ b .L00005d70 +/* 5d44: ac2acf68 */ sw $t2,%lo(var8005cf68)($at) +.L00005d48: +/* 5d48: 14410006 */ bne $v0,$at,.L00005d64 +/* 5d4c: 3c0b02e6 */ lui $t3,0x2e6 +/* 5d50: 3c0902e6 */ lui $t1,0x2e6 +/* 5d54: 3529d354 */ ori $t1,$t1,0xd354 +/* 5d58: 3c018006 */ lui $at,%hi(var8005cf68) +/* 5d5c: 10000004 */ b .L00005d70 +/* 5d60: ac29cf68 */ sw $t1,%lo(var8005cf68)($at) +.L00005d64: +/* 5d64: 356bd354 */ ori $t3,$t3,0xd354 +/* 5d68: 3c018006 */ lui $at,%hi(var8005cf68) +/* 5d6c: ac2bcf68 */ sw $t3,%lo(var8005cf68)($at) +.L00005d70: +/* 5d70: 0c012c58 */ jal __osGetCause +/* 5d74: 00000000 */ nop +/* 5d78: 304d1000 */ andi $t5,$v0,0x1000 +/* 5d7c: 11a00003 */ beqz $t5,.L00005d8c +/* 5d80: 240c0001 */ addiu $t4,$zero,0x1 +.L00005d84: +/* 5d84: 1000ffff */ b .L00005d84 +/* 5d88: 00000000 */ nop +.L00005d8c: +/* 5d8c: 3c0ea450 */ lui $t6,0xa450 +/* 5d90: adcc0008 */ sw $t4,0x8($t6) +/* 5d94: 24183fff */ addiu $t8,$zero,0x3fff +/* 5d98: 3c0fa450 */ lui $t7,0xa450 +/* 5d9c: adf80010 */ sw $t8,0x10($t7) +/* 5da0: 2419000f */ addiu $t9,$zero,0xf +/* 5da4: 3c08a450 */ lui $t0,0xa450 +/* 5da8: ad190014 */ sw $t9,0x14($t0) +/* 5dac: 8fbf001c */ lw $ra,0x1c($sp) +/* 5db0: 8fb10018 */ lw $s1,0x18($sp) +/* 5db4: 8fb00014 */ lw $s0,0x14($sp) +/* 5db8: 03e00008 */ jr $ra +/* 5dbc: 27bd0038 */ addiu $sp,$sp,0x38 +); diff --git a/src/lib/ultra/os/interrupt.c b/src/lib/ultra/os/interrupt.c new file mode 100644 index 000000000..199b476b6 --- /dev/null +++ b/src/lib/ultra/os/interrupt.c @@ -0,0 +1,46 @@ +#include + +GLOBAL_ASM( +glabel __osDisableInt +/* 495b0: 3c0a8006 */ lui $t2,%hi(var8005cf70) +/* 495b4: 254acf70 */ addiu $t2,$t2,%lo(var8005cf70) +/* 495b8: 8d4b0000 */ lw $t3,0x0($t2) +/* 495bc: 316bff00 */ andi $t3,$t3,0xff00 +/* 495c0: 40086000 */ mfc0 $t0,$12 +/* 495c4: 2401fffe */ addiu $at,$zero,-2 +/* 495c8: 01014824 */ and $t1,$t0,$at +/* 495cc: 40896000 */ mtc0 $t1,$12 +/* 495d0: 31020001 */ andi $v0,$t0,0x1 +/* 495d4: 8d480000 */ lw $t0,0x0($t2) +/* 495d8: 3108ff00 */ andi $t0,$t0,0xff00 +/* 495dc: 110b000e */ beq $t0,$t3,.L00049618 +/* 495e0: 3c0a8006 */ lui $t2,%hi(__osRunningThread) +/* 495e4: 254a0940 */ addiu $t2,$t2,%lo(__osRunningThread) +/* 495e8: 8d490118 */ lw $t1,0x118($t2) +/* 495ec: 312aff00 */ andi $t2,$t1,0xff00 +/* 495f0: 01485024 */ and $t2,$t2,$t0 +/* 495f4: 3c01ffff */ lui $at,0xffff +/* 495f8: 342100ff */ ori $at,$at,0xff +/* 495fc: 01214824 */ and $t1,$t1,$at +/* 49600: 012a4825 */ or $t1,$t1,$t2 +/* 49604: 2401fffe */ addiu $at,$zero,-2 +/* 49608: 01214824 */ and $t1,$t1,$at +/* 4960c: 40896000 */ mtc0 $t1,$12 +/* 49610: 00000000 */ nop +/* 49614: 00000000 */ nop +.L00049618: +/* 49618: 03e00008 */ jr $ra +/* 4961c: 00000000 */ nop +); + +GLOBAL_ASM( +glabel __osRestoreInt +/* 49620: 40086000 */ mfc0 $t0,$12 +/* 49624: 01044025 */ or $t0,$t0,$a0 +/* 49628: 40886000 */ mtc0 $t0,$12 +/* 4962c: 00000000 */ nop +/* 49630: 00000000 */ nop +/* 49634: 03e00008 */ jr $ra +/* 49638: 00000000 */ nop +/* 4963c: 00000000 */ nop +); diff --git a/src/lib/ultra/os/invaldcache.c b/src/lib/ultra/os/invaldcache.c new file mode 100644 index 000000000..64fdb400d --- /dev/null +++ b/src/lib/ultra/os/invaldcache.c @@ -0,0 +1,54 @@ +#include + +GLOBAL_ASM( +glabel osInvalDCache +/* 4e480: 18a0001f */ blez $a1,.L0004e500 +/* 4e484: 00000000 */ nop +/* 4e488: 240b2000 */ addiu $t3,$zero,0x2000 +/* 4e48c: 00ab082b */ sltu $at,$a1,$t3 +/* 4e490: 1020001d */ beqz $at,.L0004e508 +/* 4e494: 00000000 */ nop +/* 4e498: 00804025 */ or $t0,$a0,$zero +/* 4e49c: 00854821 */ addu $t1,$a0,$a1 +/* 4e4a0: 0109082b */ sltu $at,$t0,$t1 +/* 4e4a4: 10200016 */ beqz $at,.L0004e500 +/* 4e4a8: 00000000 */ nop +/* 4e4ac: 310a000f */ andi $t2,$t0,0xf +/* 4e4b0: 11400007 */ beqz $t2,.L0004e4d0 +/* 4e4b4: 2529fff0 */ addiu $t1,$t1,-16 +/* 4e4b8: 010a4023 */ subu $t0,$t0,$t2 +/* 4e4bc: bd150000 */ cache 0x15,0x0($t0) +/* 4e4c0: 0109082b */ sltu $at,$t0,$t1 +/* 4e4c4: 1020000e */ beqz $at,.L0004e500 +/* 4e4c8: 00000000 */ nop +/* 4e4cc: 25080010 */ addiu $t0,$t0,0x10 +.L0004e4d0: +/* 4e4d0: 312a000f */ andi $t2,$t1,0xf +/* 4e4d4: 11400006 */ beqz $t2,.L0004e4f0 +/* 4e4d8: 00000000 */ nop +/* 4e4dc: 012a4823 */ subu $t1,$t1,$t2 +/* 4e4e0: bd350010 */ cache 0x15,0x10($t1) +/* 4e4e4: 0128082b */ sltu $at,$t1,$t0 +/* 4e4e8: 14200005 */ bnez $at,.L0004e500 +/* 4e4ec: 00000000 */ nop +.L0004e4f0: +/* 4e4f0: bd110000 */ cache 0x11,0x0($t0) +/* 4e4f4: 0109082b */ sltu $at,$t0,$t1 +/* 4e4f8: 1420fffd */ bnez $at,.L0004e4f0 +/* 4e4fc: 25080010 */ addiu $t0,$t0,0x10 +.L0004e500: +/* 4e500: 03e00008 */ jr $ra +/* 4e504: 00000000 */ nop +.L0004e508: +/* 4e508: 3c088000 */ lui $t0,0x8000 +/* 4e50c: 010b4821 */ addu $t1,$t0,$t3 +/* 4e510: 2529fff0 */ addiu $t1,$t1,-16 +.L0004e514: +/* 4e514: bd010000 */ cache 0x1,0x0($t0) +/* 4e518: 0109082b */ sltu $at,$t0,$t1 +/* 4e51c: 1420fffd */ bnez $at,.L0004e514 +/* 4e520: 25080010 */ addiu $t0,$t0,0x10 +/* 4e524: 03e00008 */ jr $ra +/* 4e528: 00000000 */ nop +/* 4e52c: 00000000 */ nop +); diff --git a/src/lib/lib_48150.c b/src/lib/ultra/os/invalicache.c similarity index 80% rename from src/lib/lib_48150.c rename to src/lib/ultra/os/invalicache.c index b92016049..9c8730c0d 100644 --- a/src/lib/lib_48150.c +++ b/src/lib/ultra/os/invalicache.c @@ -1,14 +1,4 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "types.h" +#include GLOBAL_ASM( glabel osInvalICache @@ -48,4 +38,4 @@ glabel osInvalICache /* 481c4: 00000000 */ nop /* 481c8: 00000000 */ nop /* 481cc: 00000000 */ nop -); \ No newline at end of file +); diff --git a/src/lib/ultra/os/jammesg.c b/src/lib/ultra/os/jammesg.c new file mode 100644 index 000000000..85a6288f0 --- /dev/null +++ b/src/lib/ultra/os/jammesg.c @@ -0,0 +1,97 @@ +#include + +GLOBAL_ASM( +glabel osJamMesg +/* 51ef0: 27bdffd8 */ addiu $sp,$sp,-40 +/* 51ef4: afbf001c */ sw $ra,0x1c($sp) +/* 51ef8: afa40028 */ sw $a0,0x28($sp) +/* 51efc: afa5002c */ sw $a1,0x2c($sp) +/* 51f00: afa60030 */ sw $a2,0x30($sp) +/* 51f04: afb10018 */ sw $s1,0x18($sp) +/* 51f08: 0c01256c */ jal __osDisableInt +/* 51f0c: afb00014 */ sw $s0,0x14($sp) +/* 51f10: 8fae0028 */ lw $t6,0x28($sp) +/* 51f14: 00408025 */ or $s0,$v0,$zero +/* 51f18: 8dcf0008 */ lw $t7,0x8($t6) +/* 51f1c: 8dd80010 */ lw $t8,0x10($t6) +/* 51f20: 01f8082a */ slt $at,$t7,$t8 +/* 51f24: 14200018 */ bnez $at,.L00051f88 +/* 51f28: 00000000 */ nop +.L00051f2c: +/* 51f2c: 8fb90030 */ lw $t9,0x30($sp) +/* 51f30: 24010001 */ addiu $at,$zero,0x1 +/* 51f34: 1721000a */ bne $t9,$at,.L00051f60 +/* 51f38: 00000000 */ nop +/* 51f3c: 3c098006 */ lui $t1,%hi(__osRunningThread) +/* 51f40: 8d290940 */ lw $t1,%lo(__osRunningThread)($t1) +/* 51f44: 24080008 */ addiu $t0,$zero,0x8 +/* 51f48: a5280010 */ sh $t0,0x10($t1) +/* 51f4c: 8fa40028 */ lw $a0,0x28($sp) +/* 51f50: 0c000ee8 */ jal __osEnqueueAndYield +/* 51f54: 24840004 */ addiu $a0,$a0,0x4 +/* 51f58: 10000005 */ b .L00051f70 +/* 51f5c: 00000000 */ nop +.L00051f60: +/* 51f60: 0c012588 */ jal __osRestoreInt +/* 51f64: 02002025 */ or $a0,$s0,$zero +/* 51f68: 10000030 */ b .L0005202c +/* 51f6c: 2402ffff */ addiu $v0,$zero,-1 +.L00051f70: +/* 51f70: 8faa0028 */ lw $t2,0x28($sp) +/* 51f74: 8d4b0008 */ lw $t3,0x8($t2) +/* 51f78: 8d4c0010 */ lw $t4,0x10($t2) +/* 51f7c: 016c082a */ slt $at,$t3,$t4 +/* 51f80: 1020ffea */ beqz $at,.L00051f2c +/* 51f84: 00000000 */ nop +.L00051f88: +/* 51f88: 8fad0028 */ lw $t5,0x28($sp) +/* 51f8c: 8dae000c */ lw $t6,0xc($t5) +/* 51f90: 8daf0010 */ lw $t7,0x10($t5) +/* 51f94: 01cfc021 */ addu $t8,$t6,$t7 +/* 51f98: 2719ffff */ addiu $t9,$t8,-1 +/* 51f9c: 032f001a */ div $zero,$t9,$t7 +/* 51fa0: 00004010 */ mfhi $t0 +/* 51fa4: ada8000c */ sw $t0,0xc($t5) +/* 51fa8: 8faa0028 */ lw $t2,0x28($sp) +/* 51fac: 8fa9002c */ lw $t1,0x2c($sp) +/* 51fb0: 15e00002 */ bnez $t7,.L00051fbc +/* 51fb4: 00000000 */ nop +/* 51fb8: 0007000d */ break 0x7 +.L00051fbc: +/* 51fbc: 2401ffff */ addiu $at,$zero,-1 +/* 51fc0: 15e10004 */ bne $t7,$at,.L00051fd4 +/* 51fc4: 3c018000 */ lui $at,0x8000 +/* 51fc8: 17210002 */ bne $t9,$at,.L00051fd4 +/* 51fcc: 00000000 */ nop +/* 51fd0: 0006000d */ break 0x6 +.L00051fd4: +/* 51fd4: 8d4c000c */ lw $t4,0xc($t2) +/* 51fd8: 8d4b0014 */ lw $t3,0x14($t2) +/* 51fdc: 000c7080 */ sll $t6,$t4,0x2 +/* 51fe0: 016ec021 */ addu $t8,$t3,$t6 +/* 51fe4: af090000 */ sw $t1,0x0($t8) +/* 51fe8: 8fb90028 */ lw $t9,0x28($sp) +/* 51fec: 8f2f0008 */ lw $t7,0x8($t9) +/* 51ff0: 25e80001 */ addiu $t0,$t7,0x1 +/* 51ff4: af280008 */ sw $t0,0x8($t9) +/* 51ff8: 8fad0028 */ lw $t5,0x28($sp) +/* 51ffc: 8daa0000 */ lw $t2,0x0($t5) +/* 52000: 8d4c0000 */ lw $t4,0x0($t2) +/* 52004: 11800006 */ beqz $t4,.L00052020 +/* 52008: 00000000 */ nop +/* 5200c: 0c000f40 */ jal __osPopThread +/* 52010: 01a02025 */ or $a0,$t5,$zero +/* 52014: 00408825 */ or $s1,$v0,$zero +/* 52018: 0c01207c */ jal osStartThread +/* 5201c: 02202025 */ or $a0,$s1,$zero +.L00052020: +/* 52020: 0c012588 */ jal __osRestoreInt +/* 52024: 02002025 */ or $a0,$s0,$zero +/* 52028: 00001025 */ or $v0,$zero,$zero +.L0005202c: +/* 5202c: 8fbf001c */ lw $ra,0x1c($sp) +/* 52030: 8fb00014 */ lw $s0,0x14($sp) +/* 52034: 8fb10018 */ lw $s1,0x18($sp) +/* 52038: 03e00008 */ jr $ra +/* 5203c: 27bd0028 */ addiu $sp,$sp,0x28 +); diff --git a/src/lib/ultra/os/maptlb.c b/src/lib/ultra/os/maptlb.c new file mode 100644 index 000000000..62e3ba726 --- /dev/null +++ b/src/lib/ultra/os/maptlb.c @@ -0,0 +1,59 @@ +#include + +GLOBAL_ASM( +glabel osMapTLB +/* 4e1b0: 40085000 */ mfc0 $t0,$10 +/* 4e1b4: 40840000 */ mtc0 $a0,$0 +/* 4e1b8: 40852800 */ mtc0 $a1,$5 +/* 4e1bc: 8fa90014 */ lw $t1,0x14($sp) +/* 4e1c0: 2401ffff */ addiu $at,$zero,-1 +/* 4e1c4: 11210004 */ beq $t1,$at,.L0004e1d8 +/* 4e1c8: 240c0001 */ addiu $t4,$zero,0x1 +/* 4e1cc: 240a001e */ addiu $t2,$zero,0x1e +/* 4e1d0: 10000002 */ b .L0004e1dc +/* 4e1d4: 00c93025 */ or $a2,$a2,$t1 +.L0004e1d8: +/* 4e1d8: 240a001f */ addiu $t2,$zero,0x1f +.L0004e1dc: +/* 4e1dc: 40865000 */ mtc0 $a2,$10 +/* 4e1e0: 2401ffff */ addiu $at,$zero,-1 +/* 4e1e4: 10e10006 */ beq $a3,$at,.L0004e200 +/* 4e1e8: 00000000 */ nop +/* 4e1ec: 00075982 */ srl $t3,$a3,0x6 +/* 4e1f0: 016a5825 */ or $t3,$t3,$t2 +/* 4e1f4: 408b1000 */ mtc0 $t3,$2 +/* 4e1f8: 10000002 */ b .L0004e204 +/* 4e1fc: 00000000 */ nop +.L0004e200: +/* 4e200: 408c1000 */ mtc0 $t4,$2 +.L0004e204: +/* 4e204: 8fab0010 */ lw $t3,0x10($sp) +/* 4e208: 2401ffff */ addiu $at,$zero,-1 +/* 4e20c: 11610006 */ beq $t3,$at,.L0004e228 +/* 4e210: 00000000 */ nop +/* 4e214: 000b5982 */ srl $t3,$t3,0x6 +/* 4e218: 016a5825 */ or $t3,$t3,$t2 +/* 4e21c: 408b1800 */ mtc0 $t3,$3 +/* 4e220: 10000007 */ b .L0004e240 +/* 4e224: 00000000 */ nop +.L0004e228: +/* 4e228: 408c1800 */ mtc0 $t4,$3 +/* 4e22c: 2401ffff */ addiu $at,$zero,-1 +/* 4e230: 14e10003 */ bne $a3,$at,.L0004e240 +/* 4e234: 00000000 */ nop +/* 4e238: 3c0b8000 */ lui $t3,0x8000 +/* 4e23c: 408b5000 */ mtc0 $t3,$10 +.L0004e240: +/* 4e240: 00000000 */ nop +/* 4e244: 42000002 */ tlbwi +/* 4e248: 00000000 */ nop +/* 4e24c: 00000000 */ nop +/* 4e250: 00000000 */ nop +/* 4e254: 00000000 */ nop +/* 4e258: 40885000 */ mtc0 $t0,$10 +/* 4e25c: 03e00008 */ jr $ra +/* 4e260: 00000000 */ nop +/* 4e264: 00000000 */ nop +/* 4e268: 00000000 */ nop +/* 4e26c: 00000000 */ nop +); diff --git a/src/lib/lib_51c60.c b/src/lib/ultra/os/probetlb.c similarity index 68% rename from src/lib/lib_51c60.c rename to src/lib/ultra/os/probetlb.c index 3311cb4e1..1a3252023 100644 --- a/src/lib/lib_51c60.c +++ b/src/lib/ultra/os/probetlb.c @@ -1,32 +1,4 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "types.h" - -GLOBAL_ASM( -glabel __osSiDeviceBusy -/* 51c60: 3c0ea480 */ lui $t6,0xa480 -/* 51c64: 8dc40018 */ lw $a0,0x18($t6) -/* 51c68: 27bdfff8 */ addiu $sp,$sp,-8 -/* 51c6c: 308f0003 */ andi $t7,$a0,0x3 -/* 51c70: 11e00003 */ beqz $t7,.L00051c80 -/* 51c74: 00000000 */ nop -/* 51c78: 10000002 */ b .L00051c84 -/* 51c7c: 24020001 */ addiu $v0,$zero,0x1 -.L00051c80: -/* 51c80: 00001025 */ or $v0,$zero,$zero -.L00051c84: -/* 51c84: 03e00008 */ jr $ra -/* 51c88: 27bd0008 */ addiu $sp,$sp,0x8 -/* 51c8c: 00000000 */ nop -); +#include GLOBAL_ASM( glabel __osProbeTLB @@ -82,4 +54,4 @@ glabel __osProbeTLB /* 51d44: 00000000 */ nop /* 51d48: 00000000 */ nop /* 51d4c: 00000000 */ nop -); \ No newline at end of file +); diff --git a/src/lib/lib_48650.c b/src/lib/ultra/os/recvmesg.c similarity index 61% rename from src/lib/lib_48650.c rename to src/lib/ultra/os/recvmesg.c index b16b7d8f3..88aaf1b8f 100644 --- a/src/lib/lib_48650.c +++ b/src/lib/ultra/os/recvmesg.c @@ -1,62 +1,4 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_034f0.h" -#include "lib/lib_481e0.h" -#include "lib/lib_491b0.h" -#include "types.h" - -GLOBAL_ASM( -glabel osSetIntMask -/* 48650: 400c6000 */ mfc0 $t4,$12 -/* 48654: 3182ff01 */ andi $v0,$t4,0xff01 -/* 48658: 3c088006 */ lui $t0,%hi(var8005cf70) -/* 4865c: 2508cf70 */ addiu $t0,$t0,%lo(var8005cf70) -/* 48660: 8d0b0000 */ lw $t3,0x0($t0) -/* 48664: 2401ffff */ addiu $at,$zero,-1 -/* 48668: 01614026 */ xor $t0,$t3,$at -/* 4866c: 3108ff00 */ andi $t0,$t0,0xff00 -/* 48670: 00481025 */ or $v0,$v0,$t0 -/* 48674: 3c0aa430 */ lui $t2,0xa430 -/* 48678: 8d4a000c */ lw $t2,0xc($t2) -/* 4867c: 11400005 */ beqz $t2,.L00048694 -/* 48680: 000b4c02 */ srl $t1,$t3,0x10 -/* 48684: 2401ffff */ addiu $at,$zero,-1 -/* 48688: 01214826 */ xor $t1,$t1,$at -/* 4868c: 3129003f */ andi $t1,$t1,0x3f -/* 48690: 01495025 */ or $t2,$t2,$t1 -.L00048694: -/* 48694: 000a5400 */ sll $t2,$t2,0x10 -/* 48698: 004a1025 */ or $v0,$v0,$t2 -/* 4869c: 3c01003f */ lui $at,0x3f -/* 486a0: 00814024 */ and $t0,$a0,$at -/* 486a4: 010b4024 */ and $t0,$t0,$t3 -/* 486a8: 000843c2 */ srl $t0,$t0,0xf -/* 486ac: 3c0a7006 */ lui $t2,%hi(var70059e30) -/* 486b0: 01485021 */ addu $t2,$t2,$t0 -/* 486b4: 954a9e30 */ lhu $t2,%lo(var70059e30)($t2) -/* 486b8: 3c01a430 */ lui $at,0xa430 -/* 486bc: ac2a000c */ sw $t2,0xc($at) -/* 486c0: 3088ff01 */ andi $t0,$a0,0xff01 -/* 486c4: 3169ff00 */ andi $t1,$t3,0xff00 -/* 486c8: 01094024 */ and $t0,$t0,$t1 -/* 486cc: 3c01ffff */ lui $at,0xffff -/* 486d0: 342100ff */ ori $at,$at,0xff -/* 486d4: 01816024 */ and $t4,$t4,$at -/* 486d8: 01886025 */ or $t4,$t4,$t0 -/* 486dc: 408c6000 */ mtc0 $t4,$12 -/* 486e0: 00000000 */ nop -/* 486e4: 00000000 */ nop -/* 486e8: 03e00008 */ jr $ra -/* 486ec: 00000000 */ nop -); +#include GLOBAL_ASM( glabel osRecvMesg @@ -148,4 +90,4 @@ glabel osRecvMesg /* 48824: 27bd0028 */ addiu $sp,$sp,0x28 /* 48828: 00000000 */ nop /* 4882c: 00000000 */ nop -); \ No newline at end of file +); diff --git a/src/lib/ultra/os/resetglobalintmask.c b/src/lib/ultra/os/resetglobalintmask.c new file mode 100644 index 000000000..8e9a5d603 --- /dev/null +++ b/src/lib/ultra/os/resetglobalintmask.c @@ -0,0 +1,29 @@ +#include + +GLOBAL_ASM( +glabel __osResetGlobalIntMask +/* 518a0: 27bdffd8 */ addiu $sp,$sp,-40 +/* 518a4: afbf001c */ sw $ra,0x1c($sp) +/* 518a8: afa40028 */ sw $a0,0x28($sp) +/* 518ac: 0c01256c */ jal __osDisableInt +/* 518b0: afb00018 */ sw $s0,0x18($sp) +/* 518b4: 8faf0028 */ lw $t7,0x28($sp) +/* 518b8: 3c0e8006 */ lui $t6,%hi(var8005cf70) +/* 518bc: 8dcecf70 */ lw $t6,%lo(var8005cf70)($t6) +/* 518c0: 2401fbfe */ addiu $at,$zero,-1026 +/* 518c4: 01e1c024 */ and $t8,$t7,$at +/* 518c8: 0300c827 */ nor $t9,$t8,$zero +/* 518cc: 00408025 */ or $s0,$v0,$zero +/* 518d0: 3c018006 */ lui $at,%hi(var8005cf70) +/* 518d4: 01d94024 */ and $t0,$t6,$t9 +/* 518d8: ac28cf70 */ sw $t0,%lo(var8005cf70)($at) +/* 518dc: 0c012588 */ jal __osRestoreInt +/* 518e0: 02002025 */ or $a0,$s0,$zero +/* 518e4: 8fbf001c */ lw $ra,0x1c($sp) +/* 518e8: 8fb00018 */ lw $s0,0x18($sp) +/* 518ec: 27bd0028 */ addiu $sp,$sp,0x28 +/* 518f0: 03e00008 */ jr $ra +/* 518f4: 00000000 */ nop +/* 518f8: 00000000 */ nop +/* 518fc: 00000000 */ nop +); diff --git a/src/lib/lib_488e0.c b/src/lib/ultra/os/sendmesg.c similarity index 54% rename from src/lib/lib_488e0.c rename to src/lib/ultra/os/sendmesg.c index eae68fff2..0f57eb3e3 100644 --- a/src/lib/lib_488e0.c +++ b/src/lib/ultra/os/sendmesg.c @@ -1,18 +1,4 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_034f0.h" -#include "lib/lib_481e0.h" -#include "lib/lib_491b0.h" -#include "lib/lib_51880.h" -#include "types.h" +#include GLOBAL_ASM( glabel osSendMesg @@ -109,71 +95,3 @@ glabel osSendMesg /* 48a28: 27bd0038 */ addiu $sp,$sp,0x38 /* 48a2c: 00000000 */ nop ); - -GLOBAL_ASM( -glabel osStopTimer -/* 48a30: 27bdffd0 */ addiu $sp,$sp,-48 -/* 48a34: afa40030 */ sw $a0,0x30($sp) -/* 48a38: 8fae0030 */ lw $t6,0x30($sp) -/* 48a3c: afbf001c */ sw $ra,0x1c($sp) -/* 48a40: afb00018 */ sw $s0,0x18($sp) -/* 48a44: 8dcf0000 */ lw $t7,0x0($t6) -/* 48a48: 15e00003 */ bnez $t7,.L00048a58 -/* 48a4c: 00000000 */ nop -/* 48a50: 1000002c */ b .L00048b04 -/* 48a54: 2402ffff */ addiu $v0,$zero,-1 -.L00048a58: -/* 48a58: 0c01256c */ jal __osDisableInt -/* 48a5c: 00000000 */ nop -/* 48a60: 8fb80030 */ lw $t8,0x30($sp) -/* 48a64: 3c088006 */ lui $t0,%hi(var800608a0) -/* 48a68: 8d0808a0 */ lw $t0,%lo(var800608a0)($t0) -/* 48a6c: 8f190000 */ lw $t9,0x0($t8) -/* 48a70: 00408025 */ or $s0,$v0,$zero -/* 48a74: 1328000d */ beq $t9,$t0,.L00048aac -/* 48a78: afb90028 */ sw $t9,0x28($sp) -/* 48a7c: 27290010 */ addiu $t1,$t9,0x10 -/* 48a80: afa90024 */ sw $t1,0x24($sp) -/* 48a84: 8d2b0004 */ lw $t3,0x4($t1) -/* 48a88: 8f0d0014 */ lw $t5,0x14($t8) -/* 48a8c: 8d2a0000 */ lw $t2,0x0($t1) -/* 48a90: 8f0c0010 */ lw $t4,0x10($t8) -/* 48a94: 016d7821 */ addu $t7,$t3,$t5 -/* 48a98: 01ed082b */ sltu $at,$t7,$t5 -/* 48a9c: 002a7021 */ addu $t6,$at,$t2 -/* 48aa0: 01cc7021 */ addu $t6,$t6,$t4 -/* 48aa4: ad2e0000 */ sw $t6,0x0($t1) -/* 48aa8: ad2f0004 */ sw $t7,0x4($t1) -.L00048aac: -/* 48aac: 8fa80030 */ lw $t0,0x30($sp) -/* 48ab0: 3c0f8006 */ lui $t7,%hi(var800608a0) -/* 48ab4: 8d190000 */ lw $t9,0x0($t0) -/* 48ab8: 8d180004 */ lw $t8,0x4($t0) -/* 48abc: af190000 */ sw $t9,0x0($t8) -/* 48ac0: 8faa0030 */ lw $t2,0x30($sp) -/* 48ac4: 8d4b0004 */ lw $t3,0x4($t2) -/* 48ac8: 8d4c0000 */ lw $t4,0x0($t2) -/* 48acc: ad8b0004 */ sw $t3,0x4($t4) -/* 48ad0: 8fad0030 */ lw $t5,0x30($sp) -/* 48ad4: ada00000 */ sw $zero,0x0($t5) -/* 48ad8: 8fae0030 */ lw $t6,0x30($sp) -/* 48adc: adc00004 */ sw $zero,0x4($t6) -/* 48ae0: 8def08a0 */ lw $t7,%lo(var800608a0)($t7) -/* 48ae4: 8de90000 */ lw $t1,0x0($t7) -/* 48ae8: 152f0003 */ bne $t1,$t7,.L00048af8 -/* 48aec: 00000000 */ nop -/* 48af0: 0c014620 */ jal __osSetCompare -/* 48af4: 00002025 */ or $a0,$zero,$zero -.L00048af8: -/* 48af8: 0c012588 */ jal __osRestoreInt -/* 48afc: 02002025 */ or $a0,$s0,$zero -/* 48b00: 00001025 */ or $v0,$zero,$zero -.L00048b04: -/* 48b04: 8fbf001c */ lw $ra,0x1c($sp) -/* 48b08: 8fb00018 */ lw $s0,0x18($sp) -/* 48b0c: 27bd0030 */ addiu $sp,$sp,0x30 -/* 48b10: 03e00008 */ jr $ra -/* 48b14: 00000000 */ nop -/* 48b18: 00000000 */ nop -/* 48b1c: 00000000 */ nop -); \ No newline at end of file diff --git a/src/lib/ultra/os/setcompare.c b/src/lib/ultra/os/setcompare.c new file mode 100644 index 000000000..9fd271eba --- /dev/null +++ b/src/lib/ultra/os/setcompare.c @@ -0,0 +1,9 @@ +#include + +GLOBAL_ASM( +glabel __osSetCompare +/* 51880: 40845800 */ mtc0 $a0,$11 +/* 51884: 03e00008 */ jr $ra +/* 51888: 00000000 */ nop +/* 5188c: 00000000 */ nop +); diff --git a/src/lib/lib_48520.c b/src/lib/ultra/os/seteventmesg.c similarity index 84% rename from src/lib/lib_48520.c rename to src/lib/ultra/os/seteventmesg.c index 2a7b2213a..e07cc1305 100644 --- a/src/lib/lib_48520.c +++ b/src/lib/ultra/os/seteventmesg.c @@ -1,16 +1,4 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_488e0.h" -#include "lib/lib_491b0.h" -#include "types.h" +#include GLOBAL_ASM( glabel osSetEventMesg @@ -64,4 +52,4 @@ glabel osSetEventMesg /* 485d4: 00000000 */ nop /* 485d8: 00000000 */ nop /* 485dc: 00000000 */ nop -); \ No newline at end of file +); diff --git a/src/lib/ultra/os/setfpccsr.c b/src/lib/ultra/os/setfpccsr.c new file mode 100644 index 000000000..fd1550ec0 --- /dev/null +++ b/src/lib/ultra/os/setfpccsr.c @@ -0,0 +1,9 @@ +#include + +GLOBAL_ASM( +glabel __osSetFpcCsr +/* 481e0: 4442f800 */ cfc1 $v0,$31 +/* 481e4: 44c4f800 */ ctc1 $a0,$31 +/* 481e8: 03e00008 */ jr $ra +/* 481ec: 00000000 */ nop +); diff --git a/src/lib/ultra/os/setglobalintmask.c b/src/lib/ultra/os/setglobalintmask.c new file mode 100644 index 000000000..c45c8ae8c --- /dev/null +++ b/src/lib/ultra/os/setglobalintmask.c @@ -0,0 +1,25 @@ +#include + +GLOBAL_ASM( +glabel __osSetGlobalIntMask +/* 51bc0: 27bdffd8 */ addiu $sp,$sp,-40 +/* 51bc4: afbf001c */ sw $ra,0x1c($sp) +/* 51bc8: afa40028 */ sw $a0,0x28($sp) +/* 51bcc: 0c01256c */ jal __osDisableInt +/* 51bd0: afb00018 */ sw $s0,0x18($sp) +/* 51bd4: 3c0e8006 */ lui $t6,%hi(var8005cf70) +/* 51bd8: 8dcecf70 */ lw $t6,%lo(var8005cf70)($t6) +/* 51bdc: 8faf0028 */ lw $t7,0x28($sp) +/* 51be0: 00408025 */ or $s0,$v0,$zero +/* 51be4: 3c018006 */ lui $at,%hi(var8005cf70) +/* 51be8: 01cfc025 */ or $t8,$t6,$t7 +/* 51bec: ac38cf70 */ sw $t8,%lo(var8005cf70)($at) +/* 51bf0: 0c012588 */ jal __osRestoreInt +/* 51bf4: 02002025 */ or $a0,$s0,$zero +/* 51bf8: 8fbf001c */ lw $ra,0x1c($sp) +/* 51bfc: 8fb00018 */ lw $s0,0x18($sp) +/* 51c00: 27bd0028 */ addiu $sp,$sp,0x28 +/* 51c04: 03e00008 */ jr $ra +/* 51c08: 00000000 */ nop +/* 51c0c: 00000000 */ nop +); diff --git a/src/lib/ultra/os/setintmask.c b/src/lib/ultra/os/setintmask.c new file mode 100644 index 000000000..386166334 --- /dev/null +++ b/src/lib/ultra/os/setintmask.c @@ -0,0 +1,46 @@ +#include + +GLOBAL_ASM( +glabel osSetIntMask +/* 48650: 400c6000 */ mfc0 $t4,$12 +/* 48654: 3182ff01 */ andi $v0,$t4,0xff01 +/* 48658: 3c088006 */ lui $t0,%hi(var8005cf70) +/* 4865c: 2508cf70 */ addiu $t0,$t0,%lo(var8005cf70) +/* 48660: 8d0b0000 */ lw $t3,0x0($t0) +/* 48664: 2401ffff */ addiu $at,$zero,-1 +/* 48668: 01614026 */ xor $t0,$t3,$at +/* 4866c: 3108ff00 */ andi $t0,$t0,0xff00 +/* 48670: 00481025 */ or $v0,$v0,$t0 +/* 48674: 3c0aa430 */ lui $t2,0xa430 +/* 48678: 8d4a000c */ lw $t2,0xc($t2) +/* 4867c: 11400005 */ beqz $t2,.L00048694 +/* 48680: 000b4c02 */ srl $t1,$t3,0x10 +/* 48684: 2401ffff */ addiu $at,$zero,-1 +/* 48688: 01214826 */ xor $t1,$t1,$at +/* 4868c: 3129003f */ andi $t1,$t1,0x3f +/* 48690: 01495025 */ or $t2,$t2,$t1 +.L00048694: +/* 48694: 000a5400 */ sll $t2,$t2,0x10 +/* 48698: 004a1025 */ or $v0,$v0,$t2 +/* 4869c: 3c01003f */ lui $at,0x3f +/* 486a0: 00814024 */ and $t0,$a0,$at +/* 486a4: 010b4024 */ and $t0,$t0,$t3 +/* 486a8: 000843c2 */ srl $t0,$t0,0xf +/* 486ac: 3c0a7006 */ lui $t2,%hi(var70059e30) +/* 486b0: 01485021 */ addu $t2,$t2,$t0 +/* 486b4: 954a9e30 */ lhu $t2,%lo(var70059e30)($t2) +/* 486b8: 3c01a430 */ lui $at,0xa430 +/* 486bc: ac2a000c */ sw $t2,0xc($at) +/* 486c0: 3088ff01 */ andi $t0,$a0,0xff01 +/* 486c4: 3169ff00 */ andi $t1,$t3,0xff00 +/* 486c8: 01094024 */ and $t0,$t0,$t1 +/* 486cc: 3c01ffff */ lui $at,0xffff +/* 486d0: 342100ff */ ori $at,$at,0xff +/* 486d4: 01816024 */ and $t4,$t4,$at +/* 486d8: 01886025 */ or $t4,$t4,$t0 +/* 486dc: 408c6000 */ mtc0 $t4,$12 +/* 486e0: 00000000 */ nop +/* 486e4: 00000000 */ nop +/* 486e8: 03e00008 */ jr $ra +/* 486ec: 00000000 */ nop +); diff --git a/src/lib/ultra/os/setsr.c b/src/lib/ultra/os/setsr.c new file mode 100644 index 000000000..fae9d434f --- /dev/null +++ b/src/lib/ultra/os/setsr.c @@ -0,0 +1,9 @@ +#include + +GLOBAL_ASM( +glabel __osSetSR +/* 4acc0: 40846000 */ mtc0 $a0,$12 +/* 4acc4: 00000000 */ nop +/* 4acc8: 03e00008 */ jr $ra +/* 4accc: 00000000 */ nop +); diff --git a/src/lib/ultra/os/setthreadpri.c b/src/lib/ultra/os/setthreadpri.c new file mode 100644 index 000000000..c68a020e5 --- /dev/null +++ b/src/lib/ultra/os/setthreadpri.c @@ -0,0 +1,64 @@ +#include + +GLOBAL_ASM( +glabel osSetThreadPri +/* 48430: 27bdffd8 */ addiu $sp,$sp,-40 +/* 48434: afbf001c */ sw $ra,0x1c($sp) +/* 48438: afa40028 */ sw $a0,0x28($sp) +/* 4843c: afa5002c */ sw $a1,0x2c($sp) +/* 48440: 0c01256c */ jal __osDisableInt +/* 48444: afb00018 */ sw $s0,0x18($sp) +/* 48448: 8fae0028 */ lw $t6,0x28($sp) +/* 4844c: 00408025 */ or $s0,$v0,$zero +/* 48450: 15c00004 */ bnez $t6,.L00048464 +/* 48454: 00000000 */ nop +/* 48458: 3c0f8006 */ lui $t7,%hi(__osRunningThread) +/* 4845c: 8def0940 */ lw $t7,%lo(__osRunningThread)($t7) +/* 48460: afaf0028 */ sw $t7,0x28($sp) +.L00048464: +/* 48464: 8fb80028 */ lw $t8,0x28($sp) +/* 48468: 8fa8002c */ lw $t0,0x2c($sp) +/* 4846c: 8f190004 */ lw $t9,0x4($t8) +/* 48470: 13280020 */ beq $t9,$t0,.L000484f4 +/* 48474: 00000000 */ nop +/* 48478: af080004 */ sw $t0,0x4($t8) +/* 4847c: 3c0a8006 */ lui $t2,%hi(__osRunningThread) +/* 48480: 8d4a0940 */ lw $t2,%lo(__osRunningThread)($t2) +/* 48484: 8fa90028 */ lw $t1,0x28($sp) +/* 48488: 112a000c */ beq $t1,$t2,.L000484bc +/* 4848c: 00000000 */ nop +/* 48490: 952b0010 */ lhu $t3,0x10($t1) +/* 48494: 24010001 */ addiu $at,$zero,0x1 +/* 48498: 11610008 */ beq $t3,$at,.L000484bc +/* 4849c: 00000000 */ nop +/* 484a0: 8d240008 */ lw $a0,0x8($t1) +/* 484a4: 0c012884 */ jal __osDequeueThread +/* 484a8: 01202825 */ or $a1,$t1,$zero +/* 484ac: 8fac0028 */ lw $t4,0x28($sp) +/* 484b0: 8d840008 */ lw $a0,0x8($t4) +/* 484b4: 0c000f2e */ jal __osEnqueueThread +/* 484b8: 01802825 */ or $a1,$t4,$zero +.L000484bc: +/* 484bc: 3c0d8006 */ lui $t5,%hi(__osRunningThread) +/* 484c0: 3c0f8006 */ lui $t7,%hi(var80060938) +/* 484c4: 8def0938 */ lw $t7,%lo(var80060938)($t7) +/* 484c8: 8dad0940 */ lw $t5,%lo(__osRunningThread)($t5) +/* 484cc: 8df90004 */ lw $t9,0x4($t7) +/* 484d0: 8dae0004 */ lw $t6,0x4($t5) +/* 484d4: 01d9082a */ slt $at,$t6,$t9 +/* 484d8: 10200006 */ beqz $at,.L000484f4 +/* 484dc: 00000000 */ nop +/* 484e0: 24080002 */ addiu $t0,$zero,0x2 +/* 484e4: 3c048006 */ lui $a0,%hi(var80060938) +/* 484e8: a5a80010 */ sh $t0,0x10($t5) +/* 484ec: 0c000ee8 */ jal __osEnqueueAndYield +/* 484f0: 24840938 */ addiu $a0,$a0,%lo(var80060938) +.L000484f4: +/* 484f4: 0c012588 */ jal __osRestoreInt +/* 484f8: 02002025 */ or $a0,$s0,$zero +/* 484fc: 8fbf001c */ lw $ra,0x1c($sp) +/* 48500: 8fb00018 */ lw $s0,0x18($sp) +/* 48504: 27bd0028 */ addiu $sp,$sp,0x28 +/* 48508: 03e00008 */ jr $ra +/* 4850c: 00000000 */ nop +); diff --git a/src/lib/lib_48b20.c b/src/lib/ultra/os/settimer.c similarity index 87% rename from src/lib/lib_48b20.c rename to src/lib/ultra/os/settimer.c index 689918f17..1a1061fa2 100644 --- a/src/lib/lib_48b20.c +++ b/src/lib/ultra/os/settimer.c @@ -1,15 +1,4 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_491b0.h" -#include "types.h" +#include GLOBAL_ASM( glabel osSetTimer @@ -73,4 +62,4 @@ glabel osSetTimer /* 48bf4: 00000000 */ nop /* 48bf8: 00000000 */ nop /* 48bfc: 00000000 */ nop -); \ No newline at end of file +); diff --git a/src/lib/ultra/os/startthread.c b/src/lib/ultra/os/startthread.c new file mode 100644 index 000000000..470ca9a97 --- /dev/null +++ b/src/lib/ultra/os/startthread.c @@ -0,0 +1,95 @@ +#include + +GLOBAL_ASM( +glabel osStartThread +/* 481f0: 27bdffd8 */ addiu $sp,$sp,-40 +/* 481f4: afbf001c */ sw $ra,0x1c($sp) +/* 481f8: afa40028 */ sw $a0,0x28($sp) +/* 481fc: afb10018 */ sw $s1,0x18($sp) +/* 48200: 0c01256c */ jal __osDisableInt +/* 48204: afb00014 */ sw $s0,0x14($sp) +/* 48208: 8fae0028 */ lw $t6,0x28($sp) +/* 4820c: 24010001 */ addiu $at,$zero,0x1 +/* 48210: 00408025 */ or $s0,$v0,$zero +/* 48214: 95d10010 */ lhu $s1,0x10($t6) +/* 48218: 1221000c */ beq $s1,$at,.L0004824c +/* 4821c: 24010008 */ addiu $at,$zero,0x8 +/* 48220: 1621002a */ bne $s1,$at,.L000482cc +/* 48224: 00000000 */ nop +/* 48228: 8fb80028 */ lw $t8,0x28($sp) +/* 4822c: 240f0002 */ addiu $t7,$zero,0x2 +/* 48230: 3c048006 */ lui $a0,%hi(var80060938) +/* 48234: a70f0010 */ sh $t7,0x10($t8) +/* 48238: 8fa50028 */ lw $a1,0x28($sp) +/* 4823c: 0c000f2e */ jal __osEnqueueThread +/* 48240: 24840938 */ addiu $a0,$a0,%lo(var80060938) +/* 48244: 10000021 */ b .L000482cc +/* 48248: 00000000 */ nop +.L0004824c: +/* 4824c: 8fb90028 */ lw $t9,0x28($sp) +/* 48250: 8f280008 */ lw $t0,0x8($t9) +/* 48254: 11000005 */ beqz $t0,.L0004826c +/* 48258: 00000000 */ nop +/* 4825c: 3c098006 */ lui $t1,%hi(var80060938) +/* 48260: 25290938 */ addiu $t1,$t1,%lo(var80060938) +/* 48264: 1509000a */ bne $t0,$t1,.L00048290 +/* 48268: 00000000 */ nop +.L0004826c: +/* 4826c: 8fab0028 */ lw $t3,0x28($sp) +/* 48270: 240a0002 */ addiu $t2,$zero,0x2 +/* 48274: 3c048006 */ lui $a0,%hi(var80060938) +/* 48278: a56a0010 */ sh $t2,0x10($t3) +/* 4827c: 8fa50028 */ lw $a1,0x28($sp) +/* 48280: 0c000f2e */ jal __osEnqueueThread +/* 48284: 24840938 */ addiu $a0,$a0,%lo(var80060938) +/* 48288: 10000010 */ b .L000482cc +/* 4828c: 00000000 */ nop +.L00048290: +/* 48290: 8fad0028 */ lw $t5,0x28($sp) +/* 48294: 240c0008 */ addiu $t4,$zero,0x8 +/* 48298: a5ac0010 */ sh $t4,0x10($t5) +/* 4829c: 8fae0028 */ lw $t6,0x28($sp) +/* 482a0: 8dc40008 */ lw $a0,0x8($t6) +/* 482a4: 0c000f2e */ jal __osEnqueueThread +/* 482a8: 01c02825 */ or $a1,$t6,$zero +/* 482ac: 8faf0028 */ lw $t7,0x28($sp) +/* 482b0: 0c000f40 */ jal __osPopThread +/* 482b4: 8de40008 */ lw $a0,0x8($t7) +/* 482b8: 00408825 */ or $s1,$v0,$zero +/* 482bc: 3c048006 */ lui $a0,%hi(var80060938) +/* 482c0: 24840938 */ addiu $a0,$a0,%lo(var80060938) +/* 482c4: 0c000f2e */ jal __osEnqueueThread +/* 482c8: 02202825 */ or $a1,$s1,$zero +.L000482cc: +/* 482cc: 3c188006 */ lui $t8,%hi(__osRunningThread) +/* 482d0: 8f180940 */ lw $t8,%lo(__osRunningThread)($t8) +/* 482d4: 17000005 */ bnez $t8,.L000482ec +/* 482d8: 00000000 */ nop +/* 482dc: 0c000f44 */ jal __osDispatchThread +/* 482e0: 00000000 */ nop +/* 482e4: 1000000f */ b .L00048324 +/* 482e8: 00000000 */ nop +.L000482ec: +/* 482ec: 3c198006 */ lui $t9,%hi(__osRunningThread) +/* 482f0: 3c098006 */ lui $t1,%hi(var80060938) +/* 482f4: 8d290938 */ lw $t1,%lo(var80060938)($t1) +/* 482f8: 8f390940 */ lw $t9,%lo(__osRunningThread)($t9) +/* 482fc: 8d2a0004 */ lw $t2,0x4($t1) +/* 48300: 8f280004 */ lw $t0,0x4($t9) +/* 48304: 010a082a */ slt $at,$t0,$t2 +/* 48308: 10200006 */ beqz $at,.L00048324 +/* 4830c: 00000000 */ nop +/* 48310: 240b0002 */ addiu $t3,$zero,0x2 +/* 48314: 3c048006 */ lui $a0,%hi(var80060938) +/* 48318: a72b0010 */ sh $t3,0x10($t9) +/* 4831c: 0c000ee8 */ jal __osEnqueueAndYield +/* 48320: 24840938 */ addiu $a0,$a0,%lo(var80060938) +.L00048324: +/* 48324: 0c012588 */ jal __osRestoreInt +/* 48328: 02002025 */ or $a0,$s0,$zero +/* 4832c: 8fbf001c */ lw $ra,0x1c($sp) +/* 48330: 8fb00014 */ lw $s0,0x14($sp) +/* 48334: 8fb10018 */ lw $s1,0x18($sp) +/* 48338: 03e00008 */ jr $ra +/* 4833c: 27bd0028 */ addiu $sp,$sp,0x28 +); diff --git a/src/lib/ultra/os/stopthread.c b/src/lib/ultra/os/stopthread.c new file mode 100644 index 000000000..11a12f720 --- /dev/null +++ b/src/lib/ultra/os/stopthread.c @@ -0,0 +1,58 @@ +#include + +GLOBAL_ASM( +glabel osStopThread +/* 48370: 27bdffc8 */ addiu $sp,$sp,-56 +/* 48374: afbf0024 */ sw $ra,0x24($sp) +/* 48378: afa40038 */ sw $a0,0x38($sp) +/* 4837c: afb20020 */ sw $s2,0x20($sp) +/* 48380: afb1001c */ sw $s1,0x1c($sp) +/* 48384: 0c01256c */ jal __osDisableInt +/* 48388: afb00018 */ sw $s0,0x18($sp) +/* 4838c: 8fae0038 */ lw $t6,0x38($sp) +/* 48390: 00408025 */ or $s0,$v0,$zero +/* 48394: 15c00003 */ bnez $t6,.L000483a4 +/* 48398: 00000000 */ nop +/* 4839c: 10000003 */ b .L000483ac +/* 483a0: 24110004 */ addiu $s1,$zero,0x4 +.L000483a4: +/* 483a4: 8faf0038 */ lw $t7,0x38($sp) +/* 483a8: 95f10010 */ lhu $s1,0x10($t7) +.L000483ac: +/* 483ac: 02209025 */ or $s2,$s1,$zero +/* 483b0: 24010002 */ addiu $at,$zero,0x2 +/* 483b4: 1241000f */ beq $s2,$at,.L000483f4 +/* 483b8: 24010004 */ addiu $at,$zero,0x4 +/* 483bc: 12410005 */ beq $s2,$at,.L000483d4 +/* 483c0: 24010008 */ addiu $at,$zero,0x8 +/* 483c4: 1241000b */ beq $s2,$at,.L000483f4 +/* 483c8: 00000000 */ nop +/* 483cc: 10000010 */ b .L00048410 +/* 483d0: 00000000 */ nop +.L000483d4: +/* 483d4: 3c198006 */ lui $t9,%hi(__osRunningThread) +/* 483d8: 8f390940 */ lw $t9,%lo(__osRunningThread)($t9) +/* 483dc: 24180001 */ addiu $t8,$zero,0x1 +/* 483e0: 00002025 */ or $a0,$zero,$zero +/* 483e4: 0c000ee8 */ jal __osEnqueueAndYield +/* 483e8: a7380010 */ sh $t8,0x10($t9) +/* 483ec: 10000008 */ b .L00048410 +/* 483f0: 00000000 */ nop +.L000483f4: +/* 483f4: 8fa90038 */ lw $t1,0x38($sp) +/* 483f8: 24080001 */ addiu $t0,$zero,0x1 +/* 483fc: a5280010 */ sh $t0,0x10($t1) +/* 48400: 8faa0038 */ lw $t2,0x38($sp) +/* 48404: 8d440008 */ lw $a0,0x8($t2) +/* 48408: 0c012884 */ jal __osDequeueThread +/* 4840c: 01402825 */ or $a1,$t2,$zero +.L00048410: +/* 48410: 0c012588 */ jal __osRestoreInt +/* 48414: 02002025 */ or $a0,$s0,$zero +/* 48418: 8fbf0024 */ lw $ra,0x24($sp) +/* 4841c: 8fb00018 */ lw $s0,0x18($sp) +/* 48420: 8fb1001c */ lw $s1,0x1c($sp) +/* 48424: 8fb20020 */ lw $s2,0x20($sp) +/* 48428: 03e00008 */ jr $ra +/* 4842c: 27bd0038 */ addiu $sp,$sp,0x38 +); diff --git a/src/lib/ultra/os/stoptimer.c b/src/lib/ultra/os/stoptimer.c new file mode 100644 index 000000000..2cd8a8023 --- /dev/null +++ b/src/lib/ultra/os/stoptimer.c @@ -0,0 +1,69 @@ +#include + +GLOBAL_ASM( +glabel osStopTimer +/* 48a30: 27bdffd0 */ addiu $sp,$sp,-48 +/* 48a34: afa40030 */ sw $a0,0x30($sp) +/* 48a38: 8fae0030 */ lw $t6,0x30($sp) +/* 48a3c: afbf001c */ sw $ra,0x1c($sp) +/* 48a40: afb00018 */ sw $s0,0x18($sp) +/* 48a44: 8dcf0000 */ lw $t7,0x0($t6) +/* 48a48: 15e00003 */ bnez $t7,.L00048a58 +/* 48a4c: 00000000 */ nop +/* 48a50: 1000002c */ b .L00048b04 +/* 48a54: 2402ffff */ addiu $v0,$zero,-1 +.L00048a58: +/* 48a58: 0c01256c */ jal __osDisableInt +/* 48a5c: 00000000 */ nop +/* 48a60: 8fb80030 */ lw $t8,0x30($sp) +/* 48a64: 3c088006 */ lui $t0,%hi(var800608a0) +/* 48a68: 8d0808a0 */ lw $t0,%lo(var800608a0)($t0) +/* 48a6c: 8f190000 */ lw $t9,0x0($t8) +/* 48a70: 00408025 */ or $s0,$v0,$zero +/* 48a74: 1328000d */ beq $t9,$t0,.L00048aac +/* 48a78: afb90028 */ sw $t9,0x28($sp) +/* 48a7c: 27290010 */ addiu $t1,$t9,0x10 +/* 48a80: afa90024 */ sw $t1,0x24($sp) +/* 48a84: 8d2b0004 */ lw $t3,0x4($t1) +/* 48a88: 8f0d0014 */ lw $t5,0x14($t8) +/* 48a8c: 8d2a0000 */ lw $t2,0x0($t1) +/* 48a90: 8f0c0010 */ lw $t4,0x10($t8) +/* 48a94: 016d7821 */ addu $t7,$t3,$t5 +/* 48a98: 01ed082b */ sltu $at,$t7,$t5 +/* 48a9c: 002a7021 */ addu $t6,$at,$t2 +/* 48aa0: 01cc7021 */ addu $t6,$t6,$t4 +/* 48aa4: ad2e0000 */ sw $t6,0x0($t1) +/* 48aa8: ad2f0004 */ sw $t7,0x4($t1) +.L00048aac: +/* 48aac: 8fa80030 */ lw $t0,0x30($sp) +/* 48ab0: 3c0f8006 */ lui $t7,%hi(var800608a0) +/* 48ab4: 8d190000 */ lw $t9,0x0($t0) +/* 48ab8: 8d180004 */ lw $t8,0x4($t0) +/* 48abc: af190000 */ sw $t9,0x0($t8) +/* 48ac0: 8faa0030 */ lw $t2,0x30($sp) +/* 48ac4: 8d4b0004 */ lw $t3,0x4($t2) +/* 48ac8: 8d4c0000 */ lw $t4,0x0($t2) +/* 48acc: ad8b0004 */ sw $t3,0x4($t4) +/* 48ad0: 8fad0030 */ lw $t5,0x30($sp) +/* 48ad4: ada00000 */ sw $zero,0x0($t5) +/* 48ad8: 8fae0030 */ lw $t6,0x30($sp) +/* 48adc: adc00004 */ sw $zero,0x4($t6) +/* 48ae0: 8def08a0 */ lw $t7,%lo(var800608a0)($t7) +/* 48ae4: 8de90000 */ lw $t1,0x0($t7) +/* 48ae8: 152f0003 */ bne $t1,$t7,.L00048af8 +/* 48aec: 00000000 */ nop +/* 48af0: 0c014620 */ jal __osSetCompare +/* 48af4: 00002025 */ or $a0,$zero,$zero +.L00048af8: +/* 48af8: 0c012588 */ jal __osRestoreInt +/* 48afc: 02002025 */ or $a0,$s0,$zero +/* 48b00: 00001025 */ or $v0,$zero,$zero +.L00048b04: +/* 48b04: 8fbf001c */ lw $ra,0x1c($sp) +/* 48b08: 8fb00018 */ lw $s0,0x18($sp) +/* 48b0c: 27bd0030 */ addiu $sp,$sp,0x30 +/* 48b10: 03e00008 */ jr $ra +/* 48b14: 00000000 */ nop +/* 48b18: 00000000 */ nop +/* 48b1c: 00000000 */ nop +); diff --git a/src/lib/ultra/os/thread.c b/src/lib/ultra/os/thread.c new file mode 100644 index 000000000..372583a53 --- /dev/null +++ b/src/lib/ultra/os/thread.c @@ -0,0 +1,24 @@ +#include + +GLOBAL_ASM( +glabel __osDequeueThread +/* 4a210: 00803025 */ or $a2,$a0,$zero +/* 4a214: 8cc70000 */ lw $a3,0x0($a2) +/* 4a218: 27bdfff8 */ addiu $sp,$sp,-8 +/* 4a21c: 10e0000a */ beqz $a3,.L0004a248 +/* 4a220: 00000000 */ nop +.L0004a224: +/* 4a224: 14e50004 */ bne $a3,$a1,.L0004a238 +/* 4a228: 00000000 */ nop +/* 4a22c: 8cae0000 */ lw $t6,0x0($a1) +/* 4a230: 10000005 */ b .L0004a248 +/* 4a234: acce0000 */ sw $t6,0x0($a2) +.L0004a238: +/* 4a238: 00e03025 */ or $a2,$a3,$zero +/* 4a23c: 8cc70000 */ lw $a3,0x0($a2) +/* 4a240: 14e0fff8 */ bnez $a3,.L0004a224 +/* 4a244: 00000000 */ nop +.L0004a248: +/* 4a248: 03e00008 */ jr $ra +/* 4a24c: 27bd0008 */ addiu $sp,$sp,0x8 +); diff --git a/src/lib/lib_491b0.c b/src/lib/ultra/os/timerintr.c similarity index 85% rename from src/lib/lib_491b0.c rename to src/lib/ultra/os/timerintr.c index d597dc0d0..c1927dcd1 100644 --- a/src/lib/lib_491b0.c +++ b/src/lib/ultra/os/timerintr.c @@ -1,18 +1,4 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_481e0.h" -#include "lib/lib_488e0.h" -#include "lib/lib_491b0.h" -#include "lib/lib_51880.h" -#include "types.h" +#include GLOBAL_ASM( glabel __osTimerServicesInit @@ -295,48 +281,3 @@ glabel __osInsertTimer /* 495a8: 03e00008 */ jr $ra /* 495ac: 27bd0038 */ addiu $sp,$sp,0x38 ); - -GLOBAL_ASM( -glabel __osDisableInt -/* 495b0: 3c0a8006 */ lui $t2,%hi(var8005cf70) -/* 495b4: 254acf70 */ addiu $t2,$t2,%lo(var8005cf70) -/* 495b8: 8d4b0000 */ lw $t3,0x0($t2) -/* 495bc: 316bff00 */ andi $t3,$t3,0xff00 -/* 495c0: 40086000 */ mfc0 $t0,$12 -/* 495c4: 2401fffe */ addiu $at,$zero,-2 -/* 495c8: 01014824 */ and $t1,$t0,$at -/* 495cc: 40896000 */ mtc0 $t1,$12 -/* 495d0: 31020001 */ andi $v0,$t0,0x1 -/* 495d4: 8d480000 */ lw $t0,0x0($t2) -/* 495d8: 3108ff00 */ andi $t0,$t0,0xff00 -/* 495dc: 110b000e */ beq $t0,$t3,.L00049618 -/* 495e0: 3c0a8006 */ lui $t2,%hi(__osRunningThread) -/* 495e4: 254a0940 */ addiu $t2,$t2,%lo(__osRunningThread) -/* 495e8: 8d490118 */ lw $t1,0x118($t2) -/* 495ec: 312aff00 */ andi $t2,$t1,0xff00 -/* 495f0: 01485024 */ and $t2,$t2,$t0 -/* 495f4: 3c01ffff */ lui $at,0xffff -/* 495f8: 342100ff */ ori $at,$at,0xff -/* 495fc: 01214824 */ and $t1,$t1,$at -/* 49600: 012a4825 */ or $t1,$t1,$t2 -/* 49604: 2401fffe */ addiu $at,$zero,-2 -/* 49608: 01214824 */ and $t1,$t1,$at -/* 4960c: 40896000 */ mtc0 $t1,$12 -/* 49610: 00000000 */ nop -/* 49614: 00000000 */ nop -.L00049618: -/* 49618: 03e00008 */ jr $ra -/* 4961c: 00000000 */ nop -); - -GLOBAL_ASM( -glabel __osRestoreInt -/* 49620: 40086000 */ mfc0 $t0,$12 -/* 49624: 01044025 */ or $t0,$t0,$a0 -/* 49628: 40886000 */ mtc0 $t0,$12 -/* 4962c: 00000000 */ nop -/* 49630: 00000000 */ nop -/* 49634: 03e00008 */ jr $ra -/* 49638: 00000000 */ nop -/* 4963c: 00000000 */ nop -); \ No newline at end of file diff --git a/src/lib/lib_4b480.c b/src/lib/ultra/os/virtualtophysical.c similarity index 79% rename from src/lib/lib_4b480.c rename to src/lib/ultra/os/virtualtophysical.c index a71c81a39..efd2b0944 100644 --- a/src/lib/lib_4b480.c +++ b/src/lib/ultra/os/virtualtophysical.c @@ -1,15 +1,4 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_51c60.h" -#include "types.h" +#include GLOBAL_ASM( glabel osVirtualToPhysical @@ -48,4 +37,4 @@ glabel osVirtualToPhysical /* 4b4f4: 03e00008 */ jr $ra /* 4b4f8: 00000000 */ nop /* 4b4fc: 00000000 */ nop -); \ No newline at end of file +); diff --git a/src/lib/lib_4ad80.c b/src/lib/ultra/os/writebackdcache.c similarity index 80% rename from src/lib/lib_4ad80.c rename to src/lib/ultra/os/writebackdcache.c index db8eb7ee4..10738626c 100644 --- a/src/lib/lib_4ad80.c +++ b/src/lib/ultra/os/writebackdcache.c @@ -1,14 +1,4 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "types.h" +#include GLOBAL_ASM( glabel osWritebackDCache @@ -48,4 +38,4 @@ glabel osWritebackDCache /* 4adf4: 00000000 */ nop /* 4adf8: 00000000 */ nop /* 4adfc: 00000000 */ nop -); \ No newline at end of file +); diff --git a/src/lib/lib_51c10.c b/src/lib/ultra/os/yieldthread.c similarity index 70% rename from src/lib/lib_51c10.c rename to src/lib/ultra/os/yieldthread.c index 25ab02804..f5bedf215 100644 --- a/src/lib/lib_51c10.c +++ b/src/lib/ultra/os/yieldthread.c @@ -1,16 +1,4 @@ -#include -#include "constants.h" -#include "game/data/data_000000.h" -#include "game/data/data_0083d0.h" -#include "game/data/data_00e460.h" -#include "game/data/data_0160b0.h" -#include "game/data/data_01a3a0.h" -#include "game/data/data_020df0.h" -#include "game/data/data_02da90.h" -#include "gvars/gvars.h" -#include "lib/lib_034f0.h" -#include "lib/lib_491b0.h" -#include "types.h" +#include GLOBAL_ASM( glabel osYieldThread @@ -34,4 +22,4 @@ glabel osYieldThread /* 51c54: 03e00008 */ jr $ra /* 51c58: 00000000 */ nop /* 51c5c: 00000000 */ nop -); \ No newline at end of file +);