From 7e632e3ceb1fbc548d80dd92ccd772aa20368fba Mon Sep 17 00:00:00 2001 From: JoshDuMan Date: Mon, 21 Sep 2020 00:37:52 -0400 Subject: [PATCH] Decompile nuContRmbMgr --- Makefile | 2 +- .../os/code_3a850_le_a40/contRmbCheckMesg.s | 24 --- .../os/code_3a850_le_a40/contRmbControl.s | 116 ------------- .../os/code_3a850_le_a40/contRmbStartMesg.s | 91 ---------- .../os/code_3a850_le_a40/nuContRmbMgrRemove.s | 15 -- .../os/code_3a850_le_a40/osMotorStop.s | 150 ---------------- .../{osMotorAccess.s => __osMotorAccess.s} | 2 +- .../nuContRmbMgrInit.s | 0 papermario.ld | 26 +-- src/os/code_3a850_le_a40.c | 14 -- src/os/code_43200_len_7c0.c | 2 +- src/os/{ => nusys}/nuContDataGet.c | 0 src/os/{ => nusys}/nuContInit.c | 0 src/os/{ => nusys}/nuContPakMgr.c | 5 +- src/os/nusys/nuContRmbMgr.c | 162 ++++++++++++++++++ src/os/{ => nusys}/nuGfxDisplayOff.c | 0 src/os/{ => nusys}/nuGfxDisplayOn.c | 0 src/os/{ => nusys}/nuGfxFuncSet.c | 0 src/os/{ => nusys}/nuGfxInit.c | 2 +- src/os/{ => nusys}/nuGfxPreNMIFuncSet.c | 0 src/os/{ => nusys}/nuGfxSetCfb.c | 0 src/os/{ => nusys}/nuGfxTaskAllEndWait.c | 0 src/os/{ => nusys}/nuPiInit.c | 0 src/os/{ => nusys}/nuPiReadRom.c | 0 tools/splat.yaml | 26 +-- undefined_syms.txt | 10 +- 26 files changed, 201 insertions(+), 446 deletions(-) delete mode 100644 asm/nonmatchings/os/code_3a850_le_a40/contRmbCheckMesg.s delete mode 100644 asm/nonmatchings/os/code_3a850_le_a40/contRmbControl.s delete mode 100644 asm/nonmatchings/os/code_3a850_le_a40/contRmbStartMesg.s delete mode 100644 asm/nonmatchings/os/code_3a850_le_a40/nuContRmbMgrRemove.s delete mode 100644 asm/nonmatchings/os/code_3a850_le_a40/osMotorStop.s rename asm/nonmatchings/os/code_43200_len_7c0/{osMotorAccess.s => __osMotorAccess.s} (99%) rename asm/nonmatchings/os/{code_3a850_le_a40 => nuContRmbMgr}/nuContRmbMgrInit.s (100%) delete mode 100644 src/os/code_3a850_le_a40.c rename src/os/{ => nusys}/nuContDataGet.c (100%) rename src/os/{ => nusys}/nuContInit.c (100%) rename src/os/{ => nusys}/nuContPakMgr.c (94%) create mode 100644 src/os/nusys/nuContRmbMgr.c rename src/os/{ => nusys}/nuGfxDisplayOff.c (100%) rename src/os/{ => nusys}/nuGfxDisplayOn.c (100%) rename src/os/{ => nusys}/nuGfxFuncSet.c (100%) rename src/os/{ => nusys}/nuGfxInit.c (86%) rename src/os/{ => nusys}/nuGfxPreNMIFuncSet.c (100%) rename src/os/{ => nusys}/nuGfxSetCfb.c (100%) rename src/os/{ => nusys}/nuGfxTaskAllEndWait.c (100%) rename src/os/{ => nusys}/nuPiInit.c (100%) rename src/os/{ => nusys}/nuPiReadRom.c (100%) diff --git a/Makefile b/Makefile index 20f062eb23..7bcce6210c 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ SHELL=/bin/bash -o pipefail # BUILD_DIR is location where all build artifacts are placed BUILD_DIR = build -SRC_DIRS := src src/os +SRC_DIRS := src src/os src/os/nusys ASM_DIRS := asm asm/os INCLUDE_DIRS := include include/PR DATA_DIRS := bin diff --git a/asm/nonmatchings/os/code_3a850_le_a40/contRmbCheckMesg.s b/asm/nonmatchings/os/code_3a850_le_a40/contRmbCheckMesg.s deleted file mode 100644 index bed361ae45..0000000000 --- a/asm/nonmatchings/os/code_3a850_le_a40/contRmbCheckMesg.s +++ /dev/null @@ -1,24 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - - -glabel contRmbCheckMesg -/* 03B110 8005FD10 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 03B114 8005FD14 AFBF0010 */ sw $ra, 0x10($sp) -/* 03B118 8005FD18 8C82000C */ lw $v0, 0xc($a0) -/* 03B11C 8005FD1C 3C04800E */ lui $a0, 0x800e -/* 03B120 8005FD20 2484AC78 */ addiu $a0, $a0, -0x5388 -/* 03B124 8005FD24 90460000 */ lbu $a2, ($v0) -/* 03B128 8005FD28 3C02800E */ lui $v0, 0x800e -/* 03B12C 8005FD2C 2442AAD8 */ addiu $v0, $v0, -0x5528 -/* 03B130 8005FD30 00062840 */ sll $a1, $a2, 1 -/* 03B134 8005FD34 00A62821 */ addu $a1, $a1, $a2 -/* 03B138 8005FD38 00052880 */ sll $a1, $a1, 2 -/* 03B13C 8005FD3C 00A62821 */ addu $a1, $a1, $a2 -/* 03B140 8005FD40 000528C0 */ sll $a1, $a1, 3 -/* 03B144 8005FD44 0C019FD1 */ jal osMotorInit -/* 03B148 8005FD48 00A22821 */ addu $a1, $a1, $v0 -/* 03B14C 8005FD4C 8FBF0010 */ lw $ra, 0x10($sp) -/* 03B150 8005FD50 03E00008 */ jr $ra -/* 03B154 8005FD54 27BD0018 */ addiu $sp, $sp, 0x18 - diff --git a/asm/nonmatchings/os/code_3a850_le_a40/contRmbControl.s b/asm/nonmatchings/os/code_3a850_le_a40/contRmbControl.s deleted file mode 100644 index ebcf23ae6d..0000000000 --- a/asm/nonmatchings/os/code_3a850_le_a40/contRmbControl.s +++ /dev/null @@ -1,116 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - - -glabel contRmbControl -/* 03AF10 8005FB10 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 03AF14 8005FB14 AFB10014 */ sw $s1, 0x14($sp) -/* 03AF18 8005FB18 0000882D */ daddu $s1, $zero, $zero -/* 03AF1C 8005FB1C AFB40020 */ sw $s4, 0x20($sp) -/* 03AF20 8005FB20 24140002 */ addiu $s4, $zero, 2 -/* 03AF24 8005FB24 AFB50024 */ sw $s5, 0x24($sp) -/* 03AF28 8005FB28 24150001 */ addiu $s5, $zero, 1 -/* 03AF2C 8005FB2C AFB3001C */ sw $s3, 0x1c($sp) -/* 03AF30 8005FB30 0220982D */ daddu $s3, $s1, $zero -/* 03AF34 8005FB34 AFB20018 */ sw $s2, 0x18($sp) -/* 03AF38 8005FB38 0220902D */ daddu $s2, $s1, $zero -/* 03AF3C 8005FB3C AFBF0028 */ sw $ra, 0x28($sp) -/* 03AF40 8005FB40 AFB00010 */ sw $s0, 0x10($sp) -.L8005FB44: -/* 03AF44 8005FB44 3C02800B */ lui $v0, 0x800b -/* 03AF48 8005FB48 24421D40 */ addiu $v0, $v0, 0x1d40 -/* 03AF4C 8005FB4C 02428021 */ addu $s0, $s2, $v0 -/* 03AF50 8005FB50 92030007 */ lbu $v1, 7($s0) -/* 03AF54 8005FB54 10740015 */ beq $v1, $s4, .L8005FBAC -/* 03AF58 8005FB58 28620003 */ slti $v0, $v1, 3 -/* 03AF5C 8005FB5C 50400007 */ beql $v0, $zero, .L8005FB7C -/* 03AF60 8005FB60 28620083 */ slti $v0, $v1, 0x83 -/* 03AF64 8005FB64 5060003B */ beql $v1, $zero, .L8005FC54 -/* 03AF68 8005FB68 26730068 */ addiu $s3, $s3, 0x68 -/* 03AF6C 8005FB6C 10750009 */ beq $v1, $s5, .L8005FB94 -/* 03AF70 8005FB70 0200202D */ daddu $a0, $s0, $zero -/* 03AF74 8005FB74 08017F15 */ j .L8005FC54 -/* 03AF78 8005FB78 26730068 */ addiu $s3, $s3, 0x68 - -.L8005FB7C: -/* 03AF7C 8005FB7C 10400034 */ beqz $v0, .L8005FC50 -/* 03AF80 8005FB80 28620081 */ slti $v0, $v1, 0x81 -/* 03AF84 8005FB84 54400033 */ bnel $v0, $zero, .L8005FC54 -/* 03AF88 8005FB88 26730068 */ addiu $s3, $s3, 0x68 -/* 03AF8C 8005FB8C 08017F0E */ j .L8005FC38 -/* 03AF90 8005FB90 00000000 */ nop - -.L8005FB94: -/* 03AF94 8005FB94 0C017E48 */ jal osMotorStop -/* 03AF98 8005FB98 0220282D */ daddu $a1, $s1, $zero -/* 03AF9C 8005FB9C 5440002C */ bnel $v0, $zero, .L8005FC50 -/* 03AFA0 8005FBA0 A2000007 */ sb $zero, 7($s0) -/* 03AFA4 8005FBA4 08017F15 */ j .L8005FC54 -/* 03AFA8 8005FBA8 26730068 */ addiu $s3, $s3, 0x68 - -.L8005FBAC: -/* 03AFAC 8005FBAC 92020008 */ lbu $v0, 8($s0) -/* 03AFB0 8005FBB0 14400019 */ bnez $v0, .L8005FC18 -/* 03AFB4 8005FBB4 0200202D */ daddu $a0, $s0, $zero -/* 03AFB8 8005FBB8 96030004 */ lhu $v1, 4($s0) -/* 03AFBC 8005FBBC 3C028009 */ lui $v0, 0x8009 -/* 03AFC0 8005FBC0 8C423CE0 */ lw $v0, 0x3ce0($v0) -/* 03AFC4 8005FBC4 14400002 */ bnez $v0, .L8005FBD0 -/* 03AFC8 8005FBC8 0062001B */ divu $zero, $v1, $v0 -/* 03AFCC 8005FBCC 0007000D */ break 7 -.L8005FBD0: -/* 03AFD0 8005FBD0 00001010 */ mfhi $v0 -/* 03AFD4 8005FBD4 1440000C */ bnez $v0, .L8005FC08 -/* 03AFD8 8005FBD8 00000000 */ nop -/* 03AFDC 8005FBDC 3C04800E */ lui $a0, 0x800e -/* 03AFE0 8005FBE0 2484AC78 */ addiu $a0, $a0, -0x5388 -/* 03AFE4 8005FBE4 3C05800E */ lui $a1, 0x800e -/* 03AFE8 8005FBE8 24A5AAD8 */ addiu $a1, $a1, -0x5528 -/* 03AFEC 8005FBEC 02652821 */ addu $a1, $s3, $a1 -/* 03AFF0 8005FBF0 0C019FD1 */ jal osMotorInit -/* 03AFF4 8005FBF4 0220302D */ daddu $a2, $s1, $zero -/* 03AFF8 8005FBF8 14400003 */ bnez $v0, .L8005FC08 -/* 03AFFC 8005FBFC 00000000 */ nop -/* 03B000 8005FC00 A2150008 */ sb $s5, 8($s0) -/* 03B004 8005FC04 A2140009 */ sb $s4, 9($s0) -.L8005FC08: -/* 03B008 8005FC08 96020004 */ lhu $v0, 4($s0) -/* 03B00C 8005FC0C 24420001 */ addiu $v0, $v0, 1 -/* 03B010 8005FC10 08017F14 */ j .L8005FC50 -/* 03B014 8005FC14 A6020004 */ sh $v0, 4($s0) - -.L8005FC18: -/* 03B018 8005FC18 0C017E48 */ jal osMotorStop -/* 03B01C 8005FC1C 0220282D */ daddu $a1, $s1, $zero -/* 03B020 8005FC20 5040000C */ beql $v0, $zero, .L8005FC54 -/* 03B024 8005FC24 26730068 */ addiu $s3, $s3, 0x68 -/* 03B028 8005FC28 A6110004 */ sh $s1, 4($s0) -/* 03B02C 8005FC2C A2000008 */ sb $zero, 8($s0) -/* 03B030 8005FC30 08017F14 */ j .L8005FC50 -/* 03B034 8005FC34 A2000009 */ sb $zero, 9($s0) - -.L8005FC38: -/* 03B038 8005FC38 92020009 */ lbu $v0, 9($s0) -/* 03B03C 8005FC3C 54540005 */ bnel $v0, $s4, .L8005FC54 -/* 03B040 8005FC40 26730068 */ addiu $s3, $s3, 0x68 -/* 03B044 8005FC44 0200202D */ daddu $a0, $s0, $zero -/* 03B048 8005FC48 0C017E48 */ jal osMotorStop -/* 03B04C 8005FC4C 0220282D */ daddu $a1, $s1, $zero -.L8005FC50: -/* 03B050 8005FC50 26730068 */ addiu $s3, $s3, 0x68 -.L8005FC54: -/* 03B054 8005FC54 26310001 */ addiu $s1, $s1, 1 -/* 03B058 8005FC58 2E220004 */ sltiu $v0, $s1, 4 -/* 03B05C 8005FC5C 1440FFB9 */ bnez $v0, .L8005FB44 -/* 03B060 8005FC60 2652000A */ addiu $s2, $s2, 0xa -/* 03B064 8005FC64 8FBF0028 */ lw $ra, 0x28($sp) -/* 03B068 8005FC68 8FB50024 */ lw $s5, 0x24($sp) -/* 03B06C 8005FC6C 8FB40020 */ lw $s4, 0x20($sp) -/* 03B070 8005FC70 8FB3001C */ lw $s3, 0x1c($sp) -/* 03B074 8005FC74 8FB20018 */ lw $s2, 0x18($sp) -/* 03B078 8005FC78 8FB10014 */ lw $s1, 0x14($sp) -/* 03B07C 8005FC7C 8FB00010 */ lw $s0, 0x10($sp) -/* 03B080 8005FC80 0000102D */ daddu $v0, $zero, $zero -/* 03B084 8005FC84 03E00008 */ jr $ra -/* 03B088 8005FC88 27BD0030 */ addiu $sp, $sp, 0x30 - diff --git a/asm/nonmatchings/os/code_3a850_le_a40/contRmbStartMesg.s b/asm/nonmatchings/os/code_3a850_le_a40/contRmbStartMesg.s deleted file mode 100644 index 2e8180ebd9..0000000000 --- a/asm/nonmatchings/os/code_3a850_le_a40/contRmbStartMesg.s +++ /dev/null @@ -1,91 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - - -glabel contRmbStartMesg -/* 03B158 8005FD58 8C84000C */ lw $a0, 0xc($a0) -/* 03B15C 8005FD5C 90830000 */ lbu $v1, ($a0) -/* 03B160 8005FD60 8C850008 */ lw $a1, 8($a0) -/* 03B164 8005FD64 00031080 */ sll $v0, $v1, 2 -/* 03B168 8005FD68 00431021 */ addu $v0, $v0, $v1 -/* 03B16C 8005FD6C 90A30006 */ lbu $v1, 6($a1) -/* 03B170 8005FD70 00021040 */ sll $v0, $v0, 1 -/* 03B174 8005FD74 3C01800B */ lui $at, 0x800b -/* 03B178 8005FD78 00220821 */ addu $at, $at, $v0 -/* 03B17C 8005FD7C A0231D46 */ sb $v1, 0x1d46($at) -/* 03B180 8005FD80 90830000 */ lbu $v1, ($a0) -/* 03B184 8005FD84 00031080 */ sll $v0, $v1, 2 -/* 03B188 8005FD88 00431021 */ addu $v0, $v0, $v1 -/* 03B18C 8005FD8C 94A30002 */ lhu $v1, 2($a1) -/* 03B190 8005FD90 00021040 */ sll $v0, $v0, 1 -/* 03B194 8005FD94 3C01800B */ lui $at, 0x800b -/* 03B198 8005FD98 00220821 */ addu $at, $at, $v0 -/* 03B19C 8005FD9C A4231D42 */ sh $v1, 0x1d42($at) -/* 03B1A0 8005FDA0 90830000 */ lbu $v1, ($a0) -/* 03B1A4 8005FDA4 00031080 */ sll $v0, $v1, 2 -/* 03B1A8 8005FDA8 00431021 */ addu $v0, $v0, $v1 -/* 03B1AC 8005FDAC 94A30000 */ lhu $v1, ($a1) -/* 03B1B0 8005FDB0 00021040 */ sll $v0, $v0, 1 -/* 03B1B4 8005FDB4 3C01800B */ lui $at, 0x800b -/* 03B1B8 8005FDB8 00220821 */ addu $at, $at, $v0 -/* 03B1BC 8005FDBC A4231D40 */ sh $v1, 0x1d40($at) -/* 03B1C0 8005FDC0 90830000 */ lbu $v1, ($a0) -/* 03B1C4 8005FDC4 00031080 */ sll $v0, $v1, 2 -/* 03B1C8 8005FDC8 00431021 */ addu $v0, $v0, $v1 -/* 03B1CC 8005FDCC 00021040 */ sll $v0, $v0, 1 -/* 03B1D0 8005FDD0 3C01800B */ lui $at, 0x800b -/* 03B1D4 8005FDD4 00220821 */ addu $at, $at, $v0 -/* 03B1D8 8005FDD8 A4201D44 */ sh $zero, 0x1d44($at) -/* 03B1DC 8005FDDC 03E00008 */ jr $ra -/* 03B1E0 8005FDE0 0000102D */ daddu $v0, $zero, $zero - -/* 03B1E4 8005FDE4 8C82000C */ lw $v0, 0xc($a0) -/* 03B1E8 8005FDE8 90430000 */ lbu $v1, ($v0) -/* 03B1EC 8005FDEC 00031080 */ sll $v0, $v1, 2 -/* 03B1F0 8005FDF0 00431021 */ addu $v0, $v0, $v1 -/* 03B1F4 8005FDF4 00021040 */ sll $v0, $v0, 1 -/* 03B1F8 8005FDF8 3C01800B */ lui $at, 0x800b -/* 03B1FC 8005FDFC 00220821 */ addu $at, $at, $v0 -/* 03B200 8005FE00 A4201D42 */ sh $zero, 0x1d42($at) -/* 03B204 8005FE04 03E00008 */ jr $ra -/* 03B208 8005FE08 0000102D */ daddu $v0, $zero, $zero - -/* 03B20C 8005FE0C 0000282D */ daddu $a1, $zero, $zero -/* 03B210 8005FE10 24060004 */ addiu $a2, $zero, 4 -/* 03B214 8005FE14 3C03800B */ lui $v1, 0x800b -/* 03B218 8005FE18 24631D47 */ addiu $v1, $v1, 0x1d47 -/* 03B21C 8005FE1C 00A0202D */ daddu $a0, $a1, $zero -.L8005FE20: -/* 03B220 8005FE20 3C01800B */ lui $at, 0x800b -/* 03B224 8005FE24 00240821 */ addu $at, $at, $a0 -/* 03B228 8005FE28 A0261D46 */ sb $a2, 0x1d46($at) -/* 03B22C 8005FE2C 2484000A */ addiu $a0, $a0, 0xa -/* 03B230 8005FE30 90620000 */ lbu $v0, ($v1) -/* 03B234 8005FE34 24A50001 */ addiu $a1, $a1, 1 -/* 03B238 8005FE38 34420080 */ ori $v0, $v0, 0x80 -/* 03B23C 8005FE3C A0620000 */ sb $v0, ($v1) -/* 03B240 8005FE40 2CA20004 */ sltiu $v0, $a1, 4 -/* 03B244 8005FE44 1440FFF6 */ bnez $v0, .L8005FE20 -/* 03B248 8005FE48 2463000A */ addiu $v1, $v1, 0xa -/* 03B24C 8005FE4C 03E00008 */ jr $ra -/* 03B250 8005FE50 0000102D */ daddu $v0, $zero, $zero - -/* 03B254 8005FE54 0000202D */ daddu $a0, $zero, $zero -/* 03B258 8005FE58 3C03800B */ lui $v1, 0x800b -/* 03B25C 8005FE5C 24631D47 */ addiu $v1, $v1, 0x1d47 -.L8005FE60: -/* 03B260 8005FE60 90620000 */ lbu $v0, ($v1) -/* 03B264 8005FE64 24840001 */ addiu $a0, $a0, 1 -/* 03B268 8005FE68 3042007F */ andi $v0, $v0, 0x7f -/* 03B26C 8005FE6C A0620000 */ sb $v0, ($v1) -/* 03B270 8005FE70 2C820004 */ sltiu $v0, $a0, 4 -/* 03B274 8005FE74 1440FFFA */ bnez $v0, .L8005FE60 -/* 03B278 8005FE78 2463000A */ addiu $v1, $v1, 0xa -/* 03B27C 8005FE7C 03E00008 */ jr $ra -/* 03B280 8005FE80 0000102D */ daddu $v0, $zero, $zero - -/* 03B284 8005FE84 00000000 */ nop -/* 03B288 8005FE88 00000000 */ nop -/* 03B28C 8005FE8C 00000000 */ nop - - diff --git a/asm/nonmatchings/os/code_3a850_le_a40/nuContRmbMgrRemove.s b/asm/nonmatchings/os/code_3a850_le_a40/nuContRmbMgrRemove.s deleted file mode 100644 index c2c4fe84d9..0000000000 --- a/asm/nonmatchings/os/code_3a850_le_a40/nuContRmbMgrRemove.s +++ /dev/null @@ -1,15 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - - -glabel nuContRmbMgrRemove -/* 03B0EC 8005FCEC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 03B0F0 8005FCF0 3C048009 */ lui $a0, 0x8009 -/* 03B0F4 8005FCF4 24843D00 */ addiu $a0, $a0, 0x3d00 -/* 03B0F8 8005FCF8 AFBF0010 */ sw $ra, 0x10($sp) -/* 03B0FC 8005FCFC 0C018124 */ jal nuSiCallBackRemove -/* 03B100 8005FD00 00000000 */ nop -/* 03B104 8005FD04 8FBF0010 */ lw $ra, 0x10($sp) -/* 03B108 8005FD08 03E00008 */ jr $ra -/* 03B10C 8005FD0C 27BD0018 */ addiu $sp, $sp, 0x18 - diff --git a/asm/nonmatchings/os/code_3a850_le_a40/osMotorStop.s b/asm/nonmatchings/os/code_3a850_le_a40/osMotorStop.s deleted file mode 100644 index 6297547d84..0000000000 --- a/asm/nonmatchings/os/code_3a850_le_a40/osMotorStop.s +++ /dev/null @@ -1,150 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - - -glabel osMotorStop -/* 03AD20 8005F920 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 03AD24 8005F924 AFB20018 */ sw $s2, 0x18($sp) -/* 03AD28 8005F928 0080902D */ daddu $s2, $a0, $zero -/* 03AD2C 8005F92C 00A0302D */ daddu $a2, $a1, $zero -/* 03AD30 8005F930 AFB00010 */ sw $s0, 0x10($sp) -/* 03AD34 8005F934 AFBF0020 */ sw $ra, 0x20($sp) -/* 03AD38 8005F938 AFB3001C */ sw $s3, 0x1c($sp) -/* 03AD3C 8005F93C AFB10014 */ sw $s1, 0x14($sp) -/* 03AD40 8005F940 92430006 */ lbu $v1, 6($s2) -/* 03AD44 8005F944 24130002 */ addiu $s3, $zero, 2 -/* 03AD48 8005F948 10730069 */ beq $v1, $s3, .L8005FAF0 -/* 03AD4C 8005F94C 0000802D */ daddu $s0, $zero, $zero -/* 03AD50 8005F950 28620003 */ slti $v0, $v1, 3 -/* 03AD54 8005F954 10400005 */ beqz $v0, .L8005F96C -/* 03AD58 8005F958 24020001 */ addiu $v0, $zero, 1 -/* 03AD5C 8005F95C 1062000A */ beq $v1, $v0, .L8005F988 -/* 03AD60 8005F960 0200102D */ daddu $v0, $s0, $zero -/* 03AD64 8005F964 08017EBD */ j .L8005FAF4 -/* 03AD68 8005F968 00000000 */ nop - -.L8005F96C: -/* 03AD6C 8005F96C 24020003 */ addiu $v0, $zero, 3 -/* 03AD70 8005F970 10620018 */ beq $v1, $v0, .L8005F9D4 -/* 03AD74 8005F974 24020004 */ addiu $v0, $zero, 4 -/* 03AD78 8005F978 10620048 */ beq $v1, $v0, .L8005FA9C -/* 03AD7C 8005F97C 0200102D */ daddu $v0, $s0, $zero -/* 03AD80 8005F980 08017EBD */ j .L8005FAF4 -/* 03AD84 8005F984 00000000 */ nop - -.L8005F988: -/* 03AD88 8005F988 96420004 */ lhu $v0, 4($s2) -/* 03AD8C 8005F98C 1040000C */ beqz $v0, .L8005F9C0 -/* 03AD90 8005F990 00062040 */ sll $a0, $a2, 1 -/* 03AD94 8005F994 00862021 */ addu $a0, $a0, $a2 -/* 03AD98 8005F998 00042080 */ sll $a0, $a0, 2 -/* 03AD9C 8005F99C 00862021 */ addu $a0, $a0, $a2 -/* 03ADA0 8005F9A0 000420C0 */ sll $a0, $a0, 3 -/* 03ADA4 8005F9A4 3C02800E */ lui $v0, 0x800e -/* 03ADA8 8005F9A8 2442AAD8 */ addiu $v0, $v0, -0x5528 -/* 03ADAC 8005F9AC 00822021 */ addu $a0, $a0, $v0 -/* 03ADB0 8005F9B0 0C019F80 */ jal osMotorAccess -/* 03ADB4 8005F9B4 0000282D */ daddu $a1, $zero, $zero -/* 03ADB8 8005F9B8 08017E71 */ j .L8005F9C4 -/* 03ADBC 8005F9BC 0040802D */ daddu $s0, $v0, $zero - -.L8005F9C0: -/* 03ADC0 8005F9C0 A2530006 */ sb $s3, 6($s2) -.L8005F9C4: -/* 03ADC4 8005F9C4 96420004 */ lhu $v0, 4($s2) -/* 03ADC8 8005F9C8 2442FFFF */ addiu $v0, $v0, -1 -/* 03ADCC 8005F9CC 08017EBC */ j .L8005FAF0 -/* 03ADD0 8005F9D0 A6420004 */ sh $v0, 4($s2) - -.L8005F9D4: -/* 03ADD4 8005F9D4 96420002 */ lhu $v0, 2($s2) -/* 03ADD8 8005F9D8 1040001F */ beqz $v0, .L8005FA58 -/* 03ADDC 8005F9DC 00062040 */ sll $a0, $a2, 1 -/* 03ADE0 8005F9E0 96420004 */ lhu $v0, 4($s2) -/* 03ADE4 8005F9E4 96430000 */ lhu $v1, ($s2) -/* 03ADE8 8005F9E8 00431021 */ addu $v0, $v0, $v1 -/* 03ADEC 8005F9EC 304300FF */ andi $v1, $v0, 0xff -/* 03ADF0 8005F9F0 3042FFFF */ andi $v0, $v0, 0xffff -/* 03ADF4 8005F9F4 00021202 */ srl $v0, $v0, 8 -/* 03ADF8 8005F9F8 1040000B */ beqz $v0, .L8005FA28 -/* 03ADFC 8005F9FC A6430004 */ sh $v1, 4($s2) -/* 03AE00 8005FA00 00062040 */ sll $a0, $a2, 1 -/* 03AE04 8005FA04 00862021 */ addu $a0, $a0, $a2 -/* 03AE08 8005FA08 00042080 */ sll $a0, $a0, 2 -/* 03AE0C 8005FA0C 00862021 */ addu $a0, $a0, $a2 -/* 03AE10 8005FA10 000420C0 */ sll $a0, $a0, 3 -/* 03AE14 8005FA14 3C02800E */ lui $v0, 0x800e -/* 03AE18 8005FA18 2442AAD8 */ addiu $v0, $v0, -0x5528 -/* 03AE1C 8005FA1C 00822021 */ addu $a0, $a0, $v0 -/* 03AE20 8005FA20 08017E92 */ j .L8005FA48 -/* 03AE24 8005FA24 24050001 */ addiu $a1, $zero, 1 - -.L8005FA28: -/* 03AE28 8005FA28 00862021 */ addu $a0, $a0, $a2 -/* 03AE2C 8005FA2C 00042080 */ sll $a0, $a0, 2 -/* 03AE30 8005FA30 00862021 */ addu $a0, $a0, $a2 -/* 03AE34 8005FA34 000420C0 */ sll $a0, $a0, 3 -/* 03AE38 8005FA38 3C02800E */ lui $v0, 0x800e -/* 03AE3C 8005FA3C 2442AAD8 */ addiu $v0, $v0, -0x5528 -/* 03AE40 8005FA40 00822021 */ addu $a0, $a0, $v0 -/* 03AE44 8005FA44 0000282D */ daddu $a1, $zero, $zero -.L8005FA48: -/* 03AE48 8005FA48 0C019F80 */ jal osMotorAccess -/* 03AE4C 8005FA4C 00000000 */ nop -/* 03AE50 8005FA50 08017EA3 */ j .L8005FA8C -/* 03AE54 8005FA54 0040802D */ daddu $s0, $v0, $zero - -.L8005FA58: -/* 03AE58 8005FA58 00862021 */ addu $a0, $a0, $a2 -/* 03AE5C 8005FA5C 00042080 */ sll $a0, $a0, 2 -/* 03AE60 8005FA60 00862021 */ addu $a0, $a0, $a2 -/* 03AE64 8005FA64 000420C0 */ sll $a0, $a0, 3 -/* 03AE68 8005FA68 3C02800E */ lui $v0, 0x800e -/* 03AE6C 8005FA6C 2442AAD8 */ addiu $v0, $v0, -0x5528 -/* 03AE70 8005FA70 00822021 */ addu $a0, $a0, $v0 -/* 03AE74 8005FA74 0C019F80 */ jal osMotorAccess -/* 03AE78 8005FA78 0000282D */ daddu $a1, $zero, $zero -/* 03AE7C 8005FA7C 0040802D */ daddu $s0, $v0, $zero -/* 03AE80 8005FA80 24020001 */ addiu $v0, $zero, 1 -/* 03AE84 8005FA84 A2420006 */ sb $v0, 6($s2) -/* 03AE88 8005FA88 A6530004 */ sh $s3, 4($s2) -.L8005FA8C: -/* 03AE8C 8005FA8C 96420002 */ lhu $v0, 2($s2) -/* 03AE90 8005FA90 2442FFFF */ addiu $v0, $v0, -1 -/* 03AE94 8005FA94 08017EBC */ j .L8005FAF0 -/* 03AE98 8005FA98 A6420002 */ sh $v0, 2($s2) - -.L8005FA9C: -/* 03AE9C 8005FA9C 3C04800E */ lui $a0, 0x800e -/* 03AEA0 8005FAA0 2484AC78 */ addiu $a0, $a0, -0x5388 -/* 03AEA4 8005FAA4 00061040 */ sll $v0, $a2, 1 -/* 03AEA8 8005FAA8 00461021 */ addu $v0, $v0, $a2 -/* 03AEAC 8005FAAC 00021080 */ sll $v0, $v0, 2 -/* 03AEB0 8005FAB0 00461021 */ addu $v0, $v0, $a2 -/* 03AEB4 8005FAB4 000210C0 */ sll $v0, $v0, 3 -/* 03AEB8 8005FAB8 3C03800E */ lui $v1, 0x800e -/* 03AEBC 8005FABC 2463AAD8 */ addiu $v1, $v1, -0x5528 -/* 03AEC0 8005FAC0 00438821 */ addu $s1, $v0, $v1 -/* 03AEC4 8005FAC4 0C019FD1 */ jal osMotorInit -/* 03AEC8 8005FAC8 0220282D */ daddu $a1, $s1, $zero -/* 03AECC 8005FACC 0040802D */ daddu $s0, $v0, $zero -/* 03AED0 8005FAD0 16000005 */ bnez $s0, .L8005FAE8 -/* 03AED4 8005FAD4 24020001 */ addiu $v0, $zero, 1 -/* 03AED8 8005FAD8 0220202D */ daddu $a0, $s1, $zero -/* 03AEDC 8005FADC 0C019F80 */ jal osMotorAccess -/* 03AEE0 8005FAE0 0000282D */ daddu $a1, $zero, $zero -/* 03AEE4 8005FAE4 24020001 */ addiu $v0, $zero, 1 -.L8005FAE8: -/* 03AEE8 8005FAE8 A2420006 */ sb $v0, 6($s2) -/* 03AEEC 8005FAEC A6530004 */ sh $s3, 4($s2) -.L8005FAF0: -/* 03AEF0 8005FAF0 0200102D */ daddu $v0, $s0, $zero -.L8005FAF4: -/* 03AEF4 8005FAF4 8FBF0020 */ lw $ra, 0x20($sp) -/* 03AEF8 8005FAF8 8FB3001C */ lw $s3, 0x1c($sp) -/* 03AEFC 8005FAFC 8FB20018 */ lw $s2, 0x18($sp) -/* 03AF00 8005FB00 8FB10014 */ lw $s1, 0x14($sp) -/* 03AF04 8005FB04 8FB00010 */ lw $s0, 0x10($sp) -/* 03AF08 8005FB08 03E00008 */ jr $ra -/* 03AF0C 8005FB0C 27BD0028 */ addiu $sp, $sp, 0x28 - diff --git a/asm/nonmatchings/os/code_43200_len_7c0/osMotorAccess.s b/asm/nonmatchings/os/code_43200_len_7c0/__osMotorAccess.s similarity index 99% rename from asm/nonmatchings/os/code_43200_len_7c0/osMotorAccess.s rename to asm/nonmatchings/os/code_43200_len_7c0/__osMotorAccess.s index 2b4f1d8d31..f162844797 100644 --- a/asm/nonmatchings/os/code_43200_len_7c0/osMotorAccess.s +++ b/asm/nonmatchings/os/code_43200_len_7c0/__osMotorAccess.s @@ -2,7 +2,7 @@ .set noreorder # don't insert nops after branches -glabel osMotorAccess +glabel __osMotorAccess /* 043200 80067E00 27BDFFD8 */ addiu $sp, $sp, -0x28 /* 043204 80067E04 AFB10014 */ sw $s1, 0x14($sp) /* 043208 80067E08 00808821 */ addu $s1, $a0, $zero diff --git a/asm/nonmatchings/os/code_3a850_le_a40/nuContRmbMgrInit.s b/asm/nonmatchings/os/nuContRmbMgr/nuContRmbMgrInit.s similarity index 100% rename from asm/nonmatchings/os/code_3a850_le_a40/nuContRmbMgrInit.s rename to asm/nonmatchings/os/nuContRmbMgr/nuContRmbMgrInit.s diff --git a/papermario.ld b/papermario.ld index b2cf323d67..98ab8d8e1c 100644 --- a/papermario.ld +++ b/papermario.ld @@ -52,19 +52,19 @@ SECTIONS build/src/code_39210_len_aa0.o(.text); build/src/os/code_39cb0_len_100.o(.text); build/src/os/code_39db0_len_8a0.o(.text); - build/src/os/nuGfxFuncSet.o(.text); - build/src/os/nuGfxPreNMIFuncSet.o(.text); - build/src/os/nuGfxTaskAllEndWait.o(.text); - build/src/os/nuGfxSetCfb.o(.text); - build/src/os/nuGfxDisplayOff.o(.text); - build/src/os/nuGfxDisplayOn.o(.text); - build/src/os/nuPiInit.o(.text); - build/src/os/nuPiReadRom.o(.text); - build/src/os/nuGfxInit.o(.text); - build/src/os/nuContInit.o(.text); - build/src/os/nuContDataGet.o(.text); - build/src/os/nuContPakMgr.o(.text); - build/src/os/code_3a850_le_a40.o(.text); + build/src/os/nusys/nuGfxFuncSet.o(.text); + build/src/os/nusys/nuGfxPreNMIFuncSet.o(.text); + build/src/os/nusys/nuGfxTaskAllEndWait.o(.text); + build/src/os/nusys/nuGfxSetCfb.o(.text); + build/src/os/nusys/nuGfxDisplayOff.o(.text); + build/src/os/nusys/nuGfxDisplayOn.o(.text); + build/src/os/nusys/nuPiInit.o(.text); + build/src/os/nusys/nuPiReadRom.o(.text); + build/src/os/nusys/nuGfxInit.o(.text); + build/src/os/nusys/nuContInit.o(.text); + build/src/os/nusys/nuContDataGet.o(.text); + build/src/os/nusys/nuContPakMgr.o(.text); + build/src/os/nusys/nuContRmbMgr.o(.text); build/src/os/code_3b290_len_100.o(.text); build/src/os/code_3b390_len_110.o(.text); build/src/os/code_3b4a0_len_270.o(.text); diff --git a/src/os/code_3a850_le_a40.c b/src/os/code_3a850_le_a40.c deleted file mode 100644 index 5c4b377c68..0000000000 --- a/src/os/code_3a850_le_a40.c +++ /dev/null @@ -1,14 +0,0 @@ -#include "common.h" - -#undef osMotorStop -s32 INCLUDE_ASM("os/code_3a850_le_a40", osMotorStop, OSPfs* unk); - -INCLUDE_API_ASM("os/code_3a850_le_a40", contRmbControl); - -INCLUDE_API_ASM("os/code_3a850_le_a40", nuContRmbMgrInit); - -INCLUDE_API_ASM("os/code_3a850_le_a40", nuContRmbMgrRemove); - -INCLUDE_API_ASM("os/code_3a850_le_a40", contRmbCheckMesg); - -INCLUDE_API_ASM("os/code_3a850_le_a40", contRmbStartMesg); diff --git a/src/os/code_43200_len_7c0.c b/src/os/code_43200_len_7c0.c index 2737584967..1d1b1747f2 100644 --- a/src/os/code_43200_len_7c0.c +++ b/src/os/code_43200_len_7c0.c @@ -1,6 +1,6 @@ #include "common.h" -INCLUDE_API_ASM("os/code_43200_len_7c0", osMotorAccess); +s32 INCLUDE_ASM("os/code_43200_len_7c0", __osMotorAccess, OSPfs* pfs, s32 unk); s32 INCLUDE_ASM("os/code_43200_len_7c0", osMotorInit, OSMesgQueue* queue, OSPfs* pfs, int unk); diff --git a/src/os/nuContDataGet.c b/src/os/nusys/nuContDataGet.c similarity index 100% rename from src/os/nuContDataGet.c rename to src/os/nusys/nuContDataGet.c diff --git a/src/os/nuContInit.c b/src/os/nusys/nuContInit.c similarity index 100% rename from src/os/nuContInit.c rename to src/os/nusys/nuContInit.c diff --git a/src/os/nuContPakMgr.c b/src/os/nusys/nuContPakMgr.c similarity index 94% rename from src/os/nuContPakMgr.c rename to src/os/nusys/nuContPakMgr.c index cabbe77bfe..0c909cd211 100644 --- a/src/os/nuContPakMgr.c +++ b/src/os/nusys/nuContPakMgr.c @@ -9,15 +9,12 @@ void nuContPakMgrRemove(void) { nuSiCallBackRemove(&nuContCallBack); } -// TODO: Determine what this is. -extern OSMesgQueue D_800DAC78; - static s32 contPakOpen(NUSiCommonMesg* mesg) { s32 err; NUContPakFile* file = (NUContPakFile*) mesg->dataPtr; file->type = NU_CONT_PAK_TYPE_NONE; - err = osPfsInitPak(&D_800DAC78, file->pfs, file->pfs->channel); + err = osPfsInitPak(&nuSiMesgQ, file->pfs, file->pfs->channel); if (err == 0) { file->type = NU_CONT_PAK_TYPE_PAK; diff --git a/src/os/nusys/nuContRmbMgr.c b/src/os/nusys/nuContRmbMgr.c new file mode 100644 index 0000000000..202f0e30ed --- /dev/null +++ b/src/os/nusys/nuContRmbMgr.c @@ -0,0 +1,162 @@ +#include "common.h" +#include "nu/nusys.h" + +static s32 contRmbControl(NUContRmbCtl* rmbCtl, u32 contNo) { + s32 ret = 0; + u32 cnt; + + switch (rmbCtl->state) { + case NU_CONT_RMB_STATE_STOPPED: + break; + + case NU_CONT_RMB_STATE_STOPPING: + if (rmbCtl->counter != 0) { + ret = osMotorStop(&nuContPfs[contNo]); + } else { + rmbCtl->state = NU_CONT_RMB_STATE_STOPPED; + } + rmbCtl->counter--; + break; + + case NU_CONT_RMB_STATE_RUN: + if (rmbCtl->frame > 0) { + rmbCtl->counter += rmbCtl->freq; + cnt = rmbCtl->counter >> 8; + rmbCtl->counter &= 0xFF; + if (cnt > 0) { + ret = osMotorStart(&nuContPfs[contNo]); + } else { + ret = osMotorStop(&nuContPfs[contNo]); + } + } else { + ret = osMotorStop(&nuContPfs[contNo]); + rmbCtl->state = NU_CONT_RMB_STATE_STOPPING; + rmbCtl->counter = 2; + } + rmbCtl->frame--; + break; + + case NU_CONT_RMB_STATE_FORCESTOP: + ret = osMotorInit(&nuSiMesgQ, &nuContPfs[contNo], contNo); + if (ret == 0) { + osMotorStop(&nuContPfs[contNo]); + } + rmbCtl->state = NU_CONT_RMB_STATE_STOPPING; + rmbCtl->counter = 2; + } + + return ret; +} + +static s32 contRmbRetrace(NUSiCommonMesg* mesg) { + u32 i; + NUContRmbCtl* cont; + + for (i = 0; i < NU_CONT_MAXCONTROLLERS; i++) { + cont = &nuContRmbCtl[i]; + switch (cont->mode) { + case NU_CONT_RMB_MODE_DISABLE: + break; + + case NU_CONT_RMB_MODE_ENABLE: + if (contRmbControl(cont, i)) { + cont->mode = NU_CONT_RMB_MODE_DISABLE; + } + break; + + case NU_CONT_RMB_MODE_AUTORUN: + if (cont->autorun == NU_CONT_RMB_AUTO_SEARCH) { + if ((cont->counter % nuContRmbSearchTime) == 0) { + if (osMotorInit(&nuSiMesgQ, &nuContPfs[i], i) == 0) { + cont->autorun = NU_CONT_RMB_AUTO_FIND; + cont->type = NU_CONT_PAK_TYPE_RUMBLE; + } + } + cont->counter++; + } else { + if (contRmbControl(cont, i)) { + cont->counter = i; + cont->autorun = NU_CONT_RMB_AUTO_SEARCH; + cont->type = NU_CONT_PAK_TYPE_NONE; + } + } + break; + + case (NU_CONT_RMB_MODE_ENABLE | NU_CONT_RMB_MODE_PAUSE): + case (NU_CONT_RMB_MODE_AUTORUN | NU_CONT_RMB_MODE_PAUSE): + if (cont->type == NU_CONT_PAK_TYPE_RUMBLE) { + contRmbControl(cont, i); + } + } + } + + return 0; +} + + +#ifdef NON_MATCHING +// Will match when data is decompiled. +void nuContRmbMgrInit(void) { + u32 i; + + for (i = 0; i < NU_CONT_MAXCONTROLLERS; i++) { + nuContRmbCtl[i].state = NU_CONT_RMB_STATE_STOPPED; + nuContRmbCtl[i].mode = NU_CONT_RMB_MODE_DISABLE; + nuContRmbCtl[i].counter = i; + } + + nuSiCallBackAdd(&nuContRmbCallBack); +} +#else +void INCLUDE_ASM("os/nuContRmbMgr", nuContRmbMgrInit); +#endif + +void nuContRmbMgrRemove(void) { + nuSiCallBackRemove(&nuContRmbCallBack); +} + +static s32 contRmbCheckMesg(NUSiCommonMesg* mesg) { + NUContRmbMesg* rmbMesg = (NUContRmbMesg*) mesg->dataPtr; + + return osMotorInit(&nuSiMesgQ, &nuContPfs[rmbMesg->contNo], rmbMesg->contNo); +} + +static s32 contRmbStartMesg(NUSiCommonMesg* mesg) { + NUContRmbMesg* rmbMesg = (NUContRmbMesg*) mesg->dataPtr; + NUContRmbCtl* rmbCtl = (NUContRmbCtl*) rmbMesg->data; + + nuContRmbCtl[rmbMesg->contNo].state = rmbCtl->state; + nuContRmbCtl[rmbMesg->contNo].frame = rmbCtl->frame; + nuContRmbCtl[rmbMesg->contNo].freq = rmbCtl->freq; + nuContRmbCtl[rmbMesg->contNo].counter = 0; + return 0; +} + +static s32 contRmbStopMesg(NUSiCommonMesg* mesg) { + NUContRmbMesg* rmbMesg = (NUContRmbMesg*) mesg->dataPtr; + + nuContRmbCtl[rmbMesg->contNo].frame = 0; + + return 0; +} + +static s32 contRmbForceStopMesg(NUSiCommonMesg* mesg) { + u32 i; + + for (i = 0; i < NU_CONT_MAXCONTROLLERS; i++) { + nuContRmbCtl[i].state = NU_CONT_RMB_STATE_FORCESTOP; + nuContRmbCtl[i].mode |= NU_CONT_RMB_MODE_PAUSE; + } + + return 0; +} + +static s32 contRmbForceStopEndMesg(NUSiCommonMesg* mesg) { + u32 i; + + for (i = 0; i < NU_CONT_MAXCONTROLLERS; i++) { + nuContRmbCtl[i].mode &= ~NU_CONT_RMB_MODE_PAUSE; + } + + return 0; +} diff --git a/src/os/nuGfxDisplayOff.c b/src/os/nusys/nuGfxDisplayOff.c similarity index 100% rename from src/os/nuGfxDisplayOff.c rename to src/os/nusys/nuGfxDisplayOff.c diff --git a/src/os/nuGfxDisplayOn.c b/src/os/nusys/nuGfxDisplayOn.c similarity index 100% rename from src/os/nuGfxDisplayOn.c rename to src/os/nusys/nuGfxDisplayOn.c diff --git a/src/os/nuGfxFuncSet.c b/src/os/nusys/nuGfxFuncSet.c similarity index 100% rename from src/os/nuGfxFuncSet.c rename to src/os/nusys/nuGfxFuncSet.c diff --git a/src/os/nuGfxInit.c b/src/os/nusys/nuGfxInit.c similarity index 86% rename from src/os/nuGfxInit.c rename to src/os/nusys/nuGfxInit.c index 69d3a84f85..c9ce45a724 100644 --- a/src/os/nuGfxInit.c +++ b/src/os/nusys/nuGfxInit.c @@ -23,6 +23,6 @@ void nuGfxInit(void) { gDPFullSync(ptr++); gSPEndDisplayList(ptr++); - nuGfxTaskStart(&gfx, (s32)(ptr - gfx) * sizeof(Gfx), NU_GFX_UCODE_F3DEX, NU_SC_NOSWAPBUFFER); + nuGfxTaskStart(gfx, (s32)(ptr - gfx) * sizeof(Gfx), NU_GFX_UCODE_F3DEX, NU_SC_NOSWAPBUFFER); nuGfxTaskAllEndWait(); } diff --git a/src/os/nuGfxPreNMIFuncSet.c b/src/os/nusys/nuGfxPreNMIFuncSet.c similarity index 100% rename from src/os/nuGfxPreNMIFuncSet.c rename to src/os/nusys/nuGfxPreNMIFuncSet.c diff --git a/src/os/nuGfxSetCfb.c b/src/os/nusys/nuGfxSetCfb.c similarity index 100% rename from src/os/nuGfxSetCfb.c rename to src/os/nusys/nuGfxSetCfb.c diff --git a/src/os/nuGfxTaskAllEndWait.c b/src/os/nusys/nuGfxTaskAllEndWait.c similarity index 100% rename from src/os/nuGfxTaskAllEndWait.c rename to src/os/nusys/nuGfxTaskAllEndWait.c diff --git a/src/os/nuPiInit.c b/src/os/nusys/nuPiInit.c similarity index 100% rename from src/os/nuPiInit.c rename to src/os/nusys/nuPiInit.c diff --git a/src/os/nuPiReadRom.c b/src/os/nusys/nuPiReadRom.c similarity index 100% rename from src/os/nuPiReadRom.c rename to src/os/nusys/nuPiReadRom.c diff --git a/tools/splat.yaml b/tools/splat.yaml index 4dca7ac17f..673954f90c 100644 --- a/tools/splat.yaml +++ b/tools/splat.yaml @@ -59,19 +59,19 @@ segments: - [0x39210, "c", "code_39210_len_aa0"] - [0x39cb0, "c", "os/code_39cb0_len_100"] - [0x39db0, "c", "os/code_39db0_len_8a0"] - - [0x3a650, "c", "os/nuGfxFuncSet"] - - [0x3a690, "c", "os/nuGfxPreNMIFuncSet"] - - [0x3a6d0, "c", "os/nuGfxTaskAllEndWait"] - - [0x3a6f0, "c", "os/nuGfxSetCfb"] - - [0x3a800, "c", "os/nuGfxDisplayOff"] - - [0x3a830, "c", "os/nuGfxDisplayOn"] - - [0x3a850, "c", "os/nuPiInit"] - - [0x3a890, "c", "os/nuPiReadRom"] - - [0x3a960, "c", "os/nuGfxInit"] - - [0x3aa10, "c", "os/nuContInit"] - - [0x3aa50, "c", "os/nuContDataGet"] - - [0x3aab0, "c", "os/nuContPakMgr"] - - [0x3ad20, "c", "os/code_3a850_le_a40"] + - [0x3a650, "c", "os/nusys/nuGfxFuncSet"] + - [0x3a690, "c", "os/nusys/nuGfxPreNMIFuncSet"] + - [0x3a6d0, "c", "os/nusys/nuGfxTaskAllEndWait"] + - [0x3a6f0, "c", "os/nusys/nuGfxSetCfb"] + - [0x3a800, "c", "os/nusys/nuGfxDisplayOff"] + - [0x3a830, "c", "os/nusys/nuGfxDisplayOn"] + - [0x3a850, "c", "os/nusys/nuPiInit"] + - [0x3a890, "c", "os/nusys/nuPiReadRom"] + - [0x3a960, "c", "os/nusys/nuGfxInit"] + - [0x3aa10, "c", "os/nusys/nuContInit"] + - [0x3aa50, "c", "os/nusys/nuContDataGet"] + - [0x3aab0, "c", "os/nusys/nuContPakMgr"] + - [0x3af10, "c", "os/nusys/nuContRmbMgr"] - [0x3b290, "c", "os/code_3b290_len_100"] - [0x3b390, "c", "os/code_3b390_len_110"] - [0x3b4a0, "c", "os/code_3b4a0_len_270"] diff --git a/undefined_syms.txt b/undefined_syms.txt index 7bf3187fc7..bc52034f61 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -40,12 +40,15 @@ D_0010CC10 = 0x0010CC10; D_0010CC10_end = 0x0010F1B0; D_80074021 = 0x80074021; +gCurrentCameraID = 0x80077410; D_80093BA0 = 0x80093BA0; FrameBuf = 0x80093BA8; rdpstateinit_dl = 0x80093BB8; nuContPakCompanyCode = 0x80093CA0; nuContPakGameCode = 0x80093CA4; nuContCallBack = 0x80093CD0; +nuContRmbSearchTime = 0x80093CE0; +nuContRmbCallBack = 0x80093D00; nuGfxFunc = 0x80093D10; nuGfxPreNMIFunc = 0x80093D14; @@ -63,13 +66,16 @@ D_8009A650 = 0x8009A650; D_800A0900 = 0x800A0900; D_800AC5D0 = 0x800AC5D0; D_800AC5E8 = 0x800AC5E8; + gCurrentEncounter = 0x800B0F10; +nuContRmbCtl = 0x800B1d40; nuContData = 0x800B1D68; gCameras = 0x800B1D80; -gCurrentCameraID = 0x80077410; -D_800DAC78 = 0x800DAC78; +nuContPfs = 0x800DAAD8; +nuSiMesgQ = 0x800DAC78; D_800DC500 = 0x800DC500; D_8010F6D0 = 0x8010F6D0; + gBackgroundImage = 0x80200000; D_802C3000 = 0x802C3000; D_802DBD40 = 0x802DBD40;