mirror of
https://github.com/pmret/papermario.git
synced 2024-11-09 12:32:38 +01:00
commit
9510d4fff6
2
Makefile
2
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
|
||||
|
@ -1,40 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel nuScAddClient
|
||||
/* 3A230 8005EE30 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* 3A234 8005EE34 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* 3A238 8005EE38 0080802D */ daddu $s0, $a0, $zero
|
||||
/* 3A23C 8005EE3C AFB20018 */ sw $s2, 0x18($sp)
|
||||
/* 3A240 8005EE40 00A0902D */ daddu $s2, $a1, $zero
|
||||
/* 3A244 8005EE44 AFB10014 */ sw $s1, 0x14($sp)
|
||||
/* 3A248 8005EE48 00C0882D */ daddu $s1, $a2, $zero
|
||||
/* 3A24C 8005EE4C AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 3A250 8005EE50 0C018250 */ jal osSetIntMask
|
||||
/* 3A254 8005EE54 24040001 */ addiu $a0, $zero, 1
|
||||
/* 3A258 8005EE58 3C05800E */ lui $a1, 0x800e
|
||||
/* 3A25C 8005EE5C 24A5AAA8 */ addiu $a1, $a1, -0x5558
|
||||
/* 3A260 8005EE60 AE120004 */ sw $s2, 4($s0)
|
||||
/* 3A264 8005EE64 8CA30000 */ lw $v1, ($a1)
|
||||
/* 3A268 8005EE68 A6110008 */ sh $s1, 8($s0)
|
||||
/* 3A26C 8005EE6C 32310002 */ andi $s1, $s1, 2
|
||||
/* 3A270 8005EE70 AE030000 */ sw $v1, ($s0)
|
||||
/* 3A274 8005EE74 ACB00000 */ sw $s0, ($a1)
|
||||
/* 3A278 8005EE78 12200008 */ beqz $s1, .L8005EE9C
|
||||
/* 3A27C 8005EE7C 0040802D */ daddu $s0, $v0, $zero
|
||||
/* 3A280 8005EE80 3C02800A */ lui $v0, 0x800a
|
||||
/* 3A284 8005EE84 9042A5B0 */ lbu $v0, -0x5a50($v0)
|
||||
/* 3A288 8005EE88 10400004 */ beqz $v0, .L8005EE9C
|
||||
/* 3A28C 8005EE8C 0240202D */ daddu $a0, $s2, $zero
|
||||
/* 3A290 8005EE90 24A5F99A */ addiu $a1, $a1, -0x666
|
||||
/* 3A294 8005EE94 0C019608 */ jal osSendMesg
|
||||
/* 3A298 8005EE98 0000302D */ daddu $a2, $zero, $zero
|
||||
.L8005EE9C:
|
||||
/* 3A29C 8005EE9C 0C018250 */ jal osSetIntMask
|
||||
/* 3A2A0 8005EEA0 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 3A2A4 8005EEA4 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 3A2A8 8005EEA8 8FB20018 */ lw $s2, 0x18($sp)
|
||||
/* 3A2AC 8005EEAC 8FB10014 */ lw $s1, 0x14($sp)
|
||||
/* 3A2B0 8005EEB0 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* 3A2B4 8005EEB4 03E00008 */ jr $ra
|
||||
/* 3A2B8 8005EEB8 27BD0020 */ addiu $sp, $sp, 0x20
|
@ -1,146 +0,0 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel nuScCreateScheduler
|
||||
/* 39DB0 8005E9B0 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* 39DB4 8005E9B4 AFB40028 */ sw $s4, 0x28($sp)
|
||||
/* 39DB8 8005E9B8 0080A02D */ daddu $s4, $a0, $zero
|
||||
/* 39DBC 8005E9BC AFB30024 */ sw $s3, 0x24($sp)
|
||||
/* 39DC0 8005E9C0 00A0982D */ daddu $s3, $a1, $zero
|
||||
/* 39DC4 8005E9C4 3C04800E */ lui $a0, 0x800e
|
||||
/* 39DC8 8005E9C8 2484AAAC */ addiu $a0, $a0, -0x5554
|
||||
/* 39DCC 8005E9CC 24020001 */ addiu $v0, $zero, 1
|
||||
/* 39DD0 8005E9D0 24030002 */ addiu $v1, $zero, 2
|
||||
/* 39DD4 8005E9D4 AFBF002C */ sw $ra, 0x2c($sp)
|
||||
/* 39DD8 8005E9D8 AFB20020 */ sw $s2, 0x20($sp)
|
||||
/* 39DDC 8005E9DC AFB1001C */ sw $s1, 0x1c($sp)
|
||||
/* 39DE0 8005E9E0 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 39DE4 8005E9E4 A482F994 */ sh $v0, -0x66c($a0)
|
||||
/* 39DE8 8005E9E8 326200FF */ andi $v0, $s3, 0xff
|
||||
/* 39DEC 8005E9EC AC82000C */ sw $v0, 0xc($a0)
|
||||
/* 39DF0 8005E9F0 A0830011 */ sb $v1, 0x11($a0)
|
||||
/* 39DF4 8005E9F4 3C028000 */ lui $v0, 0x8000
|
||||
/* 39DF8 8005E9F8 8C420300 */ lw $v0, 0x300($v0)
|
||||
/* 39DFC 8005E9FC A483F996 */ sh $v1, -0x66a($a0)
|
||||
/* 39E00 8005EA00 2483F994 */ addiu $v1, $a0, -0x66c
|
||||
/* 39E04 8005EA04 AC800000 */ sw $zero, ($a0)
|
||||
/* 39E08 8005EA08 AC800004 */ sw $zero, 4($a0)
|
||||
/* 39E0C 8005EA0C AC800008 */ sw $zero, 8($a0)
|
||||
/* 39E10 8005EA10 14400004 */ bnez $v0, .L8005EA24
|
||||
/* 39E14 8005EA14 AC80FFFC */ sw $zero, -4($a0)
|
||||
/* 39E18 8005EA18 24020032 */ addiu $v0, $zero, 0x32
|
||||
/* 39E1C 8005EA1C 08017A8B */ j .L8005EA2C
|
||||
/* 39E20 8005EA20 A062067C */ sb $v0, 0x67c($v1)
|
||||
.L8005EA24:
|
||||
/* 39E24 8005EA24 2402003C */ addiu $v0, $zero, 0x3c
|
||||
/* 39E28 8005EA28 A0820010 */ sb $v0, 0x10($a0)
|
||||
.L8005EA2C:
|
||||
/* 39E2C 8005EA2C 3C10800E */ lui $s0, 0x800e
|
||||
/* 39E30 8005EA30 2610A4B4 */ addiu $s0, $s0, -0x5b4c
|
||||
/* 39E34 8005EA34 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 39E38 8005EA38 26050018 */ addiu $a1, $s0, 0x18
|
||||
/* 39E3C 8005EA3C 3C01800A */ lui $at, 0x800a
|
||||
/* 39E40 8005EA40 A020A5B0 */ sb $zero, -0x5a50($at)
|
||||
/* 39E44 8005EA44 0C019560 */ jal osCreateMesgQueue
|
||||
/* 39E48 8005EA48 24060008 */ addiu $a2, $zero, 8
|
||||
/* 39E4C 8005EA4C 26120038 */ addiu $s2, $s0, 0x38
|
||||
/* 39E50 8005EA50 0240202D */ daddu $a0, $s2, $zero
|
||||
/* 39E54 8005EA54 26050050 */ addiu $a1, $s0, 0x50
|
||||
/* 39E58 8005EA58 0C019560 */ jal osCreateMesgQueue
|
||||
/* 39E5C 8005EA5C 24060008 */ addiu $a2, $zero, 8
|
||||
/* 39E60 8005EA60 26110070 */ addiu $s1, $s0, 0x70
|
||||
/* 39E64 8005EA64 0220202D */ daddu $a0, $s1, $zero
|
||||
/* 39E68 8005EA68 26050088 */ addiu $a1, $s0, 0x88
|
||||
/* 39E6C 8005EA6C 0C019560 */ jal osCreateMesgQueue
|
||||
/* 39E70 8005EA70 24060008 */ addiu $a2, $zero, 8
|
||||
/* 39E74 8005EA74 2604FFC8 */ addiu $a0, $s0, -0x38
|
||||
/* 39E78 8005EA78 2605FFE0 */ addiu $a1, $s0, -0x20
|
||||
/* 39E7C 8005EA7C 0C019560 */ jal osCreateMesgQueue
|
||||
/* 39E80 8005EA80 24060008 */ addiu $a2, $zero, 8
|
||||
/* 39E84 8005EA84 2604FF90 */ addiu $a0, $s0, -0x70
|
||||
/* 39E88 8005EA88 2605FFA8 */ addiu $a1, $s0, -0x58
|
||||
/* 39E8C 8005EA8C 0C019560 */ jal osCreateMesgQueue
|
||||
/* 39E90 8005EA90 24060008 */ addiu $a2, $zero, 8
|
||||
/* 39E94 8005EA94 260400A8 */ addiu $a0, $s0, 0xa8
|
||||
/* 39E98 8005EA98 260500C0 */ addiu $a1, $s0, 0xc0
|
||||
/* 39E9C 8005EA9C 0C019560 */ jal osCreateMesgQueue
|
||||
/* 39EA0 8005EAA0 24060008 */ addiu $a2, $zero, 8
|
||||
/* 39EA4 8005EAA4 0C019A9C */ jal osCreateViManager
|
||||
/* 39EA8 8005EAA8 240400FE */ addiu $a0, $zero, 0xfe
|
||||
/* 39EAC 8005EAAC 328200FF */ andi $v0, $s4, 0xff
|
||||
/* 39EB0 8005EAB0 00022080 */ sll $a0, $v0, 2
|
||||
/* 39EB4 8005EAB4 00822021 */ addu $a0, $a0, $v0
|
||||
/* 39EB8 8005EAB8 00042100 */ sll $a0, $a0, 4
|
||||
/* 39EBC 8005EABC 3C028009 */ lui $v0, 0x8009
|
||||
/* 39EC0 8005EAC0 244246A0 */ addiu $v0, $v0, 0x46a0
|
||||
/* 39EC4 8005EAC4 0C019B84 */ jal osViSetMode
|
||||
/* 39EC8 8005EAC8 00822021 */ addu $a0, $a0, $v0
|
||||
/* 39ECC 8005EACC 0C019CE0 */ jal osViBlack
|
||||
/* 39ED0 8005EAD0 24040001 */ addiu $a0, $zero, 1
|
||||
/* 39ED4 8005EAD4 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 39ED8 8005EAD8 2405029A */ addiu $a1, $zero, 0x29a
|
||||
/* 39EDC 8005EADC 0C019B6C */ jal osViSetEvent
|
||||
/* 39EE0 8005EAE0 326600FF */ andi $a2, $s3, 0xff
|
||||
/* 39EE4 8005EAE4 24040004 */ addiu $a0, $zero, 4
|
||||
/* 39EE8 8005EAE8 0240282D */ daddu $a1, $s2, $zero
|
||||
/* 39EEC 8005EAEC 0C019654 */ jal osSetEventMesg
|
||||
/* 39EF0 8005EAF0 2406029B */ addiu $a2, $zero, 0x29b
|
||||
/* 39EF4 8005EAF4 24040009 */ addiu $a0, $zero, 9
|
||||
/* 39EF8 8005EAF8 0220282D */ daddu $a1, $s1, $zero
|
||||
/* 39EFC 8005EAFC 0C019654 */ jal osSetEventMesg
|
||||
/* 39F00 8005EB00 2406029C */ addiu $a2, $zero, 0x29c
|
||||
/* 39F04 8005EB04 2404000E */ addiu $a0, $zero, 0xe
|
||||
/* 39F08 8005EB08 0200282D */ daddu $a1, $s0, $zero
|
||||
/* 39F0C 8005EB0C 0C019654 */ jal osSetEventMesg
|
||||
/* 39F10 8005EB10 2406029D */ addiu $a2, $zero, 0x29d
|
||||
/* 39F14 8005EB14 261200E4 */ addiu $s2, $s0, 0xe4
|
||||
/* 39F18 8005EB18 0240202D */ daddu $a0, $s2, $zero
|
||||
/* 39F1C 8005EB1C 24050013 */ addiu $a1, $zero, 0x13
|
||||
/* 39F20 8005EB20 3C068006 */ lui $a2, 0x8006
|
||||
/* 39F24 8005EB24 24C6EFA8 */ addiu $a2, $a2, -0x1058
|
||||
/* 39F28 8005EB28 2611FF8C */ addiu $s1, $s0, -0x74
|
||||
/* 39F2C 8005EB2C 0220382D */ daddu $a3, $s1, $zero
|
||||
/* 39F30 8005EB30 3C02800B */ lui $v0, 0x800b
|
||||
/* 39F34 8005EB34 244285D0 */ addiu $v0, $v0, -0x7a30
|
||||
/* 39F38 8005EB38 AFA20010 */ sw $v0, 0x10($sp)
|
||||
/* 39F3C 8005EB3C 24020078 */ addiu $v0, $zero, 0x78
|
||||
/* 39F40 8005EB40 0C019798 */ jal osCreateThread
|
||||
/* 39F44 8005EB44 AFA20014 */ sw $v0, 0x14($sp)
|
||||
/* 39F48 8005EB48 0C019808 */ jal osStartThread
|
||||
/* 39F4C 8005EB4C 0240202D */ daddu $a0, $s2, $zero
|
||||
/* 39F50 8005EB50 26120294 */ addiu $s2, $s0, 0x294
|
||||
/* 39F54 8005EB54 0240202D */ daddu $a0, $s2, $zero
|
||||
/* 39F58 8005EB58 24050012 */ addiu $a1, $zero, 0x12
|
||||
/* 39F5C 8005EB5C 3C068006 */ lui $a2, 0x8006
|
||||
/* 39F60 8005EB60 24C6EBE0 */ addiu $a2, $a2, -0x1420
|
||||
/* 39F64 8005EB64 0220382D */ daddu $a3, $s1, $zero
|
||||
/* 39F68 8005EB68 3C02800B */ lui $v0, 0x800b
|
||||
/* 39F6C 8005EB6C 2442A5D0 */ addiu $v0, $v0, -0x5a30
|
||||
/* 39F70 8005EB70 AFA20010 */ sw $v0, 0x10($sp)
|
||||
/* 39F74 8005EB74 2402006E */ addiu $v0, $zero, 0x6e
|
||||
/* 39F78 8005EB78 0C019798 */ jal osCreateThread
|
||||
/* 39F7C 8005EB7C AFA20014 */ sw $v0, 0x14($sp)
|
||||
/* 39F80 8005EB80 0C019808 */ jal osStartThread
|
||||
/* 39F84 8005EB84 0240202D */ daddu $a0, $s2, $zero
|
||||
/* 39F88 8005EB88 26100444 */ addiu $s0, $s0, 0x444
|
||||
/* 39F8C 8005EB8C 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 39F90 8005EB90 24050011 */ addiu $a1, $zero, 0x11
|
||||
/* 39F94 8005EB94 3C068006 */ lui $a2, 0x8006
|
||||
/* 39F98 8005EB98 24C6ED14 */ addiu $a2, $a2, -0x12ec
|
||||
/* 39F9C 8005EB9C 0220382D */ daddu $a3, $s1, $zero
|
||||
/* 39FA0 8005EBA0 3C02800B */ lui $v0, 0x800b
|
||||
/* 39FA4 8005EBA4 2442C5D0 */ addiu $v0, $v0, -0x3a30
|
||||
/* 39FA8 8005EBA8 AFA20010 */ sw $v0, 0x10($sp)
|
||||
/* 39FAC 8005EBAC 24020064 */ addiu $v0, $zero, 0x64
|
||||
/* 39FB0 8005EBB0 0C019798 */ jal osCreateThread
|
||||
/* 39FB4 8005EBB4 AFA20014 */ sw $v0, 0x14($sp)
|
||||
/* 39FB8 8005EBB8 0C019808 */ jal osStartThread
|
||||
/* 39FBC 8005EBBC 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 39FC0 8005EBC0 8FBF002C */ lw $ra, 0x2c($sp)
|
||||
/* 39FC4 8005EBC4 8FB40028 */ lw $s4, 0x28($sp)
|
||||
/* 39FC8 8005EBC8 8FB30024 */ lw $s3, 0x24($sp)
|
||||
/* 39FCC 8005EBCC 8FB20020 */ lw $s2, 0x20($sp)
|
||||
/* 39FD0 8005EBD0 8FB1001C */ lw $s1, 0x1c($sp)
|
||||
/* 39FD4 8005EBD4 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 39FD8 8005EBD8 03E00008 */ jr $ra
|
||||
/* 39FDC 8005EBDC 27BD0030 */ addiu $sp, $sp, 0x30
|
@ -84,77 +84,3 @@ glabel nuScExecuteAudio
|
||||
/* 3A108 8005ED08 24060001 */ addiu $a2, $zero, 1
|
||||
/* 3A10C 8005ED0C 08017B06 */ j .L8005EC18
|
||||
/* 3A110 8005ED10 0280202D */ daddu $a0, $s4, $zero
|
||||
/* 3A114 8005ED14 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 3A118 8005ED18 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 3A11C 8005ED1C 3C10800E */ lui $s0, 0x800e
|
||||
/* 3A120 8005ED20 2610A47C */ addiu $s0, $s0, -0x5b84
|
||||
/* 3A124 8005ED24 AFB1001C */ sw $s1, 0x1c($sp)
|
||||
/* 3A128 8005ED28 27B10014 */ addiu $s1, $sp, 0x14
|
||||
/* 3A12C 8005ED2C AFBF0020 */ sw $ra, 0x20($sp)
|
||||
/* 3A130 8005ED30 0200202D */ daddu $a0, $s0, $zero
|
||||
.L8005ED34:
|
||||
/* 3A134 8005ED34 27A50010 */ addiu $a1, $sp, 0x10
|
||||
/* 3A138 8005ED38 0C0195BC */ jal osRecvMesg
|
||||
/* 3A13C 8005ED3C 24060001 */ addiu $a2, $zero, 1
|
||||
/* 3A140 8005ED40 3C02800A */ lui $v0, 0x800a
|
||||
/* 3A144 8005ED44 9042A5B0 */ lbu $v0, -0x5a50($v0)
|
||||
/* 3A148 8005ED48 30420002 */ andi $v0, $v0, 2
|
||||
/* 3A14C 8005ED4C 14400032 */ bnez $v0, .L8005EE18
|
||||
/* 3A150 8005ED50 00000000 */ nop
|
||||
/* 3A154 8005ED54 0C017C48 */ jal nuScWaitTaskReady
|
||||
/* 3A158 8005ED58 8FA40010 */ lw $a0, 0x10($sp)
|
||||
/* 3A15C 8005ED5C 0C018250 */ jal osSetIntMask
|
||||
/* 3A160 8005ED60 24040001 */ addiu $a0, $zero, 1
|
||||
/* 3A164 8005ED64 8E030634 */ lw $v1, 0x634($s0)
|
||||
/* 3A168 8005ED68 1060000C */ beqz $v1, .L8005ED9C
|
||||
/* 3A16C 8005ED6C 0040202D */ daddu $a0, $v0, $zero
|
||||
/* 3A170 8005ED70 8FA20010 */ lw $v0, 0x10($sp)
|
||||
/* 3A174 8005ED74 0C018250 */ jal osSetIntMask
|
||||
/* 3A178 8005ED78 AE020638 */ sw $v0, 0x638($s0)
|
||||
/* 3A17C 8005ED7C 260400E0 */ addiu $a0, $s0, 0xe0
|
||||
/* 3A180 8005ED80 27A50014 */ addiu $a1, $sp, 0x14
|
||||
/* 3A184 8005ED84 0C0195BC */ jal osRecvMesg
|
||||
/* 3A188 8005ED88 24060001 */ addiu $a2, $zero, 1
|
||||
/* 3A18C 8005ED8C 0C018250 */ jal osSetIntMask
|
||||
/* 3A190 8005ED90 24040001 */ addiu $a0, $zero, 1
|
||||
/* 3A194 8005ED94 0040202D */ daddu $a0, $v0, $zero
|
||||
/* 3A198 8005ED98 AE000638 */ sw $zero, 0x638($s0)
|
||||
.L8005ED9C:
|
||||
/* 3A19C 8005ED9C 0C018250 */ jal osSetIntMask
|
||||
/* 3A1A0 8005EDA0 00000000 */ nop
|
||||
/* 3A1A4 8005EDA4 0C018250 */ jal osSetIntMask
|
||||
/* 3A1A8 8005EDA8 24040001 */ addiu $a0, $zero, 1
|
||||
/* 3A1AC 8005EDAC 8FA30010 */ lw $v1, 0x10($sp)
|
||||
/* 3A1B0 8005EDB0 0040202D */ daddu $a0, $v0, $zero
|
||||
/* 3A1B4 8005EDB4 0C018250 */ jal osSetIntMask
|
||||
/* 3A1B8 8005EDB8 AE030630 */ sw $v1, 0x630($s0)
|
||||
/* 3A1BC 8005EDBC 8FA40010 */ lw $a0, 0x10($sp)
|
||||
/* 3A1C0 8005EDC0 0C019684 */ jal osSpTaskLoad
|
||||
/* 3A1C4 8005EDC4 24840010 */ addiu $a0, $a0, 0x10
|
||||
/* 3A1C8 8005EDC8 8FA40010 */ lw $a0, 0x10($sp)
|
||||
/* 3A1CC 8005EDCC 0C019707 */ jal osSpTaskStartGo
|
||||
/* 3A1D0 8005EDD0 24840010 */ addiu $a0, $a0, 0x10
|
||||
/* 3A1D4 8005EDD4 26040070 */ addiu $a0, $s0, 0x70
|
||||
/* 3A1D8 8005EDD8 0220282D */ daddu $a1, $s1, $zero
|
||||
/* 3A1DC 8005EDDC 0C0195BC */ jal osRecvMesg
|
||||
/* 3A1E0 8005EDE0 24060001 */ addiu $a2, $zero, 1
|
||||
/* 3A1E4 8005EDE4 0C018250 */ jal osSetIntMask
|
||||
/* 3A1E8 8005EDE8 24040001 */ addiu $a0, $zero, 1
|
||||
/* 3A1EC 8005EDEC 0040202D */ daddu $a0, $v0, $zero
|
||||
/* 3A1F0 8005EDF0 0C018250 */ jal osSetIntMask
|
||||
/* 3A1F4 8005EDF4 AE000630 */ sw $zero, 0x630($s0)
|
||||
/* 3A1F8 8005EDF8 8FA20010 */ lw $v0, 0x10($sp)
|
||||
/* 3A1FC 8005EDFC 8C420008 */ lw $v0, 8($v0)
|
||||
/* 3A200 8005EE00 30420002 */ andi $v0, $v0, 2
|
||||
/* 3A204 8005EE04 14400004 */ bnez $v0, .L8005EE18
|
||||
/* 3A208 8005EE08 260400A8 */ addiu $a0, $s0, 0xa8
|
||||
/* 3A20C 8005EE0C 0220282D */ daddu $a1, $s1, $zero
|
||||
/* 3A210 8005EE10 0C0195BC */ jal osRecvMesg
|
||||
/* 3A214 8005EE14 24060001 */ addiu $a2, $zero, 1
|
||||
.L8005EE18:
|
||||
/* 3A218 8005EE18 8FA50010 */ lw $a1, 0x10($sp)
|
||||
/* 3A21C 8005EE1C 8CA40050 */ lw $a0, 0x50($a1)
|
||||
/* 3A220 8005EE20 0C019608 */ jal osSendMesg
|
||||
/* 3A224 8005EE24 24060001 */ addiu $a2, $zero, 1
|
||||
/* 3A228 8005EE28 08017B4D */ j .L8005ED34
|
||||
/* 3A22C 8005EE2C 0200202D */ daddu $a0, $s0, $zero
|
||||
|
79
asm/nonmatchings/os/code_39db0_len_8a0/nuScExecuteGraphics.s
Normal file
79
asm/nonmatchings/os/code_39db0_len_8a0/nuScExecuteGraphics.s
Normal file
@ -0,0 +1,79 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel nuScExecuteGraphics
|
||||
|
||||
/* 3A114 8005ED14 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 3A118 8005ED18 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 3A11C 8005ED1C 3C10800E */ lui $s0, 0x800e
|
||||
/* 3A120 8005ED20 2610A47C */ addiu $s0, $s0, -0x5b84
|
||||
/* 3A124 8005ED24 AFB1001C */ sw $s1, 0x1c($sp)
|
||||
/* 3A128 8005ED28 27B10014 */ addiu $s1, $sp, 0x14
|
||||
/* 3A12C 8005ED2C AFBF0020 */ sw $ra, 0x20($sp)
|
||||
/* 3A130 8005ED30 0200202D */ daddu $a0, $s0, $zero
|
||||
.L8005ED34:
|
||||
/* 3A134 8005ED34 27A50010 */ addiu $a1, $sp, 0x10
|
||||
/* 3A138 8005ED38 0C0195BC */ jal osRecvMesg
|
||||
/* 3A13C 8005ED3C 24060001 */ addiu $a2, $zero, 1
|
||||
/* 3A140 8005ED40 3C02800A */ lui $v0, 0x800a
|
||||
/* 3A144 8005ED44 9042A5B0 */ lbu $v0, -0x5a50($v0)
|
||||
/* 3A148 8005ED48 30420002 */ andi $v0, $v0, 2
|
||||
/* 3A14C 8005ED4C 14400032 */ bnez $v0, .L8005EE18
|
||||
/* 3A150 8005ED50 00000000 */ nop
|
||||
/* 3A154 8005ED54 0C017C48 */ jal nuScWaitTaskReady
|
||||
/* 3A158 8005ED58 8FA40010 */ lw $a0, 0x10($sp)
|
||||
/* 3A15C 8005ED5C 0C018250 */ jal osSetIntMask
|
||||
/* 3A160 8005ED60 24040001 */ addiu $a0, $zero, 1
|
||||
/* 3A164 8005ED64 8E030634 */ lw $v1, 0x634($s0)
|
||||
/* 3A168 8005ED68 1060000C */ beqz $v1, .L8005ED9C
|
||||
/* 3A16C 8005ED6C 0040202D */ daddu $a0, $v0, $zero
|
||||
/* 3A170 8005ED70 8FA20010 */ lw $v0, 0x10($sp)
|
||||
/* 3A174 8005ED74 0C018250 */ jal osSetIntMask
|
||||
/* 3A178 8005ED78 AE020638 */ sw $v0, 0x638($s0)
|
||||
/* 3A17C 8005ED7C 260400E0 */ addiu $a0, $s0, 0xe0
|
||||
/* 3A180 8005ED80 27A50014 */ addiu $a1, $sp, 0x14
|
||||
/* 3A184 8005ED84 0C0195BC */ jal osRecvMesg
|
||||
/* 3A188 8005ED88 24060001 */ addiu $a2, $zero, 1
|
||||
/* 3A18C 8005ED8C 0C018250 */ jal osSetIntMask
|
||||
/* 3A190 8005ED90 24040001 */ addiu $a0, $zero, 1
|
||||
/* 3A194 8005ED94 0040202D */ daddu $a0, $v0, $zero
|
||||
/* 3A198 8005ED98 AE000638 */ sw $zero, 0x638($s0)
|
||||
.L8005ED9C:
|
||||
/* 3A19C 8005ED9C 0C018250 */ jal osSetIntMask
|
||||
/* 3A1A0 8005EDA0 00000000 */ nop
|
||||
/* 3A1A4 8005EDA4 0C018250 */ jal osSetIntMask
|
||||
/* 3A1A8 8005EDA8 24040001 */ addiu $a0, $zero, 1
|
||||
/* 3A1AC 8005EDAC 8FA30010 */ lw $v1, 0x10($sp)
|
||||
/* 3A1B0 8005EDB0 0040202D */ daddu $a0, $v0, $zero
|
||||
/* 3A1B4 8005EDB4 0C018250 */ jal osSetIntMask
|
||||
/* 3A1B8 8005EDB8 AE030630 */ sw $v1, 0x630($s0)
|
||||
/* 3A1BC 8005EDBC 8FA40010 */ lw $a0, 0x10($sp)
|
||||
/* 3A1C0 8005EDC0 0C019684 */ jal osSpTaskLoad
|
||||
/* 3A1C4 8005EDC4 24840010 */ addiu $a0, $a0, 0x10
|
||||
/* 3A1C8 8005EDC8 8FA40010 */ lw $a0, 0x10($sp)
|
||||
/* 3A1CC 8005EDCC 0C019707 */ jal osSpTaskStartGo
|
||||
/* 3A1D0 8005EDD0 24840010 */ addiu $a0, $a0, 0x10
|
||||
/* 3A1D4 8005EDD4 26040070 */ addiu $a0, $s0, 0x70
|
||||
/* 3A1D8 8005EDD8 0220282D */ daddu $a1, $s1, $zero
|
||||
/* 3A1DC 8005EDDC 0C0195BC */ jal osRecvMesg
|
||||
/* 3A1E0 8005EDE0 24060001 */ addiu $a2, $zero, 1
|
||||
/* 3A1E4 8005EDE4 0C018250 */ jal osSetIntMask
|
||||
/* 3A1E8 8005EDE8 24040001 */ addiu $a0, $zero, 1
|
||||
/* 3A1EC 8005EDEC 0040202D */ daddu $a0, $v0, $zero
|
||||
/* 3A1F0 8005EDF0 0C018250 */ jal osSetIntMask
|
||||
/* 3A1F4 8005EDF4 AE000630 */ sw $zero, 0x630($s0)
|
||||
/* 3A1F8 8005EDF8 8FA20010 */ lw $v0, 0x10($sp)
|
||||
/* 3A1FC 8005EDFC 8C420008 */ lw $v0, 8($v0)
|
||||
/* 3A200 8005EE00 30420002 */ andi $v0, $v0, 2
|
||||
/* 3A204 8005EE04 14400004 */ bnez $v0, .L8005EE18
|
||||
/* 3A208 8005EE08 260400A8 */ addiu $a0, $s0, 0xa8
|
||||
/* 3A20C 8005EE0C 0220282D */ daddu $a1, $s1, $zero
|
||||
/* 3A210 8005EE10 0C0195BC */ jal osRecvMesg
|
||||
/* 3A214 8005EE14 24060001 */ addiu $a2, $zero, 1
|
||||
.L8005EE18:
|
||||
/* 3A218 8005EE18 8FA50010 */ lw $a1, 0x10($sp)
|
||||
/* 3A21C 8005EE1C 8CA40050 */ lw $a0, 0x50($a1)
|
||||
/* 3A220 8005EE20 0C019608 */ jal osSendMesg
|
||||
/* 3A224 8005EE24 24060001 */ addiu $a2, $zero, 1
|
||||
/* 3A228 8005EE28 08017B4D */ j .L8005ED34
|
||||
/* 3A22C 8005EE2C 0200202D */ daddu $a0, $s0, $zero
|
@ -1,7 +1,7 @@
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel osMotorAccess
|
||||
glabel __osMotorAccess
|
||||
/* 43200 80067E00 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 43204 80067E04 AFB10014 */ sw $s1, 0x14($sp)
|
||||
/* 43208 80067E08 00808821 */ addu $s1, $a0, $zero
|
||||
@ -20,6 +20,7 @@ glabel osMotorAccess
|
||||
/* 4323C 80067E3C 00449021 */ addu $s2, $v0, $a0
|
||||
/* 43240 80067E40 08019FCA */ j .L80067F28
|
||||
/* 43244 80067E44 24020005 */ addiu $v0, $zero, 5
|
||||
|
||||
.L80067E48:
|
||||
/* 43248 80067E48 0C019771 */ jal osSiGetAccess
|
||||
/* 4324C 80067E4C 00000000 */ nop
|
1052
include/nu/nusys.h
Normal file
1052
include/nu/nusys.h
Normal file
File diff suppressed because it is too large
Load Diff
@ -119,6 +119,9 @@ extern UNK_TYPE D_80108558;
|
||||
extern UNK_TYPE D_8010F250; // play_sound state struct?
|
||||
extern s8 D_8010EBB0[];
|
||||
|
||||
//nusys
|
||||
extern OSPiHandle* carthandle;
|
||||
|
||||
extern SaveData gCurrentSaveFile;
|
||||
|
||||
extern s32 D_802D9CA4;
|
||||
|
@ -51,15 +51,22 @@ SECTIONS
|
||||
build/src/code_362a0_len_2f70.o(.text);
|
||||
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/code_3a650_len_40.o(.text);
|
||||
build/src/os/code_3a690_len_40.o(.text);
|
||||
build/src/os/code_3a6d0_len_20.o(.text);
|
||||
build/src/os/code_3a6f0_len_110.o(.text);
|
||||
build/src/os/code_3a800_len_30.o(.text);
|
||||
build/src/os/code_3a830_len_20.o(.text);
|
||||
build/src/os/code_3a850_le_a40.o(.text);
|
||||
build/src/os/code_3b290_len_100.o(.text);
|
||||
build/src/os/nusys/nuSched.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/nusys/nuContRmbStart.o(.text);
|
||||
build/src/os/nusys/nuContRmbCheck.o(.text);
|
||||
build/src/os/code_3b390_len_110.o(.text);
|
||||
build/src/os/code_3b4a0_len_270.o(.text);
|
||||
build/src/os/code_3b710_len_40.o(.text);
|
||||
|
@ -1,25 +0,0 @@
|
||||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_39db0_len_8a0", nuScCreateScheduler);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_39db0_len_8a0", nuScExecuteAudio);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_39db0_len_8a0", nuScAddClient);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_39db0_len_8a0", nuScRemoveClient);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_39db0_len_8a0", nuScResetClientMesgType);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_39db0_len_8a0", nuScGetGfxMQ);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_39db0_len_8a0", nuScGetAudioMQ);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_39db0_len_8a0", nuScSetFrameBufferNum);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_39db0_len_8a0", nuScGetFrameRate);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_39db0_len_8a0", nuScEventHandler);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_39db0_len_8a0", nuScEventBroadcast);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_39db0_len_8a0", nuScWaitTaskReady);
|
@ -1,3 +0,0 @@
|
||||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a650_len_40", nuGfxFuncSet);
|
@ -1,3 +0,0 @@
|
||||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a690_len_40", nuGfxPreNMIFuncSet);
|
@ -1,3 +0,0 @@
|
||||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a6d0_len_20", nuGfxTaskAllEndWait);
|
@ -1,3 +0,0 @@
|
||||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a6f0_len_110", nuGfxSetCfb);
|
@ -1,3 +0,0 @@
|
||||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a800_len_30", nuGfxDisplayOff);
|
@ -1,3 +0,0 @@
|
||||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a830_len_20", nuGfxDisplayOn);
|
@ -1,50 +0,0 @@
|
||||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a850_le_a40", nuPiInit);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a850_le_a40", nuPiReadRom);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a850_le_a40", nuGfxInit);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a850_le_a40", nuContInit);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a850_le_a40", nuContDataGet);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a850_le_a40", nuContPakMgrInit);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a850_le_a40", nuContPakMgrRemove);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a850_le_a40", contPakOpen);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a850_le_a40", contPakFree);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a850_le_a40", contPakFileReadWrite);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a850_le_a40", contPakFileOpen);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a850_le_a40", contPakFileDelete);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a850_le_a40", contPakFileState);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a850_le_a40", contPakFileNum);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a850_le_a40", contPakRepairId);
|
||||
|
||||
#undef osMotorStop
|
||||
INCLUDE_ASM(s32, "os/code_3a850_le_a40", osMotorStop, OSPfs* unk);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a850_le_a40", contRmbControl);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a850_le_a40", nuContRmbMgrInit);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a850_le_a40", nuContRmbMgrRemove);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a850_le_a40", contRmbCheckMesg);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a850_le_a40", contRmbStartMesg);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a850_le_a40", func_8005FDE4);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a850_le_a40", func_8005FE0C);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3a850_le_a40", func_8005FE54);
|
@ -1,5 +0,0 @@
|
||||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3b290_len_100", nuContRmbStart);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_3b290_len_100", nuContRmbCheck);
|
@ -1,6 +1,6 @@
|
||||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_43200_len_7c0", osMotorAccess);
|
||||
INCLUDE_ASM(s32, "os/code_43200_len_7c0", __osMotorAccess, OSPfs* pfs, s32 unk);
|
||||
|
||||
INCLUDE_ASM(s32, "os/code_43200_len_7c0", osMotorInit, OSMesgQueue* queue, OSPfs* pfs, int unk);
|
||||
|
||||
|
8
src/os/nusys/nuContDataGet.c
Normal file
8
src/os/nusys/nuContDataGet.c
Normal file
@ -0,0 +1,8 @@
|
||||
#include "common.h"
|
||||
#include "nu/nusys.h"
|
||||
|
||||
void nuContDataGet(OSContPad* contdata, u32 padno) {
|
||||
nuContDataClose();
|
||||
bcopy(&nuContData[padno], contdata, sizeof(OSContPad));
|
||||
nuContDataOpen();
|
||||
}
|
11
src/os/nusys/nuContInit.c
Normal file
11
src/os/nusys/nuContInit.c
Normal file
@ -0,0 +1,11 @@
|
||||
#include "common.h"
|
||||
#include "nu/nusys.h"
|
||||
|
||||
u8 nuContInit(void) {
|
||||
u8 contBits = nuSiMgrInit();
|
||||
|
||||
nuContMgrInit();
|
||||
nuContPakMgrInit();
|
||||
nuContRmbMgrInit();
|
||||
return contBits;
|
||||
}
|
78
src/os/nusys/nuContPakMgr.c
Normal file
78
src/os/nusys/nuContPakMgr.c
Normal file
@ -0,0 +1,78 @@
|
||||
#include "common.h"
|
||||
#include "nu/nusys.h"
|
||||
|
||||
void nuContPakMgrInit(void) {
|
||||
nuSiCallBackAdd(&nuContCallBack);
|
||||
}
|
||||
|
||||
void nuContPakMgrRemove(void) {
|
||||
nuSiCallBackRemove(&nuContCallBack);
|
||||
}
|
||||
|
||||
static s32 contPakOpen(NUSiCommonMesg* mesg) {
|
||||
s32 err;
|
||||
NUContPakFile* file = (NUContPakFile*) mesg->dataPtr;
|
||||
|
||||
file->type = NU_CONT_PAK_TYPE_NONE;
|
||||
err = osPfsInitPak(&nuSiMesgQ, file->pfs, file->pfs->channel);
|
||||
|
||||
if (err == 0) {
|
||||
file->type = NU_CONT_PAK_TYPE_PAK;
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
static s32 contPakFree(NUSiCommonMesg* mesg) {
|
||||
NUContPakFreeMesg* freeMesg = (NUContPakFreeMesg*) mesg->dataPtr;
|
||||
|
||||
return osPfsFreeBlocks(freeMesg->file->pfs, &freeMesg->size);
|
||||
}
|
||||
|
||||
static s32 contPakFileReadWrite(NUSiCommonMesg* mesg) {
|
||||
NUContPakFileRWMesg* rwMesg = (NUContPakFileRWMesg*) mesg->dataPtr;
|
||||
|
||||
return osPfsReadWriteFile(rwMesg->file->pfs, rwMesg->file->file_no, rwMesg->mode, rwMesg->offset, rwMesg->size,
|
||||
rwMesg->buf);
|
||||
}
|
||||
|
||||
static s32 contPakFileOpen(NUSiCommonMesg* mesg) {
|
||||
NUContPakFileOpenMesg* openMesg = mesg->dataPtr;
|
||||
NUContPakFile* file = openMesg->file;
|
||||
s32 err;
|
||||
|
||||
err = osPfsFindFile(file->pfs, nuContPakCompanyCode, nuContPakGameCode, openMesg->noteName, openMesg->extName,
|
||||
&file->file_no);
|
||||
if (err == PFS_ERR_INVALID) {
|
||||
if (openMesg->mode == NU_CONT_PAK_MODE_CREATE) {
|
||||
err = osPfsAllocateFile(file->pfs, nuContPakCompanyCode, nuContPakGameCode, openMesg->noteName, openMesg->extName,
|
||||
openMesg->size, &file->file_no);
|
||||
}
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
static s32 contPakFileDelete(NUSiCommonMesg* mesg) {
|
||||
NUContPakFileOpenMesg* openMesg = (NUContPakFileOpenMesg*) mesg->dataPtr;
|
||||
|
||||
return osPfsDeleteFile(openMesg->file->pfs, nuContPakCompanyCode, nuContPakGameCode, openMesg->noteName,
|
||||
openMesg->extName);
|
||||
}
|
||||
|
||||
static s32 contPakFileState(NUSiCommonMesg* mesg) {
|
||||
NUContPakFileStateMesg* state = (NUContPakFileStateMesg*) mesg->dataPtr;
|
||||
|
||||
return osPfsFileState(state->file->pfs, state->file->file_no, state->state);
|
||||
}
|
||||
|
||||
static s32 contPakFileNum(NUSiCommonMesg* mesg) {
|
||||
NUContPakFileNumMesg* fileNum = (NUContPakFileNumMesg*) mesg->dataPtr;
|
||||
|
||||
return osPfsNumFiles(fileNum->file->pfs, fileNum->max_files, fileNum->used_files);
|
||||
}
|
||||
|
||||
static s32 contPakRepairId(NUSiCommonMesg* mesg) {
|
||||
NUContPakFile* file = (NUContPakFile*) mesg->dataPtr;
|
||||
|
||||
return osPfsRepairId(file->pfs);
|
||||
}
|
21
src/os/nusys/nuContRmbCheck.c
Normal file
21
src/os/nusys/nuContRmbCheck.c
Normal file
@ -0,0 +1,21 @@
|
||||
#include "common.h"
|
||||
#include "nu/nusys.h"
|
||||
|
||||
s32 nuContRmbCheck(u32 contNo) {
|
||||
NUContRmbMesg mesg;
|
||||
s32 err;
|
||||
OSIntMask mask;
|
||||
|
||||
mesg.contNo = contNo;
|
||||
err = nuSiSendMesg(NU_CONT_RMB_CHECK_MSG, &mesg);
|
||||
mask = osSetIntMask(1);
|
||||
|
||||
if (err == 0) {
|
||||
nuContRmbCtl[contNo].type = NU_CONT_PAK_TYPE_RUMBLE;
|
||||
} else {
|
||||
nuContRmbCtl[contNo].type = NU_CONT_PAK_TYPE_NONE;
|
||||
}
|
||||
osSetIntMask(mask);
|
||||
|
||||
return err;
|
||||
}
|
162
src/os/nusys/nuContRmbMgr.c
Normal file
162
src/os/nusys/nuContRmbMgr.c
Normal file
@ -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
|
||||
INCLUDE_ASM(void, "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;
|
||||
}
|
||||
|
||||
s32 contRmbForceStopEndMesg(NUSiCommonMesg* mesg) {
|
||||
u32 i;
|
||||
|
||||
for (i = 0; i < NU_CONT_MAXCONTROLLERS; i++) {
|
||||
nuContRmbCtl[i].mode &= ~NU_CONT_RMB_MODE_PAUSE;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
16
src/os/nusys/nuContRmbStart.c
Normal file
16
src/os/nusys/nuContRmbStart.c
Normal file
@ -0,0 +1,16 @@
|
||||
#include "common.h"
|
||||
#include "nu/nusys.h"
|
||||
|
||||
void nuContRmbStart(u32 contNo, u16 freq, u16 frame) {
|
||||
NUContRmbCtl ctl;
|
||||
NUContRmbMesg mesg;
|
||||
|
||||
if (!(nuContRmbCtl[contNo].mode & NU_CONT_RMB_MODE_PAUSE)) {
|
||||
ctl.state = NU_CONT_RMB_STATE_RUN;
|
||||
ctl.freq = freq;
|
||||
ctl.frame = frame;
|
||||
mesg.data = &ctl;
|
||||
mesg.contNo = contNo;
|
||||
nuSiSendMesg(NU_CONT_RMB_START_MSG, &mesg);
|
||||
}
|
||||
}
|
7
src/os/nusys/nuGfxDisplayOff.c
Normal file
7
src/os/nusys/nuGfxDisplayOff.c
Normal file
@ -0,0 +1,7 @@
|
||||
#include "common.h"
|
||||
#include "nu/nusys.h"
|
||||
|
||||
void nuGfxDisplayOff(void) {
|
||||
nuGfxDisplay = NU_GFX_DISPLAY_OFF;
|
||||
osViBlack(TRUE);
|
||||
}
|
6
src/os/nusys/nuGfxDisplayOn.c
Normal file
6
src/os/nusys/nuGfxDisplayOn.c
Normal file
@ -0,0 +1,6 @@
|
||||
#include "common.h"
|
||||
#include "nu/nusys.h"
|
||||
|
||||
void nuGfxDisplayOn(void) {
|
||||
nuGfxDisplay = NU_GFX_DISPLAY_ON_TRIGGER;
|
||||
}
|
11
src/os/nusys/nuGfxFuncSet.c
Normal file
11
src/os/nusys/nuGfxFuncSet.c
Normal file
@ -0,0 +1,11 @@
|
||||
#include "common.h"
|
||||
#include "nu/nusys.h"
|
||||
|
||||
void nuGfxFuncSet(NUGfxFunc func) {
|
||||
OSIntMask intMask;
|
||||
|
||||
nuGfxTaskAllEndWait();
|
||||
intMask = osSetIntMask(OS_IM_NONE);
|
||||
nuGfxFunc = func;
|
||||
osSetIntMask(intMask);
|
||||
}
|
28
src/os/nusys/nuGfxInit.c
Normal file
28
src/os/nusys/nuGfxInit.c
Normal file
@ -0,0 +1,28 @@
|
||||
#include "common.h"
|
||||
#include "nu/nusys.h"
|
||||
|
||||
extern u16* FrameBuf[3];
|
||||
extern UNK_PTR D_8009A610;
|
||||
extern UNK_PTR D_80093BA0;
|
||||
extern Gfx rdpstateinit_dl[];
|
||||
|
||||
void nuGfxInit(void) {
|
||||
Gfx gfx[0x100];
|
||||
Gfx* ptr;
|
||||
|
||||
nuGfxThreadStart();
|
||||
nuGfxSetCfb(FrameBuf, NU_GFX_FRAMEBUFFER_NUM);
|
||||
nuGfxSetZBuffer((u16*) NU_GFX_ZBUFFER_ADDR);
|
||||
nuGfxSwapCfbFuncSet(nuGfxSwapCfb);
|
||||
D_8009A610 = &D_80093BA0;
|
||||
nuGfxTaskMgrInit();
|
||||
|
||||
ptr = gfx;
|
||||
// TODO: Verify that this macro call works in PM64.
|
||||
gSPDisplayList(ptr++, OS_K0_TO_PHYSICAL(&rdpstateinit_dl));
|
||||
gDPFullSync(ptr++);
|
||||
gSPEndDisplayList(ptr++);
|
||||
|
||||
nuGfxTaskStart(gfx, (s32)(ptr - gfx) * sizeof(Gfx), NU_GFX_UCODE_F3DEX, NU_SC_NOSWAPBUFFER);
|
||||
nuGfxTaskAllEndWait();
|
||||
}
|
9
src/os/nusys/nuGfxPreNMIFuncSet.c
Normal file
9
src/os/nusys/nuGfxPreNMIFuncSet.c
Normal file
@ -0,0 +1,9 @@
|
||||
#include "common.h"
|
||||
#include "nu/nusys.h"
|
||||
|
||||
void nuGfxPreNMIFuncSet(NUGfxPreNMIFunc func) {
|
||||
OSIntMask intMask = osSetIntMask(OS_IM_NONE);
|
||||
|
||||
nuGfxPreNMIFunc = func;
|
||||
osSetIntMask(intMask);
|
||||
}
|
3
src/os/nusys/nuGfxSetCfb.c
Normal file
3
src/os/nusys/nuGfxSetCfb.c
Normal file
@ -0,0 +1,3 @@
|
||||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM(void, "os/nuGfxSetCfb", nuGfxSetCfb);
|
7
src/os/nusys/nuGfxTaskAllEndWait.c
Normal file
7
src/os/nusys/nuGfxTaskAllEndWait.c
Normal file
@ -0,0 +1,7 @@
|
||||
#include "common.h"
|
||||
#include "nu/nusys.h"
|
||||
|
||||
void nuGfxTaskAllEndWait(void) {
|
||||
while (nuGfxTaskSpool) {
|
||||
}
|
||||
}
|
10
src/os/nusys/nuPiInit.c
Normal file
10
src/os/nusys/nuPiInit.c
Normal file
@ -0,0 +1,10 @@
|
||||
#include "common.h"
|
||||
#include "nu/nusys.h"
|
||||
|
||||
extern OSMesgQueue D_800AC5D0;
|
||||
extern OSMesg D_800AC5E8[NU_PI_MESG_NUM];
|
||||
|
||||
void nuPiInit(void) {
|
||||
osCreatePiManager(OS_PRIORITY_PIMGR, &D_800AC5D0, D_800AC5E8, NU_PI_MESG_NUM);
|
||||
carthandle = osCartRomInit();
|
||||
}
|
35
src/os/nusys/nuPiReadRom.c
Normal file
35
src/os/nusys/nuPiReadRom.c
Normal file
@ -0,0 +1,35 @@
|
||||
#include "common.h"
|
||||
#include "nu/nusys.h"
|
||||
|
||||
void nuPiReadRom(u32 rom_addr, void* buf_ptr, u32 size) {
|
||||
OSIoMesg ioMesg;
|
||||
OSMesg mesg;
|
||||
OSMesgQueue queue;
|
||||
u32 mesgSize;
|
||||
|
||||
osCreateMesgQueue(&queue, &mesg, 1);
|
||||
|
||||
ioMesg.hdr.pri = OS_MESG_PRI_NORMAL;
|
||||
ioMesg.hdr.retQueue = &queue;
|
||||
osInvalDCache(buf_ptr, size);
|
||||
osInvalICache(buf_ptr, size);
|
||||
|
||||
while (size != 0) {
|
||||
mesgSize = size;
|
||||
|
||||
if (size > 0x4000) {
|
||||
mesgSize = 0x4000;
|
||||
}
|
||||
|
||||
ioMesg.dramAddr = buf_ptr;
|
||||
ioMesg.devAddr = rom_addr;
|
||||
ioMesg.size = mesgSize;
|
||||
|
||||
osEPiStartDma(carthandle, &ioMesg, OS_READ);
|
||||
osRecvMesg(&queue, &mesg, OS_MESG_BLOCK);
|
||||
|
||||
rom_addr += mesgSize;
|
||||
buf_ptr += mesgSize;
|
||||
size -= mesgSize;
|
||||
}
|
||||
}
|
162
src/os/nusys/nuSched.c
Normal file
162
src/os/nusys/nuSched.c
Normal file
@ -0,0 +1,162 @@
|
||||
#include "common.h"
|
||||
#include "nu/nusys.h"
|
||||
|
||||
void nuScEventHandler(void);
|
||||
void nuScExecuteAudio(void);
|
||||
void nuScExecuteGraphics(void);
|
||||
|
||||
extern u8 D_8009A5B0;
|
||||
|
||||
extern u64 nuScStack[NU_SC_STACK_SIZE / sizeof(u64)];
|
||||
extern u64 nuScAudioStack[NU_SC_STACK_SIZE / sizeof(u64)];
|
||||
extern u64 nuScGraphicsStack[NU_SC_STACK_SIZE / sizeof(u64)];
|
||||
|
||||
void nuScCreateScheduler(u8 videoMode, u8 numFields) {
|
||||
nusched.curGraphicsTask = NULL;
|
||||
nusched.curAudioTask = NULL;
|
||||
nusched.graphicsTaskSuspended = NULL;
|
||||
nusched.clientList = NULL;
|
||||
|
||||
nusched.retraceMsg = NU_SC_RETRACE_MSG;
|
||||
nusched.prenmiMsg = NU_SC_PRENMI_MSG;
|
||||
nusched.retraceCount = numFields;
|
||||
nusched.frameBufferNum = 2;
|
||||
|
||||
if (osTvType == OS_TV_PAL) {
|
||||
nusched.frameRate = 50;
|
||||
} else {
|
||||
nusched.frameRate = 60;
|
||||
}
|
||||
|
||||
D_8009A5B0 = 0;
|
||||
|
||||
osCreateMesgQueue(&nusched.retraceMQ, nusched.retraceMsgBuf, NU_SC_MAX_MESGS);
|
||||
osCreateMesgQueue(&nusched.rspMQ, nusched.rspMsgBuf, NU_SC_MAX_MESGS);
|
||||
osCreateMesgQueue(&nusched.rdpMQ, nusched.rdpMsgBuf, NU_SC_MAX_MESGS);
|
||||
osCreateMesgQueue(&nusched.graphicsRequestMQ, nusched.graphicsRequestBuf, NU_SC_MAX_MESGS);
|
||||
osCreateMesgQueue(&nusched.audioRequestMQ, nusched.audioRequestBuf, NU_SC_MAX_MESGS);
|
||||
osCreateMesgQueue(&nusched.waitMQ, nusched.waitMsgBuf, NU_SC_MAX_MESGS);
|
||||
|
||||
osCreateViManager(0xFE);
|
||||
osViSetMode(&osViModeTable[videoMode]);
|
||||
osViBlack(TRUE);
|
||||
osViSetEvent(&nusched.retraceMQ, (OSMesg) 0x29A, numFields);
|
||||
|
||||
osSetEventMesg(OS_EVENT_SP, &nusched.rspMQ, (OSMesg) 0x29B);
|
||||
osSetEventMesg(OS_EVENT_DP, &nusched.rdpMQ, (OSMesg) 0x29C);
|
||||
osSetEventMesg(OS_EVENT_PRENMI, &nusched.retraceMQ, (OSMesg) 0x29D);
|
||||
|
||||
osCreateThread(&nusched.schedulerThread, 19, (void(*)) nuScEventHandler, &nusched,
|
||||
nuScStack + NU_SC_STACK_SIZE / sizeof(u64), NU_SC_HANDLER_PRI);
|
||||
osStartThread(&nusched.schedulerThread);
|
||||
|
||||
osCreateThread(&nusched.audioThread, 18, (void(*)) nuScExecuteAudio, &nusched,
|
||||
nuScAudioStack + NU_SC_STACK_SIZE / sizeof(u64), NU_SC_AUDIO_PRI);
|
||||
osStartThread(&nusched.audioThread);
|
||||
|
||||
osCreateThread(&nusched.graphicsThread, 17, (void(*)) nuScExecuteGraphics, &nusched,
|
||||
nuScGraphicsStack + NU_SC_STACK_SIZE / sizeof(u64), NU_SC_GRAPHICS_PRI);
|
||||
osStartThread(&nusched.graphicsThread);
|
||||
}
|
||||
|
||||
INCLUDE_ASM(void, "os/code_39db0_len_8a0", nuScExecuteAudio);
|
||||
|
||||
INCLUDE_ASM(void, "os/code_39db0_len_8a0", nuScExecuteGraphics);
|
||||
|
||||
void nuScAddClient(NUScClient* c, OSMesgQueue* mq, NUScMsg msgType) {
|
||||
s32 mask;
|
||||
|
||||
mask = osSetIntMask(OS_IM_NONE);
|
||||
|
||||
c->msgQ = mq;
|
||||
c->next = nusched.clientList;
|
||||
c->msgType = msgType;
|
||||
|
||||
nusched.clientList = c;
|
||||
|
||||
if ((msgType & NU_SC_PRENMI_MSG) && D_8009A5B0) {
|
||||
osSendMesg(mq, &nusched.prenmiMsg, OS_MESG_NOBLOCK);
|
||||
}
|
||||
|
||||
osSetIntMask(mask);
|
||||
}
|
||||
|
||||
void nuScRemoveClient(NUScClient* client) {
|
||||
s32 mask = osSetIntMask(OS_IM_NONE);
|
||||
NUScClient* clientList = nusched.clientList;
|
||||
NUScClient* prev = NULL;
|
||||
|
||||
while (clientList != NULL) {
|
||||
if (clientList == client) {
|
||||
if (prev != NULL) {
|
||||
prev->next = clientList->next;
|
||||
} else {
|
||||
nusched.clientList = clientList->next;
|
||||
}
|
||||
break;
|
||||
}
|
||||
prev = clientList;
|
||||
clientList = clientList->next;
|
||||
}
|
||||
|
||||
osSetIntMask(mask);
|
||||
}
|
||||
|
||||
void nuScResetClientMesgType(NUScClient* client, NUScMsg msgType) {
|
||||
s32 mask;
|
||||
|
||||
mask = osSetIntMask(OS_IM_NONE);
|
||||
client->msgType = msgType;
|
||||
osSetIntMask(mask);
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
// This should match when data is decompiled.
|
||||
OSMesgQueue* nuScGetGfxMQ(void) {
|
||||
return &nusched.graphicsRequestMQ;
|
||||
}
|
||||
#else
|
||||
INCLUDE_ASM(OSMesgQueue*, "os/code_39db0_len_8a0", nuScGetGfxMQ, void);
|
||||
#endif
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
// This should match when data is decompiled.
|
||||
OSMesgQueue* nuScGetAudioMQ(void) {
|
||||
return &nusched.audioRequestMQ;
|
||||
}
|
||||
#else
|
||||
INCLUDE_ASM(OSMesgQueue*, "os/code_39db0_len_8a0", nuScGetAudioMQ, void);
|
||||
#endif
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
// This should match when data is decompiled.
|
||||
void nuScSetFrameBufferNum(u8 frameBufferNum) {
|
||||
nusched.frameBufferNum = frameBufferNum;
|
||||
}
|
||||
#else
|
||||
INCLUDE_ASM(void, "os/code_39db0_len_8a0", nuScSetFrameBufferNum, u8 frameBufferNum);
|
||||
#endif
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
// This should match when data is decompiled.
|
||||
s32 nuScGetFrameRate(void) {
|
||||
return nusched.frameRate;
|
||||
}
|
||||
#else
|
||||
INCLUDE_ASM(s32, "os/code_39db0_len_8a0", nuScGetFrameRate, void);
|
||||
#endif
|
||||
|
||||
INCLUDE_ASM(void, "os/code_39db0_len_8a0", nuScEventHandler);
|
||||
|
||||
static void nuScEventBroadcast(NUScMsg* msg) {
|
||||
NUScClient* clientList = nusched.clientList;
|
||||
|
||||
while (clientList != NULL) {
|
||||
if (clientList->msgType & *msg) {
|
||||
osSendMesg(clientList->msgQ, msg, OS_MESG_NOBLOCK);
|
||||
}
|
||||
clientList = clientList->next;
|
||||
}
|
||||
}
|
||||
|
||||
INCLUDE_ASM(void, "os/code_39db0_len_8a0", nuScWaitTaskReady);
|
@ -61,15 +61,22 @@ segments:
|
||||
- [0x362a0, "c", "code_362a0_len_2f70"]
|
||||
- [0x39210, "c", "code_39210_len_aa0"]
|
||||
- [0x39cb0, "c", "os/code_39cb0_len_100"]
|
||||
- [0x39db0, "c", "os/code_39db0_len_8a0"]
|
||||
- [0x3a650, "c", "os/code_3a650_len_40"]
|
||||
- [0x3a690, "c", "os/code_3a690_len_40"]
|
||||
- [0x3a6d0, "c", "os/code_3a6d0_len_20"]
|
||||
- [0x3a6f0, "c", "os/code_3a6f0_len_110"]
|
||||
- [0x3a800, "c", "os/code_3a800_len_30"]
|
||||
- [0x3a830, "c", "os/code_3a830_len_20"]
|
||||
- [0x3a850, "c", "os/code_3a850_le_a40"]
|
||||
- [0x3b290, "c", "os/code_3b290_len_100"]
|
||||
- [0x39db0, "c", "os/nusys/nuSched"]
|
||||
- [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/nusys/nuContRmbStart"]
|
||||
- [0x3b2f0, "c", "os/nusys/nuContRmbCheck"]
|
||||
- [0x3b390, "c", "os/code_3b390_len_110"]
|
||||
- [0x3b4a0, "c", "os/code_3b4a0_len_270"]
|
||||
- [0x3b710, "c", "os/code_3b710_len_40"]
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit 3a32d3d6dda7374e4f32ae86530444e45956d803
|
||||
Subproject commit 9df51d29626ffae94ff7ed03c252c24e71430105
|
@ -1,3 +1,5 @@
|
||||
osTvType = 0x80000300;
|
||||
|
||||
gGameStatusPtr = 0x8007419C;
|
||||
gRandSeed = 0x80074410;
|
||||
gUIStatus = 0x8010EF58;
|
||||
@ -58,9 +60,31 @@ D_00102610_end = 0x0010CC10;
|
||||
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;
|
||||
|
||||
osViModeTable = 0x800946A0;
|
||||
D_800959D4 = 0x800959D4;
|
||||
D_8009A5B0 = 0x8009A5B0;
|
||||
D_8009A5D8 = 0x8009A5D8;
|
||||
nuGfxZBuffer = 0x8009A5DC;
|
||||
nuGfxDisplay = 0x8009A5F8;
|
||||
gGameState = 0x8009A600;
|
||||
D_8009A610 = 0x8009A610;
|
||||
|
||||
nuGfxTaskSpool = 0x8009A618;
|
||||
carthandle = 0x8009A638;
|
||||
|
||||
D_8009A650 = 0x8009A650;
|
||||
D_8009A6A0 = 0x8009A6A0;
|
||||
D_8009A6A2 = 0x8009A6A2;
|
||||
@ -74,12 +98,27 @@ D_8009BA9C = 0x8009BA9C;
|
||||
D_8009BAA0 = 0x8009BAA0;
|
||||
|
||||
D_800A0900 = 0x800A0900;
|
||||
nuScStack = 0x800A65D0;
|
||||
nuScAudioStack = 0x800A85D0;
|
||||
nuScGraphicsStack = 0x800AA5D0;
|
||||
D_800AC5D0 = 0x800AC5D0;
|
||||
D_800AC5E8 = 0x800AC5E8;
|
||||
|
||||
gCurrentEncounter = 0x800B0F10;
|
||||
nuContRmbCtl = 0x800B1d40;
|
||||
nuContData = 0x800B1D68;
|
||||
gCameras = 0x800B1D80;
|
||||
|
||||
nusched = 0x800DA440;
|
||||
nuContPfs = 0x800DAAD8;
|
||||
nuSiMesgQ = 0x800DAC78;
|
||||
|
||||
gCurrentCameraID = 0x80077410;
|
||||
SCRIPT_NpcDefeat = 0x80077E38;
|
||||
|
||||
D_800DC500 = 0x800DC500;
|
||||
D_8010F6D0 = 0x8010F6D0;
|
||||
|
||||
gBackgroundImage = 0x80200000;
|
||||
D_802C3000 = 0x802C3000;
|
||||
D_802DBD40 = 0x802DBD40;
|
||||
|
Loading…
Reference in New Issue
Block a user