mirror of
https://github.com/Mallos31/Quest.git
synced 2025-02-13 09:43:41 +00:00
push new files
This commit is contained in:
parent
52aab16c60
commit
fdeb24ae08
510
asm/1130.s
Normal file
510
asm/1130.s
Normal file
@ -0,0 +1,510 @@
|
||||
.include "macro.inc"
|
||||
|
||||
/* assembler directives */
|
||||
.set noat /* allow manual use of $at */
|
||||
.set noreorder /* don't insert nops after branches */
|
||||
.set gp=64 /* allow use of 64-bit general purpose registers */
|
||||
|
||||
.section .text, "ax"
|
||||
|
||||
/* Generated by spimdisasm 1.12.1 */
|
||||
|
||||
glabel nnScCreateScheduler
|
||||
/* 1130 80000530 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* 1134 80000534 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 1138 80000538 00808025 */ or $s0, $a0, $zero
|
||||
/* 113C 8000053C AFBF001C */ sw $ra, 0x1C($sp)
|
||||
/* 1140 80000540 AFA50034 */ sw $a1, 0x34($sp)
|
||||
/* 1144 80000544 240E0001 */ addiu $t6, $zero, 0x1
|
||||
/* 1148 80000548 240F0001 */ addiu $t7, $zero, 0x1
|
||||
/* 114C 8000054C 24180003 */ addiu $t8, $zero, 0x3
|
||||
/* 1150 80000550 AE00066C */ sw $zero, 0x66C($s0)
|
||||
/* 1154 80000554 AE000670 */ sw $zero, 0x670($s0)
|
||||
/* 1158 80000558 AE000674 */ sw $zero, 0x674($s0)
|
||||
/* 115C 8000055C AE000668 */ sw $zero, 0x668($s0)
|
||||
/* 1160 80000560 AE0E0678 */ sw $t6, 0x678($s0)
|
||||
/* 1164 80000564 A60F0000 */ sh $t7, 0x0($s0)
|
||||
/* 1168 80000568 A6180002 */ sh $t8, 0x2($s0)
|
||||
/* 116C 8000056C 26040074 */ addiu $a0, $s0, 0x74
|
||||
/* 1170 80000570 AFA4002C */ sw $a0, 0x2C($sp)
|
||||
/* 1174 80000574 2605008C */ addiu $a1, $s0, 0x8C
|
||||
/* 1178 80000578 0C00CFC4 */ jal osCreateMesgQueue
|
||||
/* 117C 8000057C 24060008 */ addiu $a2, $zero, 0x8
|
||||
/* 1180 80000580 260400AC */ addiu $a0, $s0, 0xAC
|
||||
/* 1184 80000584 AFA40028 */ sw $a0, 0x28($sp)
|
||||
/* 1188 80000588 260500C4 */ addiu $a1, $s0, 0xC4
|
||||
/* 118C 8000058C 0C00CFC4 */ jal osCreateMesgQueue
|
||||
/* 1190 80000590 24060008 */ addiu $a2, $zero, 0x8
|
||||
/* 1194 80000594 260400E4 */ addiu $a0, $s0, 0xE4
|
||||
/* 1198 80000598 AFA40024 */ sw $a0, 0x24($sp)
|
||||
/* 119C 8000059C 260500FC */ addiu $a1, $s0, 0xFC
|
||||
/* 11A0 800005A0 0C00CFC4 */ jal osCreateMesgQueue
|
||||
/* 11A4 800005A4 24060008 */ addiu $a2, $zero, 0x8
|
||||
/* 11A8 800005A8 2604003C */ addiu $a0, $s0, 0x3C
|
||||
/* 11AC 800005AC 26050054 */ addiu $a1, $s0, 0x54
|
||||
/* 11B0 800005B0 0C00CFC4 */ jal osCreateMesgQueue
|
||||
/* 11B4 800005B4 24060008 */ addiu $a2, $zero, 0x8
|
||||
/* 11B8 800005B8 26040004 */ addiu $a0, $s0, 0x4
|
||||
/* 11BC 800005BC 2605001C */ addiu $a1, $s0, 0x1C
|
||||
/* 11C0 800005C0 0C00CFC4 */ jal osCreateMesgQueue
|
||||
/* 11C4 800005C4 24060008 */ addiu $a2, $zero, 0x8
|
||||
/* 11C8 800005C8 2604011C */ addiu $a0, $s0, 0x11C
|
||||
/* 11CC 800005CC 26050134 */ addiu $a1, $s0, 0x134
|
||||
/* 11D0 800005D0 0C00CFC4 */ jal osCreateMesgQueue
|
||||
/* 11D4 800005D4 24060008 */ addiu $a2, $zero, 0x8
|
||||
/* 11D8 800005D8 8FA4002C */ lw $a0, 0x2C($sp)
|
||||
/* 11DC 800005DC 2405029A */ addiu $a1, $zero, 0x29A
|
||||
/* 11E0 800005E0 0C00CFD0 */ jal osViSetEvent
|
||||
/* 11E4 800005E4 93A60037 */ lbu $a2, 0x37($sp)
|
||||
/* 11E8 800005E8 24040004 */ addiu $a0, $zero, 0x4
|
||||
/* 11EC 800005EC 8FA50028 */ lw $a1, 0x28($sp)
|
||||
/* 11F0 800005F0 0C00CFEC */ jal osSetEventMesg
|
||||
/* 11F4 800005F4 2406029B */ addiu $a2, $zero, 0x29B
|
||||
/* 11F8 800005F8 24040009 */ addiu $a0, $zero, 0x9
|
||||
/* 11FC 800005FC 8FA50024 */ lw $a1, 0x24($sp)
|
||||
/* 1200 80000600 0C00CFEC */ jal osSetEventMesg
|
||||
/* 1204 80000604 2406029C */ addiu $a2, $zero, 0x29C
|
||||
/* 1208 80000608 2404000E */ addiu $a0, $zero, 0xE
|
||||
/* 120C 8000060C 8FA5002C */ lw $a1, 0x2C($sp)
|
||||
/* 1210 80000610 0C00CFEC */ jal osSetEventMesg
|
||||
/* 1214 80000614 2406029D */ addiu $a2, $zero, 0x29D
|
||||
/* 1218 80000618 8FBF001C */ lw $ra, 0x1C($sp)
|
||||
/* 121C 8000061C 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 1220 80000620 27BD0030 */ addiu $sp, $sp, 0x30
|
||||
/* 1224 80000624 03E00008 */ jr $ra
|
||||
/* 1228 80000628 00000000 */ nop
|
||||
|
||||
glabel nnScStartScheduler
|
||||
/* 122C 8000062C 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* 1230 80000630 AFB00020 */ sw $s0, 0x20($sp)
|
||||
/* 1234 80000634 00808025 */ or $s0, $a0, $zero
|
||||
/* 1238 80000638 AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* 123C 8000063C 3C0E8008 */ lui $t6, %hi(D_800792D0)
|
||||
/* 1240 80000640 25CE92D0 */ addiu $t6, $t6, %lo(D_800792D0)
|
||||
/* 1244 80000644 26040158 */ addiu $a0, $s0, 0x158
|
||||
/* 1248 80000648 3C068000 */ lui $a2, %hi(nnScEventHandler)
|
||||
/* 124C 8000064C 240F0078 */ addiu $t7, $zero, 0x78
|
||||
/* 1250 80000650 AFAF0014 */ sw $t7, 0x14($sp)
|
||||
/* 1254 80000654 24C60710 */ addiu $a2, $a2, %lo(nnScEventHandler)
|
||||
/* 1258 80000658 AFA4002C */ sw $a0, 0x2C($sp)
|
||||
/* 125C 8000065C AFAE0010 */ sw $t6, 0x10($sp)
|
||||
/* 1260 80000660 24050013 */ addiu $a1, $zero, 0x13
|
||||
/* 1264 80000664 0C00CEB8 */ jal osCreateThread
|
||||
/* 1268 80000668 02003825 */ or $a3, $s0, $zero
|
||||
/* 126C 8000066C 0C00CF0C */ jal osStartThread
|
||||
/* 1270 80000670 8FA4002C */ lw $a0, 0x2C($sp)
|
||||
/* 1274 80000674 3C188008 */ lui $t8, %hi(D_8007A2D0)
|
||||
/* 1278 80000678 2718A2D0 */ addiu $t8, $t8, %lo(D_8007A2D0)
|
||||
/* 127C 8000067C 26040308 */ addiu $a0, $s0, 0x308
|
||||
/* 1280 80000680 3C068000 */ lui $a2, %hi(nnScExecuteAudio)
|
||||
/* 1284 80000684 2419006E */ addiu $t9, $zero, 0x6E
|
||||
/* 1288 80000688 AFB90014 */ sw $t9, 0x14($sp)
|
||||
/* 128C 8000068C 24C60900 */ addiu $a2, $a2, %lo(nnScExecuteAudio)
|
||||
/* 1290 80000690 AFA4002C */ sw $a0, 0x2C($sp)
|
||||
/* 1294 80000694 AFB80010 */ sw $t8, 0x10($sp)
|
||||
/* 1298 80000698 24050012 */ addiu $a1, $zero, 0x12
|
||||
/* 129C 8000069C 0C00CEB8 */ jal osCreateThread
|
||||
/* 12A0 800006A0 02003825 */ or $a3, $s0, $zero
|
||||
/* 12A4 800006A4 0C00CF0C */ jal osStartThread
|
||||
/* 12A8 800006A8 8FA4002C */ lw $a0, 0x2C($sp)
|
||||
/* 12AC 800006AC 3C088008 */ lui $t0, %hi(D_8007B2D0)
|
||||
/* 12B0 800006B0 2508B2D0 */ addiu $t0, $t0, %lo(D_8007B2D0)
|
||||
/* 12B4 800006B4 260404B8 */ addiu $a0, $s0, 0x4B8
|
||||
/* 12B8 800006B8 3C068000 */ lui $a2, %hi(nnScExecuteGraphics)
|
||||
/* 12BC 800006BC 24090064 */ addiu $t1, $zero, 0x64
|
||||
/* 12C0 800006C0 AFA90014 */ sw $t1, 0x14($sp)
|
||||
/* 12C4 800006C4 24C60A80 */ addiu $a2, $a2, %lo(nnScExecuteGraphics)
|
||||
/* 12C8 800006C8 AFA4002C */ sw $a0, 0x2C($sp)
|
||||
/* 12CC 800006CC AFA80010 */ sw $t0, 0x10($sp)
|
||||
/* 12D0 800006D0 24050011 */ addiu $a1, $zero, 0x11
|
||||
/* 12D4 800006D4 0C00CEB8 */ jal osCreateThread
|
||||
/* 12D8 800006D8 02003825 */ or $a3, $s0, $zero
|
||||
/* 12DC 800006DC 0C00CF0C */ jal osStartThread
|
||||
/* 12E0 800006E0 8FA4002C */ lw $a0, 0x2C($sp)
|
||||
/* 12E4 800006E4 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
/* 12E8 800006E8 8FB00020 */ lw $s0, 0x20($sp)
|
||||
/* 12EC 800006EC 27BD0030 */ addiu $sp, $sp, 0x30
|
||||
/* 12F0 800006F0 03E00008 */ jr $ra
|
||||
/* 12F4 800006F4 00000000 */ nop
|
||||
|
||||
glabel nnScGetAudioMQ
|
||||
/* 12F8 800006F8 24820004 */ addiu $v0, $a0, 0x4
|
||||
/* 12FC 800006FC 03E00008 */ jr $ra
|
||||
/* 1300 80000700 00000000 */ nop
|
||||
|
||||
glabel nnScGetGfxMQ
|
||||
/* 1304 80000704 2482003C */ addiu $v0, $a0, 0x3C
|
||||
/* 1308 80000708 03E00008 */ jr $ra
|
||||
/* 130C 8000070C 00000000 */ nop
|
||||
|
||||
glabel nnScEventHandler
|
||||
/* 1310 80000710 27BDFFC0 */ addiu $sp, $sp, -0x40
|
||||
/* 1314 80000714 AFB00014 */ sw $s0, 0x14($sp)
|
||||
/* 1318 80000718 00808025 */ or $s0, $a0, $zero
|
||||
/* 131C 8000071C AFBF002C */ sw $ra, 0x2C($sp)
|
||||
/* 1320 80000720 AFB50028 */ sw $s5, 0x28($sp)
|
||||
/* 1324 80000724 AFB40024 */ sw $s4, 0x24($sp)
|
||||
/* 1328 80000728 AFB30020 */ sw $s3, 0x20($sp)
|
||||
/* 132C 8000072C AFB2001C */ sw $s2, 0x1C($sp)
|
||||
/* 1330 80000730 AFB10018 */ sw $s1, 0x18($sp)
|
||||
/* 1334 80000734 3C118008 */ lui $s1, %hi(D_8007B2D0)
|
||||
/* 1338 80000738 AFA0003C */ sw $zero, 0x3C($sp)
|
||||
/* 133C 8000073C 2631B2D0 */ addiu $s1, $s1, %lo(D_8007B2D0)
|
||||
/* 1340 80000740 26150074 */ addiu $s5, $s0, 0x74
|
||||
/* 1344 80000744 2414029D */ addiu $s4, $zero, 0x29D
|
||||
/* 1348 80000748 2413029A */ addiu $s3, $zero, 0x29A
|
||||
/* 134C 8000074C 27B2003C */ addiu $s2, $sp, 0x3C
|
||||
/* 1350 80000750 02A02025 */ or $a0, $s5, $zero
|
||||
.L80000754:
|
||||
/* 1354 80000754 02402825 */ or $a1, $s2, $zero
|
||||
/* 1358 80000758 0C00D008 */ jal osRecvMesg
|
||||
/* 135C 8000075C 24060001 */ addiu $a2, $zero, 0x1
|
||||
/* 1360 80000760 962E0000 */ lhu $t6, 0x0($s1)
|
||||
/* 1364 80000764 8FB8003C */ lw $t8, 0x3C($sp)
|
||||
/* 1368 80000768 02002025 */ or $a0, $s0, $zero
|
||||
/* 136C 8000076C 25CF0001 */ addiu $t7, $t6, 0x1
|
||||
/* 1370 80000770 13130005 */ beq $t8, $s3, .L80000788
|
||||
/* 1374 80000774 A62F0000 */ sh $t7, 0x0($s1)
|
||||
/* 1378 80000778 13140007 */ beq $t8, $s4, .L80000798
|
||||
/* 137C 8000077C 02002025 */ or $a0, $s0, $zero
|
||||
/* 1380 80000780 1000FFF4 */ b .L80000754
|
||||
/* 1384 80000784 02A02025 */ or $a0, $s5, $zero
|
||||
.L80000788:
|
||||
/* 1388 80000788 0C00022C */ jal nnScEventBroadcast
|
||||
/* 138C 8000078C 02002825 */ or $a1, $s0, $zero
|
||||
/* 1390 80000790 1000FFF0 */ b .L80000754
|
||||
/* 1394 80000794 02A02025 */ or $a0, $s5, $zero
|
||||
.L80000798:
|
||||
/* 1398 80000798 0C00022C */ jal nnScEventBroadcast
|
||||
/* 139C 8000079C 26050002 */ addiu $a1, $s0, 0x2
|
||||
/* 13A0 800007A0 1000FFEC */ b .L80000754
|
||||
/* 13A4 800007A4 02A02025 */ or $a0, $s5, $zero
|
||||
/* 13A8 800007A8 00000000 */ nop
|
||||
/* 13AC 800007AC 00000000 */ nop
|
||||
/* 13B0 800007B0 8FBF002C */ lw $ra, 0x2C($sp)
|
||||
/* 13B4 800007B4 8FB00014 */ lw $s0, 0x14($sp)
|
||||
/* 13B8 800007B8 8FB10018 */ lw $s1, 0x18($sp)
|
||||
/* 13BC 800007BC 8FB2001C */ lw $s2, 0x1C($sp)
|
||||
/* 13C0 800007C0 8FB30020 */ lw $s3, 0x20($sp)
|
||||
/* 13C4 800007C4 8FB40024 */ lw $s4, 0x24($sp)
|
||||
/* 13C8 800007C8 8FB50028 */ lw $s5, 0x28($sp)
|
||||
/* 13CC 800007CC 03E00008 */ jr $ra
|
||||
/* 13D0 800007D0 27BD0040 */ addiu $sp, $sp, 0x40
|
||||
|
||||
glabel nnScAddClient
|
||||
/* 13D4 800007D4 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* 13D8 800007D8 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 13DC 800007DC AFA40018 */ sw $a0, 0x18($sp)
|
||||
/* 13E0 800007E0 AFA60020 */ sw $a2, 0x20($sp)
|
||||
/* 13E4 800007E4 24040001 */ addiu $a0, $zero, 0x1
|
||||
/* 13E8 800007E8 0C00D058 */ jal osSetIntMask
|
||||
/* 13EC 800007EC AFA5001C */ sw $a1, 0x1C($sp)
|
||||
/* 13F0 800007F0 8FA5001C */ lw $a1, 0x1C($sp)
|
||||
/* 13F4 800007F4 8FAE0020 */ lw $t6, 0x20($sp)
|
||||
/* 13F8 800007F8 8FA30018 */ lw $v1, 0x18($sp)
|
||||
/* 13FC 800007FC 00402025 */ or $a0, $v0, $zero
|
||||
/* 1400 80000800 ACAE0004 */ sw $t6, 0x4($a1)
|
||||
/* 1404 80000804 8C6F0668 */ lw $t7, 0x668($v1)
|
||||
/* 1408 80000808 ACAF0000 */ sw $t7, 0x0($a1)
|
||||
/* 140C 8000080C 0C00D058 */ jal osSetIntMask
|
||||
/* 1410 80000810 AC650668 */ sw $a1, 0x668($v1)
|
||||
/* 1414 80000814 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 1418 80000818 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* 141C 8000081C 03E00008 */ jr $ra
|
||||
/* 1420 80000820 00000000 */ nop
|
||||
|
||||
glabel nnScRemoveClient
|
||||
/* 1424 80000824 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* 1428 80000828 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 142C 8000082C AFA40020 */ sw $a0, 0x20($sp)
|
||||
/* 1430 80000830 8FAE0020 */ lw $t6, 0x20($sp)
|
||||
/* 1434 80000834 24040001 */ addiu $a0, $zero, 0x1
|
||||
/* 1438 80000838 8DC30668 */ lw $v1, 0x668($t6)
|
||||
/* 143C 8000083C AFA00018 */ sw $zero, 0x18($sp)
|
||||
/* 1440 80000840 AFA50024 */ sw $a1, 0x24($sp)
|
||||
/* 1444 80000844 0C00D058 */ jal osSetIntMask
|
||||
/* 1448 80000848 AFA3001C */ sw $v1, 0x1C($sp)
|
||||
/* 144C 8000084C 8FA3001C */ lw $v1, 0x1C($sp)
|
||||
/* 1450 80000850 8FA50024 */ lw $a1, 0x24($sp)
|
||||
/* 1454 80000854 8FA60018 */ lw $a2, 0x18($sp)
|
||||
/* 1458 80000858 1060000F */ beqz $v1, .L80000898
|
||||
/* 145C 8000085C 00402025 */ or $a0, $v0, $zero
|
||||
.L80000860:
|
||||
/* 1460 80000860 5465000A */ bnel $v1, $a1, .L8000088C
|
||||
/* 1464 80000864 00603025 */ or $a2, $v1, $zero
|
||||
/* 1468 80000868 10C00004 */ beqz $a2, .L8000087C
|
||||
/* 146C 8000086C 8FB90020 */ lw $t9, 0x20($sp)
|
||||
/* 1470 80000870 8CAF0000 */ lw $t7, 0x0($a1)
|
||||
/* 1474 80000874 10000008 */ b .L80000898
|
||||
/* 1478 80000878 ACCF0000 */ sw $t7, 0x0($a2)
|
||||
.L8000087C:
|
||||
/* 147C 8000087C 8CB80000 */ lw $t8, 0x0($a1)
|
||||
/* 1480 80000880 10000005 */ b .L80000898
|
||||
/* 1484 80000884 AF380668 */ sw $t8, 0x668($t9)
|
||||
/* 1488 80000888 00603025 */ or $a2, $v1, $zero
|
||||
.L8000088C:
|
||||
/* 148C 8000088C 8C630000 */ lw $v1, 0x0($v1)
|
||||
/* 1490 80000890 1460FFF3 */ bnez $v1, .L80000860
|
||||
/* 1494 80000894 00000000 */ nop
|
||||
.L80000898:
|
||||
/* 1498 80000898 0C00D058 */ jal osSetIntMask
|
||||
/* 149C 8000089C 00000000 */ nop
|
||||
/* 14A0 800008A0 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 14A4 800008A4 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
/* 14A8 800008A8 03E00008 */ jr $ra
|
||||
/* 14AC 800008AC 00000000 */ nop
|
||||
|
||||
glabel nnScEventBroadcast
|
||||
/* 14B0 800008B0 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* 14B4 800008B4 AFB10018 */ sw $s1, 0x18($sp)
|
||||
/* 14B8 800008B8 00A08825 */ or $s1, $a1, $zero
|
||||
/* 14BC 800008BC AFBF001C */ sw $ra, 0x1C($sp)
|
||||
/* 14C0 800008C0 AFB00014 */ sw $s0, 0x14($sp)
|
||||
/* 14C4 800008C4 8C900668 */ lw $s0, 0x668($a0)
|
||||
/* 14C8 800008C8 52000009 */ beql $s0, $zero, .L800008F0
|
||||
/* 14CC 800008CC 8FBF001C */ lw $ra, 0x1C($sp)
|
||||
/* 14D0 800008D0 8E040004 */ lw $a0, 0x4($s0)
|
||||
.L800008D4:
|
||||
/* 14D4 800008D4 02202825 */ or $a1, $s1, $zero
|
||||
/* 14D8 800008D8 0C00D080 */ jal osSendMesg
|
||||
/* 14DC 800008DC 00003025 */ or $a2, $zero, $zero
|
||||
/* 14E0 800008E0 8E100000 */ lw $s0, 0x0($s0)
|
||||
/* 14E4 800008E4 5600FFFB */ bnel $s0, $zero, .L800008D4
|
||||
/* 14E8 800008E8 8E040004 */ lw $a0, 0x4($s0)
|
||||
/* 14EC 800008EC 8FBF001C */ lw $ra, 0x1C($sp)
|
||||
.L800008F0:
|
||||
/* 14F0 800008F0 8FB00014 */ lw $s0, 0x14($sp)
|
||||
/* 14F4 800008F4 8FB10018 */ lw $s1, 0x18($sp)
|
||||
/* 14F8 800008F8 03E00008 */ jr $ra
|
||||
/* 14FC 800008FC 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
|
||||
glabel nnScExecuteAudio
|
||||
/* 1500 80000900 27BDFFA8 */ addiu $sp, $sp, -0x58
|
||||
/* 1504 80000904 AFB20020 */ sw $s2, 0x20($sp)
|
||||
/* 1508 80000908 00809025 */ or $s2, $a0, $zero
|
||||
/* 150C 8000090C AFBF003C */ sw $ra, 0x3C($sp)
|
||||
/* 1510 80000910 AFBE0038 */ sw $fp, 0x38($sp)
|
||||
/* 1514 80000914 AFB70034 */ sw $s7, 0x34($sp)
|
||||
/* 1518 80000918 AFB60030 */ sw $s6, 0x30($sp)
|
||||
/* 151C 8000091C AFB5002C */ sw $s5, 0x2C($sp)
|
||||
/* 1520 80000920 AFB40028 */ sw $s4, 0x28($sp)
|
||||
/* 1524 80000924 AFB30024 */ sw $s3, 0x24($sp)
|
||||
/* 1528 80000928 AFB1001C */ sw $s1, 0x1C($sp)
|
||||
/* 152C 8000092C AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 1530 80000930 AFA00054 */ sw $zero, 0x54($sp)
|
||||
/* 1534 80000934 AFA00050 */ sw $zero, 0x50($sp)
|
||||
/* 1538 80000938 26550004 */ addiu $s5, $s2, 0x4
|
||||
/* 153C 8000093C 00008825 */ or $s1, $zero, $zero
|
||||
/* 1540 80000940 241E0002 */ addiu $fp, $zero, 0x2
|
||||
/* 1544 80000944 24170001 */ addiu $s7, $zero, 0x1
|
||||
/* 1548 80000948 27B60050 */ addiu $s6, $sp, 0x50
|
||||
/* 154C 8000094C 27B40054 */ addiu $s4, $sp, 0x54
|
||||
/* 1550 80000950 02A02025 */ or $a0, $s5, $zero
|
||||
.L80000954:
|
||||
/* 1554 80000954 02C02825 */ or $a1, $s6, $zero
|
||||
/* 1558 80000958 0C00D008 */ jal osRecvMesg
|
||||
/* 155C 8000095C 24060001 */ addiu $a2, $zero, 0x1
|
||||
/* 1560 80000960 0C00D0D4 */ jal osWritebackDCacheAll
|
||||
/* 1564 80000964 00000000 */ nop
|
||||
/* 1568 80000968 8E53066C */ lw $s3, 0x66C($s2)
|
||||
/* 156C 8000096C 5260000E */ beql $s3, $zero, .L800009A8
|
||||
/* 1570 80000970 8FAE0050 */ lw $t6, 0x50($sp)
|
||||
/* 1574 80000974 0C00D0E0 */ jal osSpTaskYield
|
||||
/* 1578 80000978 265000AC */ addiu $s0, $s2, 0xAC
|
||||
/* 157C 8000097C 02002025 */ or $a0, $s0, $zero
|
||||
/* 1580 80000980 02802825 */ or $a1, $s4, $zero
|
||||
/* 1584 80000984 0C00D008 */ jal osRecvMesg
|
||||
/* 1588 80000988 24060001 */ addiu $a2, $zero, 0x1
|
||||
/* 158C 8000098C 0C00D0E8 */ jal osSpTaskYielded
|
||||
/* 1590 80000990 26640010 */ addiu $a0, $s3, 0x10
|
||||
/* 1594 80000994 10400003 */ beqz $v0, .L800009A4
|
||||
/* 1598 80000998 03C08825 */ or $s1, $fp, $zero
|
||||
/* 159C 8000099C 10000001 */ b .L800009A4
|
||||
/* 15A0 800009A0 02E08825 */ or $s1, $s7, $zero
|
||||
.L800009A4:
|
||||
/* 15A4 800009A4 8FAE0050 */ lw $t6, 0x50($sp)
|
||||
.L800009A8:
|
||||
/* 15A8 800009A8 265000AC */ addiu $s0, $s2, 0xAC
|
||||
/* 15AC 800009AC AE4E0670 */ sw $t6, 0x670($s2)
|
||||
/* 15B0 800009B0 8FA40050 */ lw $a0, 0x50($sp)
|
||||
/* 15B4 800009B4 0C00D14B */ jal osSpTaskLoad
|
||||
/* 15B8 800009B8 24840010 */ addiu $a0, $a0, 0x10
|
||||
/* 15BC 800009BC 8FA40050 */ lw $a0, 0x50($sp)
|
||||
/* 15C0 800009C0 0C00D1A5 */ jal osSpTaskStartGo
|
||||
/* 15C4 800009C4 24840010 */ addiu $a0, $a0, 0x10
|
||||
/* 15C8 800009C8 02002025 */ or $a0, $s0, $zero
|
||||
/* 15CC 800009CC 02802825 */ or $a1, $s4, $zero
|
||||
/* 15D0 800009D0 0C00D008 */ jal osRecvMesg
|
||||
/* 15D4 800009D4 24060001 */ addiu $a2, $zero, 0x1
|
||||
/* 15D8 800009D8 8E4F0674 */ lw $t7, 0x674($s2)
|
||||
/* 15DC 800009DC AE400670 */ sw $zero, 0x670($s2)
|
||||
/* 15E0 800009E0 2644011C */ addiu $a0, $s2, 0x11C
|
||||
/* 15E4 800009E4 11E00003 */ beqz $t7, .L800009F4
|
||||
/* 15E8 800009E8 02802825 */ or $a1, $s4, $zero
|
||||
/* 15EC 800009EC 0C00D080 */ jal osSendMesg
|
||||
/* 15F0 800009F0 24060001 */ addiu $a2, $zero, 0x1
|
||||
.L800009F4:
|
||||
/* 15F4 800009F4 16370008 */ bne $s1, $s7, .L80000A18
|
||||
/* 15F8 800009F8 00000000 */ nop
|
||||
/* 15FC 800009FC 26700010 */ addiu $s0, $s3, 0x10
|
||||
/* 1600 80000A00 0C00D14B */ jal osSpTaskLoad
|
||||
/* 1604 80000A04 02002025 */ or $a0, $s0, $zero
|
||||
/* 1608 80000A08 0C00D1A5 */ jal osSpTaskStartGo
|
||||
/* 160C 80000A0C 02002025 */ or $a0, $s0, $zero
|
||||
/* 1610 80000A10 10000007 */ b .L80000A30
|
||||
/* 1614 80000A14 8FB80050 */ lw $t8, 0x50($sp)
|
||||
.L80000A18:
|
||||
/* 1618 80000A18 163E0004 */ bne $s1, $fp, .L80000A2C
|
||||
/* 161C 80000A1C 02002025 */ or $a0, $s0, $zero
|
||||
/* 1620 80000A20 02802825 */ or $a1, $s4, $zero
|
||||
/* 1624 80000A24 0C00D080 */ jal osSendMesg
|
||||
/* 1628 80000A28 24060001 */ addiu $a2, $zero, 0x1
|
||||
.L80000A2C:
|
||||
/* 162C 80000A2C 8FB80050 */ lw $t8, 0x50($sp)
|
||||
.L80000A30:
|
||||
/* 1630 80000A30 24060001 */ addiu $a2, $zero, 0x1
|
||||
/* 1634 80000A34 00008825 */ or $s1, $zero, $zero
|
||||
/* 1638 80000A38 8F040050 */ lw $a0, 0x50($t8)
|
||||
/* 163C 80000A3C 0C00D080 */ jal osSendMesg
|
||||
/* 1640 80000A40 8F050054 */ lw $a1, 0x54($t8)
|
||||
/* 1644 80000A44 1000FFC3 */ b .L80000954
|
||||
/* 1648 80000A48 02A02025 */ or $a0, $s5, $zero
|
||||
/* 164C 80000A4C 00000000 */ nop
|
||||
/* 1650 80000A50 8FBF003C */ lw $ra, 0x3C($sp)
|
||||
/* 1654 80000A54 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 1658 80000A58 8FB1001C */ lw $s1, 0x1C($sp)
|
||||
/* 165C 80000A5C 8FB20020 */ lw $s2, 0x20($sp)
|
||||
/* 1660 80000A60 8FB30024 */ lw $s3, 0x24($sp)
|
||||
/* 1664 80000A64 8FB40028 */ lw $s4, 0x28($sp)
|
||||
/* 1668 80000A68 8FB5002C */ lw $s5, 0x2C($sp)
|
||||
/* 166C 80000A6C 8FB60030 */ lw $s6, 0x30($sp)
|
||||
/* 1670 80000A70 8FB70034 */ lw $s7, 0x34($sp)
|
||||
/* 1674 80000A74 8FBE0038 */ lw $fp, 0x38($sp)
|
||||
/* 1678 80000A78 03E00008 */ jr $ra
|
||||
/* 167C 80000A7C 27BD0058 */ addiu $sp, $sp, 0x58
|
||||
|
||||
glabel nnScExecuteGraphics
|
||||
/* 1680 80000A80 27BDFFB8 */ addiu $sp, $sp, -0x48
|
||||
/* 1684 80000A84 AFB00014 */ sw $s0, 0x14($sp)
|
||||
/* 1688 80000A88 00808025 */ or $s0, $a0, $zero
|
||||
/* 168C 80000A8C AFBF002C */ sw $ra, 0x2C($sp)
|
||||
/* 1690 80000A90 AFB50028 */ sw $s5, 0x28($sp)
|
||||
/* 1694 80000A94 AFB40024 */ sw $s4, 0x24($sp)
|
||||
/* 1698 80000A98 AFB30020 */ sw $s3, 0x20($sp)
|
||||
/* 169C 80000A9C AFB2001C */ sw $s2, 0x1C($sp)
|
||||
/* 16A0 80000AA0 AFB10018 */ sw $s1, 0x18($sp)
|
||||
/* 16A4 80000AA4 AFA00044 */ sw $zero, 0x44($sp)
|
||||
/* 16A8 80000AA8 2615003C */ addiu $s5, $s0, 0x3C
|
||||
/* 16AC 80000AAC 27B40040 */ addiu $s4, $sp, 0x40
|
||||
/* 16B0 80000AB0 27B30044 */ addiu $s3, $sp, 0x44
|
||||
/* 16B4 80000AB4 02A02025 */ or $a0, $s5, $zero
|
||||
.L80000AB8:
|
||||
/* 16B8 80000AB8 02802825 */ or $a1, $s4, $zero
|
||||
/* 16BC 80000ABC 0C00D008 */ jal osRecvMesg
|
||||
/* 16C0 80000AC0 24060001 */ addiu $a2, $zero, 0x1
|
||||
/* 16C4 80000AC4 02002025 */ or $a0, $s0, $zero
|
||||
/* 16C8 80000AC8 0C0002ED */ jal nnScWaitTaskReady
|
||||
/* 16CC 80000ACC 8FA50040 */ lw $a1, 0x40($sp)
|
||||
/* 16D0 80000AD0 8E0E0670 */ lw $t6, 0x670($s0)
|
||||
/* 16D4 80000AD4 8FAF0040 */ lw $t7, 0x40($sp)
|
||||
/* 16D8 80000AD8 2604011C */ addiu $a0, $s0, 0x11C
|
||||
/* 16DC 80000ADC 11C00005 */ beqz $t6, .L80000AF4
|
||||
/* 16E0 80000AE0 02602825 */ or $a1, $s3, $zero
|
||||
/* 16E4 80000AE4 AE0F0674 */ sw $t7, 0x674($s0)
|
||||
/* 16E8 80000AE8 0C00D008 */ jal osRecvMesg
|
||||
/* 16EC 80000AEC 24060001 */ addiu $a2, $zero, 0x1
|
||||
/* 16F0 80000AF0 AE000674 */ sw $zero, 0x674($s0)
|
||||
.L80000AF4:
|
||||
/* 16F4 80000AF4 8FB80040 */ lw $t8, 0x40($sp)
|
||||
/* 16F8 80000AF8 261100AC */ addiu $s1, $s0, 0xAC
|
||||
/* 16FC 80000AFC 261200E4 */ addiu $s2, $s0, 0xE4
|
||||
/* 1700 80000B00 AE18066C */ sw $t8, 0x66C($s0)
|
||||
/* 1704 80000B04 8FA40040 */ lw $a0, 0x40($sp)
|
||||
/* 1708 80000B08 0C00D14B */ jal osSpTaskLoad
|
||||
/* 170C 80000B0C 24840010 */ addiu $a0, $a0, 0x10
|
||||
/* 1710 80000B10 8FA40040 */ lw $a0, 0x40($sp)
|
||||
/* 1714 80000B14 0C00D1A5 */ jal osSpTaskStartGo
|
||||
/* 1718 80000B18 24840010 */ addiu $a0, $a0, 0x10
|
||||
/* 171C 80000B1C 02202025 */ or $a0, $s1, $zero
|
||||
/* 1720 80000B20 02602825 */ or $a1, $s3, $zero
|
||||
/* 1724 80000B24 0C00D008 */ jal osRecvMesg
|
||||
/* 1728 80000B28 24060001 */ addiu $a2, $zero, 0x1
|
||||
/* 172C 80000B2C AE00066C */ sw $zero, 0x66C($s0)
|
||||
/* 1730 80000B30 02402025 */ or $a0, $s2, $zero
|
||||
/* 1734 80000B34 02602825 */ or $a1, $s3, $zero
|
||||
/* 1738 80000B38 0C00D008 */ jal osRecvMesg
|
||||
/* 173C 80000B3C 24060001 */ addiu $a2, $zero, 0x1
|
||||
/* 1740 80000B40 8E190678 */ lw $t9, 0x678($s0)
|
||||
/* 1744 80000B44 53200005 */ beql $t9, $zero, .L80000B5C
|
||||
/* 1748 80000B48 8FA80040 */ lw $t0, 0x40($sp)
|
||||
/* 174C 80000B4C 0C00D1B8 */ jal osViBlack
|
||||
/* 1750 80000B50 00002025 */ or $a0, $zero, $zero
|
||||
/* 1754 80000B54 AE000678 */ sw $zero, 0x678($s0)
|
||||
/* 1758 80000B58 8FA80040 */ lw $t0, 0x40($sp)
|
||||
.L80000B5C:
|
||||
/* 175C 80000B5C 8D090008 */ lw $t1, 0x8($t0)
|
||||
/* 1760 80000B60 312A0040 */ andi $t2, $t1, 0x40
|
||||
/* 1764 80000B64 51400004 */ beql $t2, $zero, .L80000B78
|
||||
/* 1768 80000B68 8FAB0040 */ lw $t3, 0x40($sp)
|
||||
/* 176C 80000B6C 0C00D1D4 */ jal osViSwapBuffer
|
||||
/* 1770 80000B70 8D04000C */ lw $a0, 0xC($t0)
|
||||
/* 1774 80000B74 8FAB0040 */ lw $t3, 0x40($sp)
|
||||
.L80000B78:
|
||||
/* 1778 80000B78 24060001 */ addiu $a2, $zero, 0x1
|
||||
/* 177C 80000B7C 8D640050 */ lw $a0, 0x50($t3)
|
||||
/* 1780 80000B80 0C00D080 */ jal osSendMesg
|
||||
/* 1784 80000B84 8D650054 */ lw $a1, 0x54($t3)
|
||||
/* 1788 80000B88 1000FFCB */ b .L80000AB8
|
||||
/* 178C 80000B8C 02A02025 */ or $a0, $s5, $zero
|
||||
/* 1790 80000B90 8FBF002C */ lw $ra, 0x2C($sp)
|
||||
/* 1794 80000B94 8FB00014 */ lw $s0, 0x14($sp)
|
||||
/* 1798 80000B98 8FB10018 */ lw $s1, 0x18($sp)
|
||||
/* 179C 80000B9C 8FB2001C */ lw $s2, 0x1C($sp)
|
||||
/* 17A0 80000BA0 8FB30020 */ lw $s3, 0x20($sp)
|
||||
/* 17A4 80000BA4 8FB40024 */ lw $s4, 0x24($sp)
|
||||
/* 17A8 80000BA8 8FB50028 */ lw $s5, 0x28($sp)
|
||||
/* 17AC 80000BAC 03E00008 */ jr $ra
|
||||
/* 17B0 80000BB0 27BD0048 */ addiu $sp, $sp, 0x48
|
||||
|
||||
glabel nnScWaitTaskReady
|
||||
/* 17B4 80000BB4 27BDFFB8 */ addiu $sp, $sp, -0x48
|
||||
/* 17B8 80000BB8 AFB1001C */ sw $s1, 0x1C($sp)
|
||||
/* 17BC 80000BBC 00808825 */ or $s1, $a0, $zero
|
||||
/* 17C0 80000BC0 AFBF002C */ sw $ra, 0x2C($sp)
|
||||
/* 17C4 80000BC4 AFB40028 */ sw $s4, 0x28($sp)
|
||||
/* 17C8 80000BC8 AFB30024 */ sw $s3, 0x24($sp)
|
||||
/* 17CC 80000BCC AFB20020 */ sw $s2, 0x20($sp)
|
||||
/* 17D0 80000BD0 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 17D4 80000BD4 AFA00044 */ sw $zero, 0x44($sp)
|
||||
/* 17D8 80000BD8 0C00D1E8 */ jal osViGetCurrentFramebuffer
|
||||
/* 17DC 80000BDC 8CB4000C */ lw $s4, 0xC($a1)
|
||||
/* 17E0 80000BE0 14540012 */ bne $v0, $s4, .L80000C2C
|
||||
/* 17E4 80000BE4 2632011C */ addiu $s2, $s1, 0x11C
|
||||
/* 17E8 80000BE8 27B30044 */ addiu $s3, $sp, 0x44
|
||||
/* 17EC 80000BEC 27B0003C */ addiu $s0, $sp, 0x3C
|
||||
/* 17F0 80000BF0 02202025 */ or $a0, $s1, $zero
|
||||
.L80000BF4:
|
||||
/* 17F4 80000BF4 02002825 */ or $a1, $s0, $zero
|
||||
/* 17F8 80000BF8 0C0001F5 */ jal nnScAddClient
|
||||
/* 17FC 80000BFC 02403025 */ or $a2, $s2, $zero
|
||||
/* 1800 80000C00 02402025 */ or $a0, $s2, $zero
|
||||
/* 1804 80000C04 02602825 */ or $a1, $s3, $zero
|
||||
/* 1808 80000C08 0C00D008 */ jal osRecvMesg
|
||||
/* 180C 80000C0C 24060001 */ addiu $a2, $zero, 0x1
|
||||
/* 1810 80000C10 02202025 */ or $a0, $s1, $zero
|
||||
/* 1814 80000C14 0C000209 */ jal nnScRemoveClient
|
||||
/* 1818 80000C18 02002825 */ or $a1, $s0, $zero
|
||||
/* 181C 80000C1C 0C00D1E8 */ jal osViGetCurrentFramebuffer
|
||||
/* 1820 80000C20 00000000 */ nop
|
||||
/* 1824 80000C24 5054FFF3 */ beql $v0, $s4, .L80000BF4
|
||||
/* 1828 80000C28 02202025 */ or $a0, $s1, $zero
|
||||
.L80000C2C:
|
||||
/* 182C 80000C2C 8FBF002C */ lw $ra, 0x2C($sp)
|
||||
/* 1830 80000C30 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 1834 80000C34 8FB1001C */ lw $s1, 0x1C($sp)
|
||||
/* 1838 80000C38 8FB20020 */ lw $s2, 0x20($sp)
|
||||
/* 183C 80000C3C 8FB30024 */ lw $s3, 0x24($sp)
|
||||
/* 1840 80000C40 8FB40028 */ lw $s4, 0x28($sp)
|
||||
/* 1844 80000C44 03E00008 */ jr $ra
|
||||
/* 1848 80000C48 27BD0048 */ addiu $sp, $sp, 0x48
|
||||
/* 184C 80000C4C 00000000 */ nop
|
3228
asm/1EDF0.s
Normal file
3228
asm/1EDF0.s
Normal file
File diff suppressed because it is too large
Load Diff
2188
asm/25290.s
Normal file
2188
asm/25290.s
Normal file
File diff suppressed because it is too large
Load Diff
1982
asm/328F0.s
Normal file
1982
asm/328F0.s
Normal file
File diff suppressed because it is too large
Load Diff
1258
asm/camera.s
Normal file
1258
asm/camera.s
Normal file
File diff suppressed because it is too large
Load Diff
78
asm/cartrominit.s
Normal file
78
asm/cartrominit.s
Normal file
@ -0,0 +1,78 @@
|
||||
.include "macro.inc"
|
||||
|
||||
/* assembler directives */
|
||||
.set noat /* allow manual use of $at */
|
||||
.set noreorder /* don't insert nops after branches */
|
||||
.set gp=64 /* allow use of 64-bit general purpose registers */
|
||||
|
||||
.section .text, "ax"
|
||||
|
||||
/* Generated by spimdisasm 1.12.1 */
|
||||
|
||||
glabel osCartRomInit
|
||||
/* 3E150 8003D550 3C0E8009 */ lui $t6, %hi(D_800954EC)
|
||||
/* 3E154 8003D554 8DCE54EC */ lw $t6, %lo(D_800954EC)($t6)
|
||||
/* 3E158 8003D558 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* 3E15C 8003D55C 3C01B000 */ lui $at, (0xB0000000 >> 16)
|
||||
/* 3E160 8003D560 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 3E164 8003D564 15C10004 */ bne $t6, $at, .L8003D578
|
||||
/* 3E168 8003D568 AFA0001C */ sw $zero, 0x1C($sp)
|
||||
/* 3E16C 8003D56C 3C028009 */ lui $v0, %hi(D_800954E0)
|
||||
/* 3E170 8003D570 10000030 */ b .L8003D634
|
||||
/* 3E174 8003D574 244254E0 */ addiu $v0, $v0, %lo(D_800954E0)
|
||||
.L8003D578:
|
||||
/* 3E178 8003D578 3C018009 */ lui $at, %hi(D_800954E4)
|
||||
/* 3E17C 8003D57C A02054E4 */ sb $zero, %lo(D_800954E4)($at)
|
||||
/* 3E180 8003D580 3C018009 */ lui $at, %hi(D_800954EC)
|
||||
/* 3E184 8003D584 3C0FB000 */ lui $t7, (0xB0000000 >> 16)
|
||||
/* 3E188 8003D588 AC2F54EC */ sw $t7, %lo(D_800954EC)($at)
|
||||
/* 3E18C 8003D58C 00002025 */ or $a0, $zero, $zero
|
||||
/* 3E190 8003D590 0C00F4F4 */ jal osPiRawReadIo
|
||||
/* 3E194 8003D594 27A5001C */ addiu $a1, $sp, 0x1C
|
||||
/* 3E198 8003D598 8FB8001C */ lw $t8, 0x1C($sp)
|
||||
/* 3E19C 8003D59C 3C018009 */ lui $at, %hi(D_800954E5)
|
||||
/* 3E1A0 8003D5A0 3C048009 */ lui $a0, %hi(D_800954E0)
|
||||
/* 3E1A4 8003D5A4 331900FF */ andi $t9, $t8, 0xFF
|
||||
/* 3E1A8 8003D5A8 A03954E5 */ sb $t9, %lo(D_800954E5)($at)
|
||||
/* 3E1AC 8003D5AC 00184202 */ srl $t0, $t8, 8
|
||||
/* 3E1B0 8003D5B0 310900FF */ andi $t1, $t0, 0xFF
|
||||
/* 3E1B4 8003D5B4 3C018009 */ lui $at, %hi(D_800954E8)
|
||||
/* 3E1B8 8003D5B8 A02954E8 */ sb $t1, %lo(D_800954E8)($at)
|
||||
/* 3E1BC 8003D5BC 3C018009 */ lui $at, %hi(D_800954E6)
|
||||
/* 3E1C0 8003D5C0 00185402 */ srl $t2, $t8, 16
|
||||
/* 3E1C4 8003D5C4 00186502 */ srl $t4, $t8, 20
|
||||
/* 3E1C8 8003D5C8 314B000F */ andi $t3, $t2, 0xF
|
||||
/* 3E1CC 8003D5CC 318D000F */ andi $t5, $t4, 0xF
|
||||
/* 3E1D0 8003D5D0 A02B54E6 */ sb $t3, %lo(D_800954E6)($at)
|
||||
/* 3E1D4 8003D5D4 A02D54E7 */ sb $t5, %lo(D_800954E7)($at)
|
||||
/* 3E1D8 8003D5D8 3C018009 */ lui $at, %hi(D_800954E9)
|
||||
/* 3E1DC 8003D5DC A02054E9 */ sb $zero, %lo(D_800954E9)($at)
|
||||
/* 3E1E0 8003D5E0 3C018009 */ lui $at, %hi(D_800954F0)
|
||||
/* 3E1E4 8003D5E4 248454E0 */ addiu $a0, $a0, %lo(D_800954E0)
|
||||
/* 3E1E8 8003D5E8 AC2054F0 */ sw $zero, %lo(D_800954F0)($at)
|
||||
/* 3E1EC 8003D5EC 24840014 */ addiu $a0, $a0, 0x14
|
||||
/* 3E1F0 8003D5F0 0C00F50C */ jal bzero
|
||||
/* 3E1F4 8003D5F4 24050060 */ addiu $a1, $zero, 0x60
|
||||
/* 3E1F8 8003D5F8 0C00F534 */ jal __osDisableInt
|
||||
/* 3E1FC 8003D5FC 00000000 */ nop
|
||||
/* 3E200 8003D600 3C0E8007 */ lui $t6, %hi(D_8006F43C)
|
||||
/* 3E204 8003D604 8DCEF43C */ lw $t6, %lo(D_8006F43C)($t6)
|
||||
/* 3E208 8003D608 3C018009 */ lui $at, %hi(D_800954E0)
|
||||
/* 3E20C 8003D60C 3C0F8009 */ lui $t7, %hi(D_800954E0)
|
||||
/* 3E210 8003D610 AC2E54E0 */ sw $t6, %lo(D_800954E0)($at)
|
||||
/* 3E214 8003D614 AFA20018 */ sw $v0, 0x18($sp)
|
||||
/* 3E218 8003D618 3C018007 */ lui $at, %hi(D_8006F43C)
|
||||
/* 3E21C 8003D61C 25EF54E0 */ addiu $t7, $t7, %lo(D_800954E0)
|
||||
/* 3E220 8003D620 AC2FF43C */ sw $t7, %lo(D_8006F43C)($at)
|
||||
/* 3E224 8003D624 0C00F53C */ jal __osRestoreInt
|
||||
/* 3E228 8003D628 8FA40018 */ lw $a0, 0x18($sp)
|
||||
/* 3E22C 8003D62C 3C028009 */ lui $v0, %hi(D_800954E0)
|
||||
/* 3E230 8003D630 244254E0 */ addiu $v0, $v0, %lo(D_800954E0)
|
||||
.L8003D634:
|
||||
/* 3E234 8003D634 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 3E238 8003D638 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
/* 3E23C 8003D63C 03E00008 */ jr $ra
|
||||
/* 3E240 8003D640 00000000 */ nop
|
||||
/* 3E244 8003D644 00000000 */ nop
|
||||
/* 3E248 8003D648 00000000 */ nop
|
||||
/* 3E24C 8003D64C 00000000 */ nop
|
47
asm/copy.s
Normal file
47
asm/copy.s
Normal file
@ -0,0 +1,47 @@
|
||||
.include "macro.inc"
|
||||
|
||||
/* assembler directives */
|
||||
.set noat /* allow manual use of $at */
|
||||
.set noreorder /* don't insert nops after branches */
|
||||
.set gp=64 /* allow use of 64-bit general purpose registers */
|
||||
|
||||
.section .text, "ax"
|
||||
|
||||
/* Generated by spimdisasm 1.12.1 */
|
||||
|
||||
glabel alCopy
|
||||
/* 49640 80048A40 00801025 */ or $v0, $a0, $zero
|
||||
/* 49644 80048A44 00A01825 */ or $v1, $a1, $zero
|
||||
/* 49648 80048A48 18C00018 */ blez $a2, .L80048AAC
|
||||
/* 4964C 80048A4C 00003825 */ or $a3, $zero, $zero
|
||||
/* 49650 80048A50 30C50003 */ andi $a1, $a2, 0x3
|
||||
/* 49654 80048A54 10A00009 */ beqz $a1, .L80048A7C
|
||||
/* 49658 80048A58 00A02025 */ or $a0, $a1, $zero
|
||||
.L80048A5C:
|
||||
/* 4965C 80048A5C 904E0000 */ lbu $t6, 0x0($v0)
|
||||
/* 49660 80048A60 24E70001 */ addiu $a3, $a3, 0x1
|
||||
/* 49664 80048A64 24630001 */ addiu $v1, $v1, 0x1
|
||||
/* 49668 80048A68 24420001 */ addiu $v0, $v0, 0x1
|
||||
/* 4966C 80048A6C 1487FFFB */ bne $a0, $a3, .L80048A5C
|
||||
/* 49670 80048A70 A06EFFFF */ sb $t6, -0x1($v1)
|
||||
/* 49674 80048A74 10E6000D */ beq $a3, $a2, .L80048AAC
|
||||
/* 49678 80048A78 00000000 */ nop
|
||||
.L80048A7C:
|
||||
/* 4967C 80048A7C 904F0000 */ lbu $t7, 0x0($v0)
|
||||
/* 49680 80048A80 24E70004 */ addiu $a3, $a3, 0x4
|
||||
/* 49684 80048A84 24630004 */ addiu $v1, $v1, 0x4
|
||||
/* 49688 80048A88 A06FFFFC */ sb $t7, -0x4($v1)
|
||||
/* 4968C 80048A8C 90580001 */ lbu $t8, 0x1($v0)
|
||||
/* 49690 80048A90 24420004 */ addiu $v0, $v0, 0x4
|
||||
/* 49694 80048A94 A078FFFD */ sb $t8, -0x3($v1)
|
||||
/* 49698 80048A98 9059FFFE */ lbu $t9, -0x2($v0)
|
||||
/* 4969C 80048A9C A079FFFE */ sb $t9, -0x2($v1)
|
||||
/* 496A0 80048AA0 9048FFFF */ lbu $t0, -0x1($v0)
|
||||
/* 496A4 80048AA4 14E6FFF5 */ bne $a3, $a2, .L80048A7C
|
||||
/* 496A8 80048AA8 A068FFFF */ sb $t0, -0x1($v1)
|
||||
.L80048AAC:
|
||||
/* 496AC 80048AAC 03E00008 */ jr $ra
|
||||
/* 496B0 80048AB0 00000000 */ nop
|
||||
/* 496B4 80048AB4 00000000 */ nop
|
||||
/* 496B8 80048AB8 00000000 */ nop
|
||||
/* 496BC 80048ABC 00000000 */ nop
|
96
asm/createthread.s
Normal file
96
asm/createthread.s
Normal file
@ -0,0 +1,96 @@
|
||||
.include "macro.inc"
|
||||
|
||||
/* assembler directives */
|
||||
.set noat /* allow manual use of $at */
|
||||
.set noreorder /* don't insert nops after branches */
|
||||
.set gp=64 /* allow use of 64-bit general purpose registers */
|
||||
|
||||
.section .text, "ax"
|
||||
|
||||
/* Generated by spimdisasm 1.11.1 */
|
||||
|
||||
glabel osCreateThread
|
||||
/* 346E0 80033AE0 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 346E4 80033AE4 AFA40028 */ sw $a0, 0x28($sp)
|
||||
/* 346E8 80033AE8 AFA5002C */ sw $a1, 0x2C($sp)
|
||||
/* 346EC 80033AEC 8FAE002C */ lw $t6, 0x2C($sp)
|
||||
/* 346F0 80033AF0 8FAF0028 */ lw $t7, 0x28($sp)
|
||||
/* 346F4 80033AF4 AFBF001C */ sw $ra, 0x1C($sp)
|
||||
/* 346F8 80033AF8 AFA60030 */ sw $a2, 0x30($sp)
|
||||
/* 346FC 80033AFC AFA70034 */ sw $a3, 0x34($sp)
|
||||
/* 34700 80033B00 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 34704 80033B04 ADEE0014 */ sw $t6, 0x14($t7)
|
||||
/* 34708 80033B08 8FB90028 */ lw $t9, 0x28($sp)
|
||||
/* 3470C 80033B0C 8FB8003C */ lw $t8, 0x3C($sp)
|
||||
/* 34710 80033B10 AF380004 */ sw $t8, 0x4($t9)
|
||||
/* 34714 80033B14 8FA80028 */ lw $t0, 0x28($sp)
|
||||
/* 34718 80033B18 AD000000 */ sw $zero, 0x0($t0)
|
||||
/* 3471C 80033B1C 8FA90028 */ lw $t1, 0x28($sp)
|
||||
/* 34720 80033B20 AD200008 */ sw $zero, 0x8($t1)
|
||||
/* 34724 80033B24 8FAB0028 */ lw $t3, 0x28($sp)
|
||||
/* 34728 80033B28 8FAA0030 */ lw $t2, 0x30($sp)
|
||||
/* 3472C 80033B2C AD6A011C */ sw $t2, 0x11C($t3)
|
||||
/* 34730 80033B30 8FAC0034 */ lw $t4, 0x34($sp)
|
||||
/* 34734 80033B34 8FAD0028 */ lw $t5, 0x28($sp)
|
||||
/* 34738 80033B38 01807825 */ or $t7, $t4, $zero
|
||||
/* 3473C 80033B3C 000C77C3 */ sra $t6, $t4, 31
|
||||
/* 34740 80033B40 ADAE0038 */ sw $t6, 0x38($t5)
|
||||
/* 34744 80033B44 ADAF003C */ sw $t7, 0x3C($t5)
|
||||
/* 34748 80033B48 8FB80038 */ lw $t8, 0x38($sp)
|
||||
/* 3474C 80033B4C 8FB90028 */ lw $t9, 0x28($sp)
|
||||
/* 34750 80033B50 3C0C8004 */ lui $t4, %hi(D_8003D360)
|
||||
/* 34754 80033B54 03004825 */ or $t1, $t8, $zero
|
||||
/* 34758 80033B58 2D210010 */ sltiu $at, $t1, 0x10
|
||||
/* 3475C 80033B5C 001847C3 */ sra $t0, $t8, 31
|
||||
/* 34760 80033B60 01015023 */ subu $t2, $t0, $at
|
||||
/* 34764 80033B64 252BFFF0 */ addiu $t3, $t1, -0x10
|
||||
/* 34768 80033B68 AF2B00F4 */ sw $t3, 0xF4($t9)
|
||||
/* 3476C 80033B6C AF2A00F0 */ sw $t2, 0xF0($t9)
|
||||
/* 34770 80033B70 8FAD0028 */ lw $t5, 0x28($sp)
|
||||
/* 34774 80033B74 258CD360 */ addiu $t4, $t4, %lo(D_8003D360)
|
||||
/* 34778 80033B78 01807825 */ or $t7, $t4, $zero
|
||||
/* 3477C 80033B7C 000C77C3 */ sra $t6, $t4, 31
|
||||
/* 34780 80033B80 ADAE0100 */ sw $t6, 0x100($t5)
|
||||
/* 34784 80033B84 ADAF0104 */ sw $t7, 0x104($t5)
|
||||
/* 34788 80033B88 8FA90028 */ lw $t1, 0x28($sp)
|
||||
/* 3478C 80033B8C 3C18003F */ lui $t8, (0x3FFF01 >> 16)
|
||||
/* 34790 80033B90 3718FF01 */ ori $t8, $t8, (0x3FFF01 & 0xFFFF)
|
||||
/* 34794 80033B94 AFB80020 */ sw $t8, 0x20($sp)
|
||||
/* 34798 80033B98 3408FF03 */ ori $t0, $zero, 0xFF03
|
||||
/* 3479C 80033B9C AD280118 */ sw $t0, 0x118($t1)
|
||||
/* 347A0 80033BA0 8FAA0020 */ lw $t2, 0x20($sp)
|
||||
/* 347A4 80033BA4 8FAC0028 */ lw $t4, 0x28($sp)
|
||||
/* 347A8 80033BA8 3C01003F */ lui $at, (0x3F0000 >> 16)
|
||||
/* 347AC 80033BAC 01415824 */ and $t3, $t2, $at
|
||||
/* 347B0 80033BB0 000BCC02 */ srl $t9, $t3, 16
|
||||
/* 347B4 80033BB4 AD990128 */ sw $t9, 0x128($t4)
|
||||
/* 347B8 80033BB8 8FAF0028 */ lw $t7, 0x28($sp)
|
||||
/* 347BC 80033BBC 3C0E0100 */ lui $t6, (0x1000800 >> 16)
|
||||
/* 347C0 80033BC0 35CE0800 */ ori $t6, $t6, (0x1000800 & 0xFFFF)
|
||||
/* 347C4 80033BC4 ADEE012C */ sw $t6, 0x12C($t7)
|
||||
/* 347C8 80033BC8 8FAD0028 */ lw $t5, 0x28($sp)
|
||||
/* 347CC 80033BCC 24180001 */ addiu $t8, $zero, 0x1
|
||||
/* 347D0 80033BD0 ADA00018 */ sw $zero, 0x18($t5)
|
||||
/* 347D4 80033BD4 8FA80028 */ lw $t0, 0x28($sp)
|
||||
/* 347D8 80033BD8 A5180010 */ sh $t8, 0x10($t0)
|
||||
/* 347DC 80033BDC 8FA90028 */ lw $t1, 0x28($sp)
|
||||
/* 347E0 80033BE0 0C00F534 */ jal __osDisableInt
|
||||
/* 347E4 80033BE4 A5200012 */ sh $zero, 0x12($t1)
|
||||
/* 347E8 80033BE8 3C0A8007 */ lui $t2, %hi(D_800709FC)
|
||||
/* 347EC 80033BEC 8D4A09FC */ lw $t2, %lo(D_800709FC)($t2)
|
||||
/* 347F0 80033BF0 8FAB0028 */ lw $t3, 0x28($sp)
|
||||
/* 347F4 80033BF4 00408025 */ or $s0, $v0, $zero
|
||||
/* 347F8 80033BF8 3C018007 */ lui $at, %hi(D_800709FC)
|
||||
/* 347FC 80033BFC AD6A000C */ sw $t2, 0xC($t3)
|
||||
/* 34800 80033C00 8FB90028 */ lw $t9, 0x28($sp)
|
||||
/* 34804 80033C04 02002025 */ or $a0, $s0, $zero
|
||||
/* 34808 80033C08 0C00F53C */ jal __osRestoreInt
|
||||
/* 3480C 80033C0C AC3909FC */ sw $t9, %lo(D_800709FC)($at)
|
||||
/* 34810 80033C10 8FBF001C */ lw $ra, 0x1C($sp)
|
||||
/* 34814 80033C14 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 34818 80033C18 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
/* 3481C 80033C1C 03E00008 */ jr $ra
|
||||
/* 34820 80033C20 00000000 */ nop
|
||||
/* 34824 80033C24 00000000 */ nop
|
||||
/* 34828 80033C28 00000000 */ nop
|
||||
/* 3482C 80033C2C 00000000 */ nop
|
17
asm/data/1850.rodata.s
Normal file
17
asm/data/1850.rodata.s
Normal file
@ -0,0 +1,17 @@
|
||||
.include "macro.inc"
|
||||
|
||||
.section .rodata
|
||||
|
||||
/* Generated by spimdisasm 1.12.1 */
|
||||
|
||||
glabel jtbl_80070EF0
|
||||
/* 71AF0 80070EF0 80000E54 */ .word .L80000E54
|
||||
/* 71AF4 80070EF4 80000E64 */ .word .L80000E64
|
||||
/* 71AF8 80070EF8 80000E74 */ .word .L80000E74
|
||||
/* 71AFC 80070EFC 80000E84 */ .word .L80000E84
|
||||
/* 71B00 80070F00 80000E94 */ .word .L80000E94
|
||||
|
||||
glabel D_80070F04
|
||||
/* 71B04 80070F04 3FC90FDB */ .float 1.570796371
|
||||
/* 71B08 80070F08 00000000 */ .float 0
|
||||
/* 71B0C 80070F0C 00000000 */ .float 0
|
15
asm/data/1BCD0.rodata.s
Normal file
15
asm/data/1BCD0.rodata.s
Normal file
@ -0,0 +1,15 @@
|
||||
.include "macro.inc"
|
||||
|
||||
.section .rodata
|
||||
|
||||
/* Generated by spimdisasm 1.10.1 */
|
||||
|
||||
glabel jtbl_800715F0
|
||||
/* 721F0 800715F0 8001B50C */ .word .L8001B50C
|
||||
/* 721F4 800715F4 8001B70C */ .word .L8001B70C
|
||||
/* 721F8 800715F8 8001B910 */ .word .L8001B910
|
||||
/* 721FC 800715FC 8001BB1C */ .word .L8001BB1C
|
||||
/* 72200 80071600 8001BD28 */ .word .L8001BD28
|
||||
/* 72204 80071604 8001BF2C */ .word .L8001BF2C
|
||||
/* 72208 80071608 8001C130 */ .word .L8001C130
|
||||
/* 7220C 8007160C 8001C338 */ .word .L8001C338
|
182
asm/data/2C110.rodata.s
Normal file
182
asm/data/2C110.rodata.s
Normal file
@ -0,0 +1,182 @@
|
||||
.include "macro.inc"
|
||||
|
||||
.section .rodata
|
||||
|
||||
/* Generated by spimdisasm 1.10.1 */
|
||||
|
||||
glabel D_80071750
|
||||
/* 72350 80071750 */ .asciz "Repair Info %d %d\n"
|
||||
.balign 4
|
||||
|
||||
glabel jtbl_80071764
|
||||
/* 72364 80071764 8002B634 */ .word .L8002B634
|
||||
/* 72368 80071768 8002B684 */ .word .L8002B684
|
||||
/* 7236C 8007176C 8002B65C */ .word .L8002B65C
|
||||
/* 72370 80071770 8002B670 */ .word .L8002B670
|
||||
/* 72374 80071774 8002B648 */ .word .L8002B648
|
||||
/* 72378 80071778 8002B620 */ .word .L8002B620
|
||||
/* 7237C 8007177C 8002B698 */ .word .L8002B698
|
||||
|
||||
glabel jtbl_80071780
|
||||
/* 72380 80071780 8002BF74 */ .word .L8002BF74
|
||||
/* 72384 80071784 8002BF74 */ .word .L8002BF74
|
||||
/* 72388 80071788 8002BF74 */ .word .L8002BF74
|
||||
/* 7238C 8007178C 8002BF74 */ .word .L8002BF74
|
||||
/* 72390 80071790 8002BF74 */ .word .L8002BF74
|
||||
/* 72394 80071794 8002BFB0 */ .word .L8002BFB0
|
||||
/* 72398 80071798 8002BFB0 */ .word .L8002BFB0
|
||||
/* 7239C 8007179C 8002BFB0 */ .word .L8002BFB0
|
||||
/* 723A0 800717A0 8002BF74 */ .word .L8002BF74
|
||||
/* 723A4 800717A4 8002BFB0 */ .word .L8002BFB0
|
||||
/* 723A8 800717A8 8002BFB0 */ .word .L8002BFB0
|
||||
/* 723AC 800717AC 8002BFB0 */ .word .L8002BFB0
|
||||
/* 723B0 800717B0 8002BF74 */ .word .L8002BF74
|
||||
/* 723B4 800717B4 8002BFB0 */ .word .L8002BFB0
|
||||
/* 723B8 800717B8 8002BFB0 */ .word .L8002BFB0
|
||||
/* 723BC 800717BC 8002BFB0 */ .word .L8002BFB0
|
||||
/* 723C0 800717C0 8002BFA8 */ .word .L8002BFA8
|
||||
|
||||
glabel jtbl_800717C4
|
||||
/* 723C4 800717C4 8002C070 */ .word .L8002C070
|
||||
/* 723C8 800717C8 8002C070 */ .word .L8002C070
|
||||
/* 723CC 800717CC 8002C070 */ .word .L8002C070
|
||||
/* 723D0 800717D0 8002C070 */ .word .L8002C070
|
||||
/* 723D4 800717D4 8002C174 */ .word .L8002C174
|
||||
/* 723D8 800717D8 8002C174 */ .word .L8002C174
|
||||
/* 723DC 800717DC 8002C174 */ .word .L8002C174
|
||||
/* 723E0 800717E0 8002C174 */ .word .L8002C174
|
||||
/* 723E4 800717E4 8002C174 */ .word .L8002C174
|
||||
/* 723E8 800717E8 8002C070 */ .word .L8002C070
|
||||
/* 723EC 800717EC 8002C070 */ .word .L8002C070
|
||||
/* 723F0 800717F0 8002C070 */ .word .L8002C070
|
||||
/* 723F4 800717F4 8002C174 */ .word .L8002C174
|
||||
/* 723F8 800717F8 8002C034 */ .word .L8002C034
|
||||
/* 723FC 800717FC 8002C174 */ .word .L8002C174
|
||||
/* 72400 80071800 8002BFE4 */ .word .L8002BFE4
|
||||
/* 72404 80071804 8002C174 */ .word .L8002C174
|
||||
/* 72408 80071808 8002C070 */ .word .L8002C070
|
||||
/* 7240C 8007180C 8002C070 */ .word .L8002C070
|
||||
/* 72410 80071810 8002C070 */ .word .L8002C070
|
||||
|
||||
glabel jtbl_80071814
|
||||
/* 72414 80071814 8002C120 */ .word .L8002C120
|
||||
/* 72418 80071818 8002C120 */ .word .L8002C120
|
||||
/* 7241C 8007181C 8002C120 */ .word .L8002C120
|
||||
/* 72420 80071820 8002C120 */ .word .L8002C120
|
||||
/* 72424 80071824 8002C174 */ .word .L8002C174
|
||||
/* 72428 80071828 8002C174 */ .word .L8002C174
|
||||
/* 7242C 8007182C 8002C174 */ .word .L8002C174
|
||||
/* 72430 80071830 8002C174 */ .word .L8002C174
|
||||
/* 72434 80071834 8002C174 */ .word .L8002C174
|
||||
/* 72438 80071838 8002C120 */ .word .L8002C120
|
||||
/* 7243C 8007183C 8002C120 */ .word .L8002C120
|
||||
/* 72440 80071840 8002C120 */ .word .L8002C120
|
||||
/* 72444 80071844 8002C174 */ .word .L8002C174
|
||||
/* 72448 80071848 8002C0F8 */ .word .L8002C0F8
|
||||
/* 7244C 8007184C 8002C120 */ .word .L8002C120
|
||||
/* 72450 80071850 8002C174 */ .word .L8002C174
|
||||
/* 72454 80071854 8002C174 */ .word .L8002C174
|
||||
/* 72458 80071858 8002C120 */ .word .L8002C120
|
||||
/* 7245C 8007185C 8002C120 */ .word .L8002C120
|
||||
/* 72460 80071860 8002C120 */ .word .L8002C120
|
||||
|
||||
glabel jtbl_80071864
|
||||
/* 72464 80071864 8002C5D4 */ .word .L8002C5D4
|
||||
/* 72468 80071868 8002C5A8 */ .word .L8002C5A8
|
||||
/* 7246C 8007186C 8002C604 */ .word .L8002C604
|
||||
/* 72470 80071870 8002C690 */ .word .L8002C690
|
||||
/* 72474 80071874 8002C79C */ .word .L8002C79C
|
||||
/* 72478 80071878 8002C79C */ .word .L8002C79C
|
||||
/* 7247C 8007187C 8002C79C */ .word .L8002C79C
|
||||
/* 72480 80071880 8002C79C */ .word .L8002C79C
|
||||
/* 72484 80071884 8002C79C */ .word .L8002C79C
|
||||
/* 72488 80071888 8002C680 */ .word .L8002C680
|
||||
/* 7248C 8007188C 8002C658 */ .word .L8002C658
|
||||
/* 72490 80071890 8002C658 */ .word .L8002C658
|
||||
/* 72494 80071894 8002C79C */ .word .L8002C79C
|
||||
/* 72498 80071898 8002C58C */ .word .L8002C58C
|
||||
/* 7249C 8007189C 8002C658 */ .word .L8002C658
|
||||
/* 724A0 800718A0 8002C79C */ .word .L8002C79C
|
||||
/* 724A4 800718A4 8002C79C */ .word .L8002C79C
|
||||
/* 724A8 800718A8 8002C634 */ .word .L8002C634
|
||||
/* 724AC 800718AC 8002C658 */ .word .L8002C658
|
||||
/* 724B0 800718B0 8002C658 */ .word .L8002C658
|
||||
|
||||
glabel jtbl_800718B4
|
||||
/* 724B4 800718B4 8002C740 */ .word .L8002C740
|
||||
/* 724B8 800718B8 8002C740 */ .word .L8002C740
|
||||
/* 724BC 800718BC 8002C774 */ .word .L8002C774
|
||||
/* 724C0 800718C0 8002C740 */ .word .L8002C740
|
||||
/* 724C4 800718C4 8002C79C */ .word .L8002C79C
|
||||
/* 724C8 800718C8 8002C79C */ .word .L8002C79C
|
||||
/* 724CC 800718CC 8002C79C */ .word .L8002C79C
|
||||
/* 724D0 800718D0 8002C79C */ .word .L8002C79C
|
||||
/* 724D4 800718D4 8002C79C */ .word .L8002C79C
|
||||
/* 724D8 800718D8 8002C6FC */ .word .L8002C6FC
|
||||
/* 724DC 800718DC 8002C724 */ .word .L8002C724
|
||||
/* 724E0 800718E0 8002C6EC */ .word .L8002C6EC
|
||||
/* 724E4 800718E4 8002C79C */ .word .L8002C79C
|
||||
/* 724E8 800718E8 8002C6DC */ .word .L8002C6DC
|
||||
/* 724EC 800718EC 8002C6EC */ .word .L8002C6EC
|
||||
/* 724F0 800718F0 8002C79C */ .word .L8002C79C
|
||||
/* 724F4 800718F4 8002C79C */ .word .L8002C79C
|
||||
/* 724F8 800718F8 8002C724 */ .word .L8002C724
|
||||
/* 724FC 800718FC 8002C6EC */ .word .L8002C6EC
|
||||
/* 72500 80071900 8002C6EC */ .word .L8002C6EC
|
||||
|
||||
glabel jtbl_80071904
|
||||
/* 72504 80071904 8002C808 */ .word .L8002C808
|
||||
/* 72508 80071908 8002C808 */ .word .L8002C808
|
||||
/* 7250C 8007190C 8002C7E0 */ .word .L8002C7E0
|
||||
/* 72510 80071910 8002C7E0 */ .word .L8002C7E0
|
||||
/* 72514 80071914 8002C7E0 */ .word .L8002C7E0
|
||||
/* 72518 80071918 8002C7E0 */ .word .L8002C7E0
|
||||
/* 7251C 8007191C 8002C7E0 */ .word .L8002C7E0
|
||||
/* 72520 80071920 8002C808 */ .word .L8002C808
|
||||
/* 72524 80071924 8002C808 */ .word .L8002C808
|
||||
/* 72528 80071928 8002C808 */ .word .L8002C808
|
||||
/* 7252C 8007192C 8002C7E0 */ .word .L8002C7E0
|
||||
/* 72530 80071930 8002C808 */ .word .L8002C808
|
||||
/* 72534 80071934 8002C808 */ .word .L8002C808
|
||||
/* 72538 80071938 8002C7E0 */ .word .L8002C7E0
|
||||
/* 7253C 8007193C 8002C7E0 */ .word .L8002C7E0
|
||||
/* 72540 80071940 8002C808 */ .word .L8002C808
|
||||
/* 72544 80071944 8002C808 */ .word .L8002C808
|
||||
/* 72548 80071948 8002C808 */ .word .L8002C808
|
||||
|
||||
glabel jtbl_8007194C
|
||||
/* 7254C 8007194C 8002CAA8 */ .word .L8002CAA8
|
||||
/* 72550 80071950 8002CACC */ .word .L8002CACC
|
||||
/* 72554 80071954 8002CAF0 */ .word .L8002CAF0
|
||||
/* 72558 80071958 8002CAFC */ .word .L8002CAFC
|
||||
/* 7255C 8007195C 8002CBD0 */ .word .L8002CBD0
|
||||
/* 72560 80071960 8002CB20 */ .word .L8002CB20
|
||||
/* 72564 80071964 8002CBD0 */ .word .L8002CBD0
|
||||
/* 72568 80071968 8002CB2C */ .word .L8002CB2C
|
||||
/* 7256C 8007196C 8002CB50 */ .word .L8002CB50
|
||||
/* 72570 80071970 8002CBD0 */ .word .L8002CBD0
|
||||
/* 72574 80071974 8002CBB0 */ .word .L8002CBB0
|
||||
/* 72578 80071978 8002CBBC */ .word .L8002CBBC
|
||||
/* 7257C 8007197C 8002CBD0 */ .word .L8002CBD0
|
||||
/* 72580 80071980 8002CBD0 */ .word .L8002CBD0
|
||||
/* 72584 80071984 8002CBD0 */ .word .L8002CBD0
|
||||
/* 72588 80071988 8002CBC8 */ .word .L8002CBC8
|
||||
|
||||
glabel jtbl_8007198C
|
||||
/* 7258C 8007198C 8002CEE0 */ .word .L8002CEE0
|
||||
/* 72590 80071990 8002CF00 */ .word .L8002CF00
|
||||
/* 72594 80071994 8002CF20 */ .word .L8002CF20
|
||||
/* 72598 80071998 8002CF28 */ .word .L8002CF28
|
||||
/* 7259C 8007199C 8002CFD4 */ .word .L8002CFD4
|
||||
/* 725A0 800719A0 8002CF48 */ .word .L8002CF48
|
||||
/* 725A4 800719A4 8002CFD4 */ .word .L8002CFD4
|
||||
/* 725A8 800719A8 8002CF50 */ .word .L8002CF50
|
||||
/* 725AC 800719AC 8002CF70 */ .word .L8002CF70
|
||||
/* 725B0 800719B0 8002CFD4 */ .word .L8002CFD4
|
||||
/* 725B4 800719B4 8002CFC0 */ .word .L8002CFC0
|
||||
/* 725B8 800719B8 8002CFC8 */ .word .L8002CFC8
|
||||
/* 725BC 800719BC 8002CFD4 */ .word .L8002CFD4
|
||||
/* 725C0 800719C0 8002CFD4 */ .word .L8002CFD4
|
||||
/* 725C4 800719C4 8002CFD4 */ .word .L8002CFD4
|
||||
/* 725C8 800719C8 8002CFD0 */ .word .L8002CFD0
|
||||
/* 725CC 800719CC 00000000 */ .word 0x00000000
|
33
asm/data/8650.rodata.s
Normal file
33
asm/data/8650.rodata.s
Normal file
@ -0,0 +1,33 @@
|
||||
.include "macro.inc"
|
||||
|
||||
.section .rodata
|
||||
|
||||
/* Generated by spimdisasm 1.11.1 */
|
||||
|
||||
glabel D_80071110
|
||||
/* 71D10 80071110 3FF921FB54442D18 */ .double 1.57079632679489656
|
||||
|
||||
glabel D_80071118
|
||||
/* 71D18 80071118 3FD921FB54442D18 */ .double 0.392699081698724139
|
||||
|
||||
glabel D_80071120
|
||||
/* 71D20 80071120 3ECCCCCD */ .float 0.400000006
|
||||
|
||||
glabel D_80071124
|
||||
/* 71D24 80071124 469C4000 */ .float 20000
|
||||
|
||||
glabel D_80071128
|
||||
/* 71D28 80071128 47AFC800 */ .float 90000
|
||||
/* 71D2C 8007112C 00000000 */ .float 0
|
||||
|
||||
glabel D_80071130
|
||||
/* 71D30 80071130 C00921FB54442D18 */ .double -3.14159265358979312
|
||||
|
||||
glabel D_80071138
|
||||
/* 71D38 80071138 401921FB54442D18 */ .double 6.28318530717958623
|
||||
|
||||
glabel D_80071140
|
||||
/* 71D40 80071140 400921FB54442D18 */ .double 3.14159265358979312
|
||||
|
||||
glabel D_80071148
|
||||
/* 71D48 80071148 401921FB54442D18 */ .double 6.28318530717958623
|
49
asm/data/97B0.rodata.s
Normal file
49
asm/data/97B0.rodata.s
Normal file
@ -0,0 +1,49 @@
|
||||
.include "macro.inc"
|
||||
|
||||
.section .rodata
|
||||
|
||||
/* Generated by spimdisasm 1.11.1 */
|
||||
|
||||
glabel D_80071150
|
||||
/* 71D50 80071150 3FD248E8A71DE69B */ .double 0.28570000000000001
|
||||
|
||||
glabel D_80071158
|
||||
/* 71D58 80071158 3ECCCCCD */ .float 0.400000006
|
||||
/* 71D5C 8007115C 00000000 */ .float 0
|
||||
|
||||
glabel D_80071160
|
||||
/* 71D60 80071160 400921FB54442D18 */ .double 3.14159265358979312
|
||||
|
||||
glabel D_80071168
|
||||
/* 71D68 80071168 401921FB54442D18 */ .double 6.28318530717958623
|
||||
|
||||
glabel D_80071170
|
||||
/* 71D70 80071170 C00921FB54442D18 */ .double -3.14159265358979312
|
||||
|
||||
glabel D_80071178
|
||||
/* 71D78 80071178 401921FB54442D18 */ .double 6.28318530717958623
|
||||
|
||||
glabel D_80071180
|
||||
/* 71D80 80071180 401921FB54442D18 */ .double 6.28318530717958623
|
||||
|
||||
glabel D_80071188
|
||||
/* 71D88 80071188 3FA999999999999A */ .double 0.0500000000000000028
|
||||
|
||||
glabel D_80071190
|
||||
/* 71D90 80071190 C00921FB54442D18 */ .double -3.14159265358979312
|
||||
|
||||
glabel jtbl_80071198
|
||||
/* 71D98 80071198 8000AD88 */ .word .L8000AD88
|
||||
/* 71D9C 8007119C 8000AD88 */ .word .L8000AD88
|
||||
/* 71DA0 800711A0 8000ADA4 */ .word .L8000ADA4
|
||||
/* 71DA4 800711A4 8000AD88 */ .word .L8000AD88
|
||||
/* 71DA8 800711A8 8000AD94 */ .word .L8000AD94
|
||||
/* 71DAC 800711AC 8000ADA4 */ .word .L8000ADA4
|
||||
/* 71DB0 800711B0 8000ADA4 */ .word .L8000ADA4
|
||||
/* 71DB4 800711B4 8000AD88 */ .word .L8000AD88
|
||||
/* 71DB8 800711B8 8000ADA4 */ .word .L8000ADA4
|
||||
/* 71DBC 800711BC 8000AD94 */ .word .L8000AD94
|
||||
|
||||
glabel D_800711C0
|
||||
/* 71DC0 800711C0 400CCCCCCCCCCCCD */ .double 3.60000000000000009
|
||||
/* 71DC8 800711C8 00000000 */ .double 0
|
23
asm/data/camera.rodata.s
Normal file
23
asm/data/camera.rodata.s
Normal file
@ -0,0 +1,23 @@
|
||||
.include "macro.inc"
|
||||
|
||||
.section .rodata
|
||||
|
||||
/* Generated by spimdisasm 1.12.1 */
|
||||
|
||||
glabel D_800716D0
|
||||
/* 722D0 800716D0 3FF921FB54442D18 */ .double 1.57079632679489656
|
||||
|
||||
glabel D_800716D8
|
||||
/* 722D8 800716D8 BFF921FB54442D18 */ .double -1.57079632679489656
|
||||
|
||||
glabel D_800716E0
|
||||
/* 722E0 800716E0 3FF921FB54442D18 */ .double 1.57079632679489656
|
||||
|
||||
glabel D_800716E8
|
||||
/* 722E8 800716E8 BFF921FB54442D18 */ .double -1.57079632679489656
|
||||
|
||||
glabel D_800716F0
|
||||
/* 722F0 800716F0 400921FB54442D18 */ .double 3.14159265358979312
|
||||
|
||||
glabel D_800716F8
|
||||
/* 722F8 800716F8 400921FB54442D18 */ .double 3.14159265358979312
|
185
asm/initialize.s
Normal file
185
asm/initialize.s
Normal file
@ -0,0 +1,185 @@
|
||||
.include "macro.inc"
|
||||
|
||||
/* assembler directives */
|
||||
.set noat /* allow manual use of $at */
|
||||
.set noreorder /* don't insert nops after branches */
|
||||
.set gp=64 /* allow use of 64-bit general purpose registers */
|
||||
|
||||
.section .text, "ax"
|
||||
|
||||
/* Generated by spimdisasm 1.11.1 */
|
||||
|
||||
glabel osInitialize
|
||||
/* 34450 80033850 27BDFFC8 */ addiu $sp, $sp, -0x38
|
||||
/* 34454 80033854 AFBF001C */ sw $ra, 0x1C($sp)
|
||||
/* 34458 80033858 240E0001 */ addiu $t6, $zero, 0x1
|
||||
/* 3445C 8003385C 3C018009 */ lui $at, %hi(D_80092D40)
|
||||
/* 34460 80033860 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 34464 80033864 AFA00030 */ sw $zero, 0x30($sp)
|
||||
/* 34468 80033868 0C00F268 */ jal __osGetSR
|
||||
/* 3446C 8003386C AC2E2D40 */ sw $t6, %lo(D_80092D40)($at)
|
||||
/* 34470 80033870 00408025 */ or $s0, $v0, $zero
|
||||
/* 34474 80033874 3C012000 */ lui $at, (0x20000000 >> 16)
|
||||
/* 34478 80033878 0C00F264 */ jal __osSetSR
|
||||
/* 3447C 8003387C 02012025 */ or $a0, $s0, $at
|
||||
/* 34480 80033880 3C040100 */ lui $a0, (0x1000800 >> 16)
|
||||
/* 34484 80033884 0C00F26C */ jal __osSetFpcCsr
|
||||
/* 34488 80033888 34840800 */ ori $a0, $a0, (0x1000800 & 0xFFFF)
|
||||
/* 3448C 8003388C 3C041FC0 */ lui $a0, (0x1FC007FC >> 16)
|
||||
/* 34490 80033890 348407FC */ ori $a0, $a0, (0x1FC007FC & 0xFFFF)
|
||||
/* 34494 80033894 0C00F270 */ jal __osSiRawReadIo
|
||||
/* 34498 80033898 27A50034 */ addiu $a1, $sp, 0x34
|
||||
/* 3449C 8003389C 10400007 */ beqz $v0, .L800338BC
|
||||
/* 344A0 800338A0 00000000 */ nop
|
||||
.L800338A4:
|
||||
/* 344A4 800338A4 3C041FC0 */ lui $a0, (0x1FC007FC >> 16)
|
||||
/* 344A8 800338A8 348407FC */ ori $a0, $a0, (0x1FC007FC & 0xFFFF)
|
||||
/* 344AC 800338AC 0C00F270 */ jal __osSiRawReadIo
|
||||
/* 344B0 800338B0 27A50034 */ addiu $a1, $sp, 0x34
|
||||
/* 344B4 800338B4 1440FFFB */ bnez $v0, .L800338A4
|
||||
/* 344B8 800338B8 00000000 */ nop
|
||||
.L800338BC:
|
||||
/* 344BC 800338BC 8FA50034 */ lw $a1, 0x34($sp)
|
||||
/* 344C0 800338C0 3C041FC0 */ lui $a0, (0x1FC007FC >> 16)
|
||||
/* 344C4 800338C4 348407FC */ ori $a0, $a0, (0x1FC007FC & 0xFFFF)
|
||||
/* 344C8 800338C8 34AF0008 */ ori $t7, $a1, 0x8
|
||||
/* 344CC 800338CC 0C00F284 */ jal __osSiRawWriteIo
|
||||
/* 344D0 800338D0 01E02825 */ or $a1, $t7, $zero
|
||||
/* 344D4 800338D4 10400009 */ beqz $v0, .L800338FC
|
||||
/* 344D8 800338D8 00000000 */ nop
|
||||
.L800338DC:
|
||||
/* 344DC 800338DC 8FA50034 */ lw $a1, 0x34($sp)
|
||||
/* 344E0 800338E0 3C041FC0 */ lui $a0, (0x1FC007FC >> 16)
|
||||
/* 344E4 800338E4 348407FC */ ori $a0, $a0, (0x1FC007FC & 0xFFFF)
|
||||
/* 344E8 800338E8 34B80008 */ ori $t8, $a1, 0x8
|
||||
/* 344EC 800338EC 0C00F284 */ jal __osSiRawWriteIo
|
||||
/* 344F0 800338F0 03002825 */ or $a1, $t8, $zero
|
||||
/* 344F4 800338F4 1440FFF9 */ bnez $v0, .L800338DC
|
||||
/* 344F8 800338F8 00000000 */ nop
|
||||
.L800338FC:
|
||||
/* 344FC 800338FC 3C088004 */ lui $t0, %hi(func_8003CA60)
|
||||
/* 34500 80033900 2508CA60 */ addiu $t0, $t0, %lo(func_8003CA60)
|
||||
/* 34504 80033904 8D010000 */ lw $at, 0x0($t0)
|
||||
/* 34508 80033908 3C198000 */ lui $t9, %hi(D_80000000)
|
||||
/* 3450C 8003390C 3C0D8004 */ lui $t5, %hi(func_8003CA60)
|
||||
/* 34510 80033910 AF210000 */ sw $at, %lo(D_80000000)($t9)
|
||||
/* 34514 80033914 8D0B0004 */ lw $t3, 0x4($t0)
|
||||
/* 34518 80033918 25ADCA60 */ addiu $t5, $t5, %lo(func_8003CA60)
|
||||
/* 3451C 8003391C 3C0C8000 */ lui $t4, (0x80000080 >> 16)
|
||||
/* 34520 80033920 AF2B0004 */ sw $t3, %lo(D_80000004)($t9)
|
||||
/* 34524 80033924 8D010008 */ lw $at, 0x8($t0)
|
||||
/* 34528 80033928 358C0080 */ ori $t4, $t4, (0x80000080 & 0xFFFF)
|
||||
/* 3452C 8003392C 3C098004 */ lui $t1, %hi(func_8003CA60)
|
||||
/* 34530 80033930 AF210008 */ sw $at, %lo(D_80000008)($t9)
|
||||
/* 34534 80033934 8D0B000C */ lw $t3, 0xC($t0)
|
||||
/* 34538 80033938 2529CA60 */ addiu $t1, $t1, %lo(func_8003CA60)
|
||||
/* 3453C 8003393C 3C0A8000 */ lui $t2, (0x80000100 >> 16)
|
||||
/* 34540 80033940 AF2B000C */ sw $t3, %lo(D_8000000C)($t9)
|
||||
/* 34544 80033944 8DA10000 */ lw $at, 0x0($t5)
|
||||
/* 34548 80033948 354A0100 */ ori $t2, $t2, (0x80000100 & 0xFFFF)
|
||||
/* 3454C 8003394C 3C0E8004 */ lui $t6, %hi(func_8003CA60)
|
||||
/* 34550 80033950 AD810000 */ sw $at, 0x0($t4)
|
||||
/* 34554 80033954 8DB80004 */ lw $t8, 0x4($t5)
|
||||
/* 34558 80033958 25CECA60 */ addiu $t6, $t6, %lo(func_8003CA60)
|
||||
/* 3455C 8003395C 3C0F8000 */ lui $t7, (0x80000180 >> 16)
|
||||
/* 34560 80033960 AD980004 */ sw $t8, 0x4($t4)
|
||||
/* 34564 80033964 8DA10008 */ lw $at, 0x8($t5)
|
||||
/* 34568 80033968 35EF0180 */ ori $t7, $t7, (0x80000180 & 0xFFFF)
|
||||
/* 3456C 8003396C 3C048000 */ lui $a0, (0x80000000 >> 16)
|
||||
/* 34570 80033970 AD810008 */ sw $at, 0x8($t4)
|
||||
/* 34574 80033974 8DB8000C */ lw $t8, 0xC($t5)
|
||||
/* 34578 80033978 24050190 */ addiu $a1, $zero, 0x190
|
||||
/* 3457C 8003397C AD98000C */ sw $t8, 0xC($t4)
|
||||
/* 34580 80033980 8D210000 */ lw $at, 0x0($t1)
|
||||
/* 34584 80033984 AD410000 */ sw $at, 0x0($t2)
|
||||
/* 34588 80033988 8D2B0004 */ lw $t3, 0x4($t1)
|
||||
/* 3458C 8003398C AD4B0004 */ sw $t3, 0x4($t2)
|
||||
/* 34590 80033990 8D210008 */ lw $at, 0x8($t1)
|
||||
/* 34594 80033994 AD410008 */ sw $at, 0x8($t2)
|
||||
/* 34598 80033998 8D2B000C */ lw $t3, 0xC($t1)
|
||||
/* 3459C 8003399C AD4B000C */ sw $t3, 0xC($t2)
|
||||
/* 345A0 800339A0 8DC10000 */ lw $at, 0x0($t6)
|
||||
/* 345A4 800339A4 ADE10000 */ sw $at, 0x0($t7)
|
||||
/* 345A8 800339A8 8DD80004 */ lw $t8, 0x4($t6)
|
||||
/* 345AC 800339AC ADF80004 */ sw $t8, 0x4($t7)
|
||||
/* 345B0 800339B0 8DC10008 */ lw $at, 0x8($t6)
|
||||
/* 345B4 800339B4 ADE10008 */ sw $at, 0x8($t7)
|
||||
/* 345B8 800339B8 8DD8000C */ lw $t8, 0xC($t6)
|
||||
/* 345BC 800339BC 0C00D394 */ jal osWritebackDCache
|
||||
/* 345C0 800339C0 ADF8000C */ sw $t8, 0xC($t7)
|
||||
/* 345C4 800339C4 3C048000 */ lui $a0, (0x80000000 >> 16)
|
||||
/* 345C8 800339C8 0C00D8F8 */ jal osInvalICache
|
||||
/* 345CC 800339CC 24050190 */ addiu $a1, $zero, 0x190
|
||||
/* 345D0 800339D0 0C00F4DC */ jal osMapTLBRdb
|
||||
/* 345D4 800339D4 00000000 */ nop
|
||||
/* 345D8 800339D8 24040004 */ addiu $a0, $zero, 0x4
|
||||
/* 345DC 800339DC 0C00F4F4 */ jal osPiRawReadIo
|
||||
/* 345E0 800339E0 27A50030 */ addiu $a1, $sp, 0x30
|
||||
/* 345E4 800339E4 8FA80030 */ lw $t0, 0x30($sp)
|
||||
/* 345E8 800339E8 2401FFF0 */ addiu $at, $zero, -0x10
|
||||
/* 345EC 800339EC 0101C824 */ and $t9, $t0, $at
|
||||
/* 345F0 800339F0 13200006 */ beqz $t9, .L80033A0C
|
||||
/* 345F4 800339F4 AFB90030 */ sw $t9, 0x30($sp)
|
||||
/* 345F8 800339F8 3C018007 */ lui $at, %hi(D_8006F400)
|
||||
/* 345FC 800339FC 03205825 */ or $t3, $t9, $zero
|
||||
/* 34600 80033A00 240A0000 */ addiu $t2, $zero, 0x0
|
||||
/* 34604 80033A04 AC2AF400 */ sw $t2, %lo(D_8006F400)($at)
|
||||
/* 34608 80033A08 AC2BF404 */ sw $t3, %lo(D_8006F404)($at)
|
||||
.L80033A0C:
|
||||
/* 3460C 80033A0C 3C048007 */ lui $a0, %hi(D_8006F400)
|
||||
/* 34610 80033A10 3C058007 */ lui $a1, %hi(D_8006F404)
|
||||
/* 34614 80033A14 8CA5F404 */ lw $a1, %lo(D_8006F404)($a1)
|
||||
/* 34618 80033A18 8C84F400 */ lw $a0, %lo(D_8006F400)($a0)
|
||||
/* 3461C 80033A1C 24060000 */ addiu $a2, $zero, 0x0
|
||||
/* 34620 80033A20 0C00E70E */ jal __ll_mul
|
||||
/* 34624 80033A24 24070003 */ addiu $a3, $zero, 0x3
|
||||
/* 34628 80033A28 AFA20020 */ sw $v0, 0x20($sp)
|
||||
/* 3462C 80033A2C AFA30024 */ sw $v1, 0x24($sp)
|
||||
/* 34630 80033A30 8FA50024 */ lw $a1, 0x24($sp)
|
||||
/* 34634 80033A34 8FA40020 */ lw $a0, 0x20($sp)
|
||||
/* 34638 80033A38 24060000 */ addiu $a2, $zero, 0x0
|
||||
/* 3463C 80033A3C 0C00E6CE */ jal __ull_div
|
||||
/* 34640 80033A40 24070004 */ addiu $a3, $zero, 0x4
|
||||
/* 34644 80033A44 3C098000 */ lui $t1, %hi(D_8000030C)
|
||||
/* 34648 80033A48 8D29030C */ lw $t1, %lo(D_8000030C)($t1)
|
||||
/* 3464C 80033A4C 3C018007 */ lui $at, %hi(D_8006F400)
|
||||
/* 34650 80033A50 AC22F400 */ sw $v0, %lo(D_8006F400)($at)
|
||||
/* 34654 80033A54 15200005 */ bnez $t1, .L80033A6C
|
||||
/* 34658 80033A58 AC23F404 */ sw $v1, %lo(D_8006F404)($at)
|
||||
/* 3465C 80033A5C 3C048000 */ lui $a0, %hi(D_8000031C)
|
||||
/* 34660 80033A60 2484031C */ addiu $a0, $a0, %lo(D_8000031C)
|
||||
/* 34664 80033A64 0C00F50C */ jal bzero
|
||||
/* 34668 80033A68 24050040 */ addiu $a1, $zero, 0x40
|
||||
.L80033A6C:
|
||||
/* 3466C 80033A6C 3C0D8000 */ lui $t5, %hi(osTvType)
|
||||
/* 34670 80033A70 8DAD0300 */ lw $t5, %lo(osTvType)($t5)
|
||||
/* 34674 80033A74 15A00006 */ bnez $t5, .L80033A90
|
||||
/* 34678 80033A78 00000000 */ nop
|
||||
/* 3467C 80033A7C 3C0C02F5 */ lui $t4, (0x2F5B2D2 >> 16)
|
||||
/* 34680 80033A80 358CB2D2 */ ori $t4, $t4, (0x2F5B2D2 & 0xFFFF)
|
||||
/* 34684 80033A84 3C018007 */ lui $at, %hi(osViClock)
|
||||
/* 34688 80033A88 1000000F */ b .L80033AC8
|
||||
/* 3468C 80033A8C AC2CF408 */ sw $t4, %lo(osViClock)($at)
|
||||
.L80033A90:
|
||||
/* 34690 80033A90 3C0F8000 */ lui $t7, %hi(osTvType)
|
||||
/* 34694 80033A94 8DEF0300 */ lw $t7, %lo(osTvType)($t7)
|
||||
/* 34698 80033A98 24010002 */ addiu $at, $zero, 0x2
|
||||
/* 3469C 80033A9C 15E10006 */ bne $t7, $at, .L80033AB8
|
||||
/* 346A0 80033AA0 00000000 */ nop
|
||||
/* 346A4 80033AA4 3C0E02E6 */ lui $t6, (0x2E6025C >> 16)
|
||||
/* 346A8 80033AA8 35CE025C */ ori $t6, $t6, (0x2E6025C & 0xFFFF)
|
||||
/* 346AC 80033AAC 3C018007 */ lui $at, %hi(osViClock)
|
||||
/* 346B0 80033AB0 10000005 */ b .L80033AC8
|
||||
/* 346B4 80033AB4 AC2EF408 */ sw $t6, %lo(osViClock)($at)
|
||||
.L80033AB8:
|
||||
/* 346B8 80033AB8 3C1802E6 */ lui $t8, (0x2E6D354 >> 16)
|
||||
/* 346BC 80033ABC 3718D354 */ ori $t8, $t8, (0x2E6D354 & 0xFFFF)
|
||||
/* 346C0 80033AC0 3C018007 */ lui $at, %hi(osViClock)
|
||||
/* 346C4 80033AC4 AC38F408 */ sw $t8, %lo(osViClock)($at)
|
||||
.L80033AC8:
|
||||
/* 346C8 80033AC8 8FBF001C */ lw $ra, 0x1C($sp)
|
||||
/* 346CC 80033ACC 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 346D0 80033AD0 27BD0038 */ addiu $sp, $sp, 0x38
|
||||
/* 346D4 80033AD4 03E00008 */ jr $ra
|
||||
/* 346D8 80033AD8 00000000 */ nop
|
||||
/* 346DC 80033ADC 00000000 */ nop
|
42
asm/viblack.s
Normal file
42
asm/viblack.s
Normal file
@ -0,0 +1,42 @@
|
||||
.include "macro.inc"
|
||||
|
||||
/* assembler directives */
|
||||
.set noat /* allow manual use of $at */
|
||||
.set noreorder /* don't insert nops after branches */
|
||||
.set gp=64 /* allow use of 64-bit general purpose registers */
|
||||
|
||||
.section .text, "ax"
|
||||
|
||||
/* Generated by spimdisasm 1.12.1 */
|
||||
|
||||
glabel osViBlack
|
||||
/* 352E0 800346E0 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 352E4 800346E4 AFBF001C */ sw $ra, 0x1C($sp)
|
||||
/* 352E8 800346E8 AFA40028 */ sw $a0, 0x28($sp)
|
||||
/* 352EC 800346EC 0C00F534 */ jal __osDisableInt
|
||||
/* 352F0 800346F0 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 352F4 800346F4 93AE002B */ lbu $t6, 0x2B($sp)
|
||||
/* 352F8 800346F8 00408025 */ or $s0, $v0, $zero
|
||||
/* 352FC 800346FC 11C00007 */ beqz $t6, .L8003471C
|
||||
/* 35300 80034700 00000000 */ nop
|
||||
/* 35304 80034704 3C0F8007 */ lui $t7, %hi(D_80070A84)
|
||||
/* 35308 80034708 8DEF0A84 */ lw $t7, %lo(D_80070A84)($t7)
|
||||
/* 3530C 8003470C 95F80000 */ lhu $t8, 0x0($t7)
|
||||
/* 35310 80034710 37190020 */ ori $t9, $t8, 0x20
|
||||
/* 35314 80034714 10000007 */ b .L80034734
|
||||
/* 35318 80034718 A5F90000 */ sh $t9, 0x0($t7)
|
||||
.L8003471C:
|
||||
/* 3531C 8003471C 3C088007 */ lui $t0, %hi(D_80070A84)
|
||||
/* 35320 80034720 8D080A84 */ lw $t0, %lo(D_80070A84)($t0)
|
||||
/* 35324 80034724 2401FFDF */ addiu $at, $zero, -0x21
|
||||
/* 35328 80034728 95090000 */ lhu $t1, 0x0($t0)
|
||||
/* 3532C 8003472C 01215024 */ and $t2, $t1, $at
|
||||
/* 35330 80034730 A50A0000 */ sh $t2, 0x0($t0)
|
||||
.L80034734:
|
||||
/* 35334 80034734 0C00F53C */ jal __osRestoreInt
|
||||
/* 35338 80034738 02002025 */ or $a0, $s0, $zero
|
||||
/* 3533C 8003473C 8FBF001C */ lw $ra, 0x1C($sp)
|
||||
/* 35340 80034740 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 35344 80034744 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
/* 35348 80034748 03E00008 */ jr $ra
|
||||
/* 3534C 8003474C 00000000 */ nop
|
90
include/monsters.h
Normal file
90
include/monsters.h
Normal file
@ -0,0 +1,90 @@
|
||||
#ifndef _MONSTERS_H_
|
||||
#define _MONSTERS_H_
|
||||
|
||||
typedef struct {
|
||||
u8 unk0[0x18];
|
||||
}AIScript;
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u16 monsterType; //Ground, Flying, or Mammon (doesn't render a shadow)
|
||||
/* 0x02 */ u16 monsterID;
|
||||
/* 0x04 */ u16 currHP;
|
||||
/* 0x06 */ u16 maxHP;
|
||||
/* 0x08 */ f32 unk8; //possibly monster MP which would be unused since monsters don't USE MP
|
||||
/* 0x0C */ u16 agi;
|
||||
/* 0x0E */ u16 def;
|
||||
/* 0x10 */ s32 expValue;
|
||||
/* 0x14 */ s32 unk14;
|
||||
/* 0x18 */ f32 hitboxHeight;
|
||||
/* 0x1C */ f32 hitboxWidth;
|
||||
/* 0x20 */ f32 modelScale;
|
||||
/* 0x24 */ u16 unk24; //type may be wrong
|
||||
/* 0x26 */ u16 element; //type may be wrong
|
||||
/* 0x28 */ u16 unk28;
|
||||
/* 0x2A */ u16 atk; //spell id or actual attack power?
|
||||
/* 0x2C */ u16 aiScriptNumber;
|
||||
/* 0x2E */ u16 unk2E;
|
||||
/* 0x30 */ AIScript* AIScript;
|
||||
/* 0x34 */ u8 itemDrop;
|
||||
/* 0x35 */ u8 unk35;
|
||||
/* 0x36 */ u16 unk36;
|
||||
} MonsterBaseData; // size 0x38
|
||||
|
||||
typedef struct {
|
||||
u8 pad[0x86];
|
||||
u16 unk86;
|
||||
char unk88[0xC];
|
||||
f32 unk94;
|
||||
} UnknownMonsterData2;
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ Vec3f pos;
|
||||
/* 0x0C */ f32 xrot;
|
||||
/* 0x10 */ f32 yrot;
|
||||
/* 0x14 */ f32 zrot;
|
||||
/* 0x18 */ f32 unk18;
|
||||
/* 0x1C */ f32 unk1C;
|
||||
/* 0x20 */ f32 unk20;
|
||||
/* 0x24 */ f32 scale;
|
||||
/* 0x28 */ f32 collisionScale;
|
||||
/* 0x2C */ f32 shadowXRot;
|
||||
/* 0x30 */ f32 shadowYRot;
|
||||
/* 0x34 */ f32 shadowZRot;
|
||||
/* 0x38 */ f32 unk38;
|
||||
/* 0x3C */ f32 unk3C;
|
||||
/* 0x40 */ f32 unk40;
|
||||
/* 0x44 */ f32 unk44;
|
||||
/* 0x48 */ f32 unk48;
|
||||
/* 0x4C */ f32 unk4C;
|
||||
/* 0x50 */ s16 modelID;
|
||||
/* 0x52 */ s16 animID;
|
||||
/* 0x54 */ u16 animFrame;
|
||||
/* 0x56 */ u16 totalFrameCnt;
|
||||
/* 0x58 */ u16 animSpeed;
|
||||
/* 0x5A */ u16 nextAnimID; //may be incorrect
|
||||
/* 0x5C */ s16 unk5C;
|
||||
/* 0x5E */ s16 unk5E;
|
||||
/* 0x60 */ u16 unk60;
|
||||
/* 0x62 */ u16 unk62;
|
||||
/* 0x64 */ MonsterBaseData *unk64;
|
||||
/* 0x68 */ UnknownMonsterData2 *unk68;
|
||||
/* 0x6C */ UnknownMonsterData2 unk6C;
|
||||
} MonsterBattleData; // size 0x104
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u16 actionID;
|
||||
/* 0x2 */ u16 actionTimer;
|
||||
/* 0x4 */ u16 unk4;
|
||||
/* 0x6 */ u16 unk6;
|
||||
/* 0x8 */ u16 unk8;
|
||||
/* 0xA */ u16 currHP;
|
||||
/* 0xC */ u16 maxHP;
|
||||
/* 0XE */ u16 unkE;
|
||||
/* 0x10 */ f32 movementBoundSize;
|
||||
/* 0x14 */ u8 pad[0x8];
|
||||
/* 0x1C */ AIScript* AIScript;
|
||||
/* 0x20 */ MonsterBaseData* monBaseData;
|
||||
/* 0x24 */ MonsterBattleData battleData;
|
||||
} EnemyAction; // size 0x128
|
||||
|
||||
#endif
|
111
include/nnsched.h
Normal file
111
include/nnsched.h
Normal file
@ -0,0 +1,111 @@
|
||||
/*============================================================================
|
||||
NINTENDO64 TECHNICAL SUPPORT CENTER
|
||||
|
||||
NINTENDO64 SAMPLE PROGRAM 1
|
||||
Copyright (C) 1997, NINTENDO Co., Ltd.
|
||||
============================================================================*/
|
||||
#ifndef _NN_SCHED_
|
||||
#define _NN_SCHED_
|
||||
#include <ultra64.h>
|
||||
#define NN_SC_STACKSIZE 0x2000 /* thread stack size */
|
||||
#define NN_SC_SWAPBUFFER 0x0040 /* frame buffer swap */
|
||||
#define NN_SC_RETRACE_MSG 1 /* retrace message */
|
||||
#define NN_SC_DONE_MSG 2 /* task end message */
|
||||
#define NN_SC_PRE_NMI_MSG 3 /* NMI message */
|
||||
#define NN_SC_GTASKEND_MSG 4 /* task end message (in the case of a
|
||||
graphic task, task end only */
|
||||
#define NN_SC_MAX_MESGS 8 /* message buffer size */
|
||||
/* define thread priority */
|
||||
#define NN_SC_PRI 120 /* scheduler */
|
||||
#define NN_SC_AUDIO_PRI 110 /* audio */
|
||||
#define NN_SC_GRAPHICS_PRI 100 /* graphics */
|
||||
/* define event message */
|
||||
#define VIDEO_MSG 666 /* retrace message */
|
||||
#define RSP_DONE_MSG 667 /* RSP task done */
|
||||
#define RDP_DONE_MSG 668 /* RDP draw done */
|
||||
#define PRE_NMI_MSG 669 /* NMI message */
|
||||
/*
|
||||
For performance check.
|
||||
Please define NN_SC_PERF in order to check PCP performance.
|
||||
*/
|
||||
#define NN_SC_PERF
|
||||
#define NN_SC_PERF_NUM 4
|
||||
#define NN_SC_GTASK_NUM 8 /* graphic task maximum number */
|
||||
#define NN_SC_AUTASK_NUM 4 /* audio task maximum number */
|
||||
/*===========================================================================*/
|
||||
typedef short NNScMsg; /* scheduler message type */
|
||||
typedef struct SCClient_s { /* client list structure */
|
||||
struct SCClient_s *next; /* pointer to next client */
|
||||
OSMesgQueue *msgQ; /* message sent to client */
|
||||
} NNScClient;
|
||||
typedef struct SCTask_s { /* task structure */
|
||||
struct SCTask_s *next; /* Note: usually stationed at start of structure */
|
||||
u32 state;
|
||||
u32 flags;
|
||||
void *framebuffer; /* for graphic task use */
|
||||
OSTask list;
|
||||
OSMesgQueue *msgQ;
|
||||
OSMesg msg;
|
||||
} NNScTask;
|
||||
typedef struct { /* define scheduler structure */
|
||||
/* message */
|
||||
NNScMsg retraceMsg;
|
||||
NNScMsg prenmiMsg;
|
||||
/* define task request */
|
||||
OSMesgQueue audioRequestMQ;
|
||||
OSMesg audioRequestBuf[NN_SC_MAX_MESGS];
|
||||
OSMesgQueue graphicsRequestMQ;
|
||||
OSMesg graphicsRequestBuf[NN_SC_MAX_MESGS];
|
||||
/* define message queue */
|
||||
OSMesgQueue retraceMQ;
|
||||
OSMesg retraceMsgBuf[NN_SC_MAX_MESGS];
|
||||
OSMesgQueue rspMQ;
|
||||
OSMesg rspMsgBuf[NN_SC_MAX_MESGS];
|
||||
OSMesgQueue rdpMQ;
|
||||
OSMesg rdpMsgBuf[NN_SC_MAX_MESGS];
|
||||
/* used for waiting for next retrace signal */
|
||||
OSMesgQueue waitMQ;
|
||||
OSMesg waitMsgBuf[NN_SC_MAX_MESGS];
|
||||
/* define thread */
|
||||
OSThread schedulerThread; /* main thread */
|
||||
OSThread audioThread; /* audio */
|
||||
OSThread graphicsThread; /* graphics */
|
||||
/* client list */
|
||||
NNScClient *clientList;
|
||||
/* executing graphic task */
|
||||
NNScTask *curGraphicsTask;
|
||||
NNScTask *curAudioTask;
|
||||
NNScTask *graphicsTaskSuspended;
|
||||
|
||||
/* misc. */
|
||||
u32 firstTime; /* flag for control of screen blackout */
|
||||
} NNSched;
|
||||
/* performance check structure */
|
||||
typedef struct {
|
||||
u32 gtask_cnt; /* graphic task counter */
|
||||
u32 autask_cnt; /* audio task counter */
|
||||
u64 retrace_time; /* graphic creation time */
|
||||
u64 gtask_stime[NN_SC_GTASK_NUM]; /* task start time */
|
||||
u64 rdp_etime[NN_SC_GTASK_NUM]; /* RDP end time */
|
||||
u64 rsp_etime[NN_SC_GTASK_NUM]; /* RSP end time */
|
||||
u64 autask_stime[NN_SC_AUTASK_NUM]; /* audio task start time */
|
||||
u64 autask_etime[NN_SC_AUTASK_NUM]; /* audio task end time */
|
||||
u32 endflag;
|
||||
} NNScPerf;
|
||||
|
||||
#ifdef NN_SC_PERF
|
||||
extern NNScPerf* nnsc_perf_ptr;
|
||||
#endif /* NN_SC_PERF */
|
||||
/* function prototype declarations */
|
||||
void nnScCreateScheduler(NNSched * sc, u8 numFields);
|
||||
extern void nnScAddClient(NNSched *sc, NNScClient *, OSMesgQueue *mq);
|
||||
extern void nnScRemoveClient(NNSched *sc, NNScClient
|
||||
*client);
|
||||
extern void nnScEventHandler(NNSched *sc);
|
||||
extern void nnScEventBroadcast(NNSched *sc, NNScMsg *msg);
|
||||
extern void nnScExecuteAudio(NNSched *sc);
|
||||
extern void nnScExecuteGraphics(NNSched *sc);
|
||||
extern void nnScWaitTaskReady(NNSched *sc, NNScTask *task);
|
||||
extern OSMesgQueue * nnScGetGfxMQ(NNSched *sc);
|
||||
extern OSMesgQueue * nnScGetAudioMQ(NNSched *sc);
|
||||
#endif
|
50
include/npc.h
Normal file
50
include/npc.h
Normal file
@ -0,0 +1,50 @@
|
||||
#ifndef _NPC_H_
|
||||
#define _NPC_H_
|
||||
|
||||
typedef struct {
|
||||
char unk0[0x2];
|
||||
s16 unk2;
|
||||
char unk4[0xA];
|
||||
s16 unkE;
|
||||
|
||||
}NPCData3;
|
||||
|
||||
typedef struct {
|
||||
char unk0[0x4];
|
||||
u8 unk4;
|
||||
char unk5[0xB];
|
||||
NPCData3* unk10;
|
||||
char unk14[4];
|
||||
u16 unk18;
|
||||
}NPCData2;
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/u16 action;
|
||||
/*0x02*/u16 actionTimer;
|
||||
/*0x04*/f32 xWanderOrigin; //xpos of a point a wandering NPC can't stray too far from.
|
||||
/*0x08*/f32 zWanderOrigin; //zpos of a point a wandering NPC can't stray too far from.
|
||||
/*0x0C*/f32 yRotReturn; //yRotation to return to when done speaking.
|
||||
/*0x10*/f32 unk10; //changes based on where Brian speaks to the NPC from. Current purpose unknown.
|
||||
/*0x14*/PosRot PosRot;
|
||||
/*0x2C*/f32 unk2C;
|
||||
/*0x30*/f32 unk30;
|
||||
/*0x34*/f32 unk34;
|
||||
/*0x38*/f32 scale;
|
||||
/*0x3C*/f32 collisionSize;
|
||||
/*0x40*/Vec3f shadowRot;
|
||||
/*0x4C*/char unk4C[0x14];
|
||||
/*0x60*/u16 unk60;
|
||||
/*0x62*/char unk62[4];
|
||||
/*0x66*/s16 animID;
|
||||
u16 animFrames;
|
||||
u16 totalFrames;
|
||||
u16 animSpeed;
|
||||
s16 unkAnimID; //may be nextAnimID, but doesn't seem to be. Research needed.
|
||||
s16 unk70;
|
||||
char unk72[0x2];
|
||||
u16 unk74;
|
||||
char unk76[0xA];
|
||||
NPCData2* unk80;
|
||||
}NPCData;
|
||||
|
||||
#endif
|
110
include/player.h
Normal file
110
include/player.h
Normal file
@ -0,0 +1,110 @@
|
||||
#ifndef _PLAYER_H_
|
||||
#define _PLAYER_H_
|
||||
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ u16 unk0;
|
||||
/*0x02*/ s16 unk2;
|
||||
/*0x04*/ u16 currHP;
|
||||
/*0x06*/ u16 maxHP;
|
||||
/*0x08*/ u16 currMP;
|
||||
/*0x0A*/ u16 maxMP;
|
||||
/*0x0C*/ u16 agi;
|
||||
/*0x0E*/ u16 def;
|
||||
/*0x10*/ s32 exp;
|
||||
/*0x14*/ s32 unk14;
|
||||
/*0x18*/ f32 colissionSize;
|
||||
/*0x1C*/ f32 unk1C;
|
||||
/*0x20*/ f32 unk20; //also affects colission size. May be zColissionSize and the above are X and Y.
|
||||
/*0x24*/ u8 fireSpirits;
|
||||
/*0x25*/ u8 earthSpirits;
|
||||
/*0x26*/ u8 waterSpirits;
|
||||
/*0x27*/ u8 windSpirits;
|
||||
/*0x28*/ u16 HPXP;
|
||||
/*0x2A*/ u16 MPXP;
|
||||
/*0x2C*/ u16 agiXP;
|
||||
/*0x2E*/ u16 defXP;
|
||||
/*0x30*/ u8 HPLevel;
|
||||
/*0x31*/ u8 MPLevel;
|
||||
/*0x32*/ u8 agiLevel;
|
||||
/*0x33*/ u8 defLevel;
|
||||
/*0x34*/ u8 spiritLevel;
|
||||
/*0x35*/ u8 unk35;
|
||||
/*0x36*/ u8 unk36;
|
||||
/*0x37*/ u8 unk37;
|
||||
/*0x38*/ u16 unk38;
|
||||
/*0x3A*/ s16 unk3A;
|
||||
/*0x3C*/ s16 unk3C; //animation related
|
||||
/*0x3E*/ s16 unk3E; //side of door entered?
|
||||
/*0x40*/ u16 unk40;
|
||||
/*0x42*/ s16 unk42;
|
||||
/*0x44*/ char unk44[0x4];
|
||||
/*0x48*/ void* brianData; //points to the beginning of BrianData1 struct again.
|
||||
}BrianData1;
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ f32 x;
|
||||
/*0x04*/ f32 y;
|
||||
/*0x08*/ f32 z;
|
||||
/*0x0C*/ f32 xrot;
|
||||
/*0x10*/ f32 yrot;
|
||||
/*0x14*/ f32 zrot;
|
||||
/*0x18*/ f32 xspeed;
|
||||
/*0x1C*/ f32 yspeed;
|
||||
/*0x20*/ f32 zspeed;
|
||||
/*0x24*/ f32 scale;
|
||||
/*0x28*/ f32 shadowScale;
|
||||
/*0x2C*/ f32 shadowXRot;
|
||||
/*0x30*/ f32 shadowYRot;
|
||||
/*0x34*/ f32 shadowZRot;
|
||||
|
||||
/*these are only written to when going through a door
|
||||
freezing the values zips you to strange parts of the map.
|
||||
may be the coordinates to load you into when going through a door.*/
|
||||
/*0x38*/ f32 unkDoor38;
|
||||
/*0x3C*/ f32 unkDoor3C;
|
||||
/*0x40*/ f32 unkDoor40;
|
||||
|
||||
//only written to when using a door. Unknown what they actually do.
|
||||
//NOTE: Freezing them makes brian unsuccessfully exit the door on the other side.
|
||||
/*0x44*/ f32 unkDoor44;
|
||||
/*0x48*/ f32 unkDoor48;
|
||||
/*0x4C*/ f32 unkDoor4C;
|
||||
/*0x50*/ s16 unk50;
|
||||
/*0x52*/ s16 animID;
|
||||
/*0x54*/ s16 animFrame;
|
||||
/*0x56*/ u16 totalAnimFrames;
|
||||
/*0x58*/ u16 animeFramerate;
|
||||
/*0x5A*/ s16 unk5A;
|
||||
/*0x5C*/ s16 unk5C;
|
||||
/*0x5E*/ s16 unk5E; //possibly padding
|
||||
/*0x60*/ u16 unk60;
|
||||
/*0x62*/ u16 unk62;
|
||||
/*0x64*/ BrianData1* brianData1;
|
||||
|
||||
}BrianData2;
|
||||
|
||||
typedef struct player_Action_s
|
||||
{
|
||||
s16 unk0;
|
||||
s16 unk2;
|
||||
s16 dustTimer;
|
||||
s16 doorSide;
|
||||
u16 unk8;
|
||||
s16 unkA;
|
||||
s32 unkC;
|
||||
void* unk10;
|
||||
f32 xpos;
|
||||
f32 ypos;
|
||||
f32 zpos;
|
||||
char unk20[0x18];
|
||||
f32 unk38; //
|
||||
char unk3C[0x3C];
|
||||
BrianData1* unk78;
|
||||
}sPlayerAction;
|
||||
|
||||
|
||||
extern BrianData2 D_8007BACC;
|
||||
|
||||
|
||||
#endif
|
64
progress.py
Normal file
64
progress.py
Normal file
@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
from dataclasses import dataclass
|
||||
import shutil
|
||||
import glob
|
||||
import os
|
||||
|
||||
@dataclass
|
||||
class Function():
|
||||
name: str
|
||||
size: int
|
||||
|
||||
def __lt__(self, other):
|
||||
return self.size < other.size
|
||||
|
||||
def get_size(path):
|
||||
f = open(path, 'r')
|
||||
lines = f.readlines()
|
||||
f.close()
|
||||
name = os.path.basename(file).split('.')[0]
|
||||
inst = 0
|
||||
for line in lines:
|
||||
if ('glabel ' + name) in line:
|
||||
inst = 0
|
||||
if line.startswith('/*'):
|
||||
inst += 1
|
||||
return inst
|
||||
|
||||
dirs = glob.glob("nonmatchings/src/code0/*")
|
||||
dirs += glob.glob("nonmatchings/src/code1/*")
|
||||
dirs += glob.glob("nonmatchings/gen/code0/*")
|
||||
|
||||
shutil.rmtree('stats', ignore_errors=True)
|
||||
os.mkdir('stats')
|
||||
os.mkdir('stats/code0')
|
||||
os.mkdir('stats/code1')
|
||||
|
||||
all_func = []
|
||||
for dir in dirs:
|
||||
func = []
|
||||
asm_files = [y for x in os.walk(dir) for y in glob.glob(os.path.join(x[0], '*.s'))]
|
||||
for file in asm_files:
|
||||
name = os.path.basename(file).split('.')[0]
|
||||
if name.startswith('D_'):
|
||||
continue
|
||||
func.append(Function(name, get_size(file)))
|
||||
|
||||
all_func += func
|
||||
func.sort()
|
||||
|
||||
parent1 = os.path.split(dir)
|
||||
parent2 = os.path.split(parent1[0])
|
||||
path = os.path.join('stats', parent2[1], parent1[1]) + '.csv'
|
||||
|
||||
f = open(path, 'w')
|
||||
for fu in func:
|
||||
f.write(fu.name+';'+str(fu.size)+'\n')
|
||||
f.close()
|
||||
|
||||
all_func.sort()
|
||||
f = open(os.path.join('stats', 'all.csv'), 'w')
|
||||
for fu in all_func:
|
||||
f.write(fu.name+';'+str(fu.size)+'\n')
|
||||
f.close()
|
@ -2,7 +2,7 @@
|
||||
|
||||
extern void* gTextPalettes;
|
||||
extern u8 D_D3E240[];
|
||||
extern u8 gTexTextPhys[];
|
||||
extern u8 gTexAlphabetPhys[];
|
||||
|
||||
//#pragma GLOBAL_ASM("asm/nonmatchings/31A10/func_80030E10.s")
|
||||
void func_80030E10(u8 *arg0, u8 *arg1)
|
||||
@ -18,7 +18,7 @@ void func_80030E10(u8 *arg0, u8 *arg1)
|
||||
//#pragma GLOBAL_ASM("asm/nonmatchings/31A10/func_80030E58.s")
|
||||
void func_80030E58(void) {
|
||||
func_80024260(D_D3E240, &gTextPalettes, 0x80); //text palettes
|
||||
func_80024260(gTexTextPhys, &D_803232A0, 0xE790); //text gfx
|
||||
func_80024260(gTexAlphabetPhys, &D_803232A0, 0xE790); //text gfx
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/31A10/func_80030EA0.s")
|
||||
|
28
src/createthread.c
Normal file
28
src/createthread.c
Normal file
@ -0,0 +1,28 @@
|
||||
#include <os_internal.h>
|
||||
#include <R4300.h>
|
||||
void __osCleanupThread(void);
|
||||
extern OSThread *__osActiveQueue;
|
||||
void osCreateThread(OSThread *t, OSId id, void (*entry)(void *), void *arg, void *sp, OSPri p)
|
||||
{
|
||||
register u32 saveMask;
|
||||
OSIntMask mask;
|
||||
t->id = id;
|
||||
t->priority = p;
|
||||
t->next = NULL;
|
||||
t->queue = NULL;
|
||||
t->context.pc = (u32)entry;
|
||||
t->context.a0 = (u64)arg;
|
||||
t->context.sp = (u64)sp - 16;
|
||||
t->context.ra = (u64)__osCleanupThread;
|
||||
mask = OS_IM_ALL;
|
||||
t->context.sr = SR_IMASK | SR_EXL | SR_IE;
|
||||
t->context.rcp = (mask & RCP_IMASK) >> RCP_IMASKSHIFT;
|
||||
t->context.fpcsr = (u32)(FPCSR_FS | FPCSR_EV);
|
||||
t->fp = 0;
|
||||
t->state = OS_STATE_STOPPED;
|
||||
t->flags = 0;
|
||||
saveMask = __osDisableInt();
|
||||
t->tlnext = __osActiveQueue;
|
||||
__osActiveQueue = t;
|
||||
__osRestoreInt(saveMask);
|
||||
}
|
19
src/csplayer.c
Normal file
19
src/csplayer.c
Normal file
@ -0,0 +1,19 @@
|
||||
#include "common.h"
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/csplayer/__CSPPostNextSeqEvent.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/csplayer/func_80037140.s")
|
||||
|
||||
void func_80037174(void) {
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/csplayer/func_8003717C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/csplayer/func_8003734C.s")
|
||||
|
||||
void func_80037B74(void) {
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/csplayer/func_80037B7C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/csplayer/alCSPNew.s")
|
211
src/nnsched.c
Normal file
211
src/nnsched.c
Normal file
@ -0,0 +1,211 @@
|
||||
/*Adapted from nnsched.h from NINTENDO64 SAMPLE PROGRAM 1
|
||||
from the Nintendo 64 Technical Support Center for
|
||||
use with Quest 64 */
|
||||
|
||||
#include "common.h"
|
||||
#include "nnsched.h"
|
||||
|
||||
extern u16 D_8007B2D0; //named framecont in nnsched.c
|
||||
extern u64 D_800792D0;
|
||||
extern u64 D_8007A2D0;
|
||||
|
||||
void nnScCreateScheduler(NNSched * sc, u8 numFields) {
|
||||
|
||||
sc->curGraphicsTask = 0;
|
||||
sc->curAudioTask = 0;
|
||||
sc->graphicsTaskSuspended = 0;
|
||||
sc->clientList = 0;
|
||||
sc->firstTime = 1;
|
||||
sc->retraceMsg = NN_SC_RETRACE_MSG;
|
||||
sc->prenmiMsg = NN_SC_PRE_NMI_MSG;
|
||||
|
||||
osCreateMesgQueue(&sc->retraceMQ, sc->retraceMsgBuf, NN_SC_MAX_MESGS);
|
||||
osCreateMesgQueue(&sc->rspMQ, sc->rspMsgBuf, NN_SC_MAX_MESGS);
|
||||
osCreateMesgQueue(&sc->rdpMQ, sc->rdpMsgBuf, NN_SC_MAX_MESGS);
|
||||
osCreateMesgQueue(&sc->graphicsRequestMQ, sc->graphicsRequestBuf, NN_SC_MAX_MESGS);
|
||||
osCreateMesgQueue(&sc->audioRequestMQ, sc->audioRequestBuf, NN_SC_MAX_MESGS);
|
||||
osCreateMesgQueue(&sc->waitMQ, sc->waitMsgBuf, NN_SC_MAX_MESGS);
|
||||
|
||||
osViSetEvent(&sc->retraceMQ, (OSMesg)VIDEO_MSG, numFields);
|
||||
osSetEventMesg(OS_EVENT_SP, &sc->rspMQ, (OSMesg)RSP_DONE_MSG);
|
||||
osSetEventMesg(OS_EVENT_DP, &sc->rdpMQ, (OSMesg)RDP_DONE_MSG);
|
||||
osSetEventMesg(OS_EVENT_PRENMI, &sc->retraceMQ, (OSMesg)PRE_NMI_MSG);
|
||||
}
|
||||
|
||||
void nnScStartScheduler(NNSched* sc) {
|
||||
|
||||
osCreateThread(&sc->schedulerThread, 0x13, (void (*)(void*)) nnScEventHandler, sc, &D_800792D0, NN_SC_PRI);
|
||||
osStartThread(&sc->schedulerThread);
|
||||
osCreateThread(&sc->audioThread, 0x12, (void (*)(void*)) nnScExecuteAudio, sc, &D_8007A2D0, NN_SC_AUDIO_PRI);
|
||||
osStartThread(&sc->audioThread);
|
||||
osCreateThread(&sc->graphicsThread, 0x11, (void (*)(void*)) nnScExecuteGraphics, sc, &D_8007B2D0, NN_SC_GRAPHICS_PRI);
|
||||
osStartThread(&sc->graphicsThread);
|
||||
}
|
||||
|
||||
OSMesgQueue* nnScGetAudioMQ(NNSched* sc) {
|
||||
return &sc->audioRequestMQ;
|
||||
}
|
||||
|
||||
OSMesgQueue* nnScGetGfxMQ(NNSched* sc) {
|
||||
return &sc->graphicsRequestMQ;
|
||||
}
|
||||
|
||||
void nnScEventHandler(NNSched* sc) {
|
||||
|
||||
OSMesg msg = (OSMesg)0;
|
||||
|
||||
while(1){
|
||||
osRecvMesg(&sc->retraceMQ, &msg, OS_MESG_BLOCK);
|
||||
D_8007B2D0++;
|
||||
|
||||
switch ( (int)msg ) {
|
||||
case VIDEO_MSG:
|
||||
nnScEventBroadcast(sc, &sc->retraceMsg);
|
||||
break;
|
||||
case PRE_NMI_MSG:
|
||||
nnScEventBroadcast(sc, &sc->prenmiMsg);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void nnScAddClient(NNSched *sc, NNScClient *c, OSMesgQueue *msgQ)
|
||||
{
|
||||
OSIntMask mask;
|
||||
mask = osSetIntMask(OS_IM_NONE);
|
||||
c->msgQ = msgQ;
|
||||
c->next = sc->clientList;
|
||||
sc->clientList = c;
|
||||
osSetIntMask(mask);
|
||||
}
|
||||
|
||||
void nnScRemoveClient(NNSched *sc, NNScClient *c)
|
||||
{
|
||||
NNScClient *client = sc->clientList;
|
||||
NNScClient *prev = 0;
|
||||
OSIntMask mask;
|
||||
mask = osSetIntMask(OS_IM_NONE);
|
||||
|
||||
while (client != 0) {
|
||||
if (client == c) {
|
||||
if(prev)
|
||||
prev->next = c->next;
|
||||
else
|
||||
sc->clientList = c->next;
|
||||
break;
|
||||
}
|
||||
prev = client;
|
||||
client = client->next;
|
||||
}
|
||||
osSetIntMask(mask);
|
||||
}
|
||||
|
||||
void nnScEventBroadcast(NNSched *sc, NNScMsg *msg)
|
||||
{
|
||||
NNScClient *client;
|
||||
|
||||
/* inform necessary clients of retrace message */
|
||||
for (client = sc->clientList; client != 0; client = client->next) {
|
||||
osSendMesg(client->msgQ, (OSMesg *)msg, OS_MESG_NOBLOCK);
|
||||
}
|
||||
}
|
||||
|
||||
void nnScExecuteAudio(NNSched *sc)
|
||||
{
|
||||
OSMesg msg = (OSMesg)0;
|
||||
NNScTask *task = (NNScTask *)0;
|
||||
NNScTask *gfxTask = (NNScTask *)0;
|
||||
u32 yieldFlag;
|
||||
|
||||
while(1) {
|
||||
/* wait for audio execution request */
|
||||
osRecvMesg(&sc->audioRequestMQ, (OSMesg *)&task, OS_MESG_BLOCK);
|
||||
osWritebackDCacheAll(); /* flash cache */
|
||||
/* Inspect current RSP stack */
|
||||
yieldFlag = 0;
|
||||
gfxTask = sc->curGraphicsTask;
|
||||
if( gfxTask ) {
|
||||
/* wait for graphic task to end (yield) */
|
||||
osSpTaskYield(); /* task yield */
|
||||
osRecvMesg(&sc->rspMQ, &msg, OS_MESG_BLOCK);
|
||||
/* verify that task has actually yielded */
|
||||
if (osSpTaskYielded(&gfxTask->list)){
|
||||
yieldFlag =1;
|
||||
} else {
|
||||
yieldFlag =2;
|
||||
}
|
||||
}
|
||||
|
||||
sc->curAudioTask = task;
|
||||
osSpTaskStart(&task->list); /* execute task */
|
||||
/* wait for end of RSP task */
|
||||
osRecvMesg(&sc->rspMQ, &msg, OS_MESG_BLOCK);
|
||||
sc->curAudioTask = (NNScTask *)0;
|
||||
|
||||
if( sc->graphicsTaskSuspended )
|
||||
osSendMesg( &sc->waitMQ, &msg, OS_MESG_BLOCK );
|
||||
/* restart graphic task that yielded */
|
||||
if( yieldFlag == 1 ) {
|
||||
osSpTaskStart(&gfxTask->list);
|
||||
} else if ( yieldFlag == 2 ) {
|
||||
osSendMesg(&sc->rspMQ, &msg, OS_MESG_BLOCK);
|
||||
}
|
||||
/* inform thread started by audio task that task has ended */
|
||||
osSendMesg(task->msgQ, task->msg, OS_MESG_BLOCK);
|
||||
}
|
||||
}
|
||||
|
||||
void nnScExecuteGraphics(NNSched *sc)
|
||||
{
|
||||
OSMesg msg = (OSMesg)0;
|
||||
NNScTask *task;
|
||||
|
||||
while(1) {
|
||||
/* wait for graphic task execution request */
|
||||
osRecvMesg(&sc->graphicsRequestMQ, (OSMesg *)&task, OS_MESG_BLOCK);
|
||||
/* wait for frame buffer to become available for use */
|
||||
nnScWaitTaskReady(sc, task);
|
||||
if( sc->curAudioTask ) {
|
||||
sc->graphicsTaskSuspended = task;
|
||||
osRecvMesg( &sc->waitMQ, &msg, OS_MESG_BLOCK );
|
||||
sc->graphicsTaskSuspended = (NNScTask *)0;
|
||||
}
|
||||
|
||||
sc->curGraphicsTask = task;
|
||||
osSpTaskStart(&task->list); /* execute task */
|
||||
/* wait for end of RSP task */
|
||||
osRecvMesg(&sc->rspMQ, &msg, OS_MESG_BLOCK);
|
||||
sc->curGraphicsTask = (NNScTask *)0;
|
||||
|
||||
/* wait for end of RDP task */
|
||||
osRecvMesg(&sc->rdpMQ, &msg, OS_MESG_BLOCK);
|
||||
|
||||
/* invalidate video blackout first time only */
|
||||
if (sc->firstTime) {
|
||||
osViBlack(FALSE); //!WARNING webSym thought this was osViRepeatLine.
|
||||
sc->firstTime = 0;
|
||||
}
|
||||
/* specify next frame buffer to display */
|
||||
if ( task->flags & NN_SC_SWAPBUFFER ){
|
||||
osViSwapBuffer(task->framebuffer);
|
||||
|
||||
}
|
||||
/* inform thread started by graphic task that task has ended */
|
||||
osSendMesg(task->msgQ, task->msg, OS_MESG_BLOCK);
|
||||
}
|
||||
}
|
||||
|
||||
void nnScWaitTaskReady(NNSched* sc, NNScTask* task) {
|
||||
|
||||
OSMesg msg = (OSMesg)0;
|
||||
NNScClient client;
|
||||
|
||||
void* fb = task->framebuffer;
|
||||
if (osViGetCurrentFramebuffer() == fb) {
|
||||
do {
|
||||
nnScAddClient(sc, &client, &sc->waitMQ);
|
||||
osRecvMesg(&sc->waitMQ, &msg, OS_MESG_BLOCK);
|
||||
nnScRemoveClient(sc, &client);
|
||||
} while (osViGetCurrentFramebuffer() == fb);
|
||||
}
|
||||
}
|
5
src/pimgr.c
Normal file
5
src/pimgr.c
Normal file
@ -0,0 +1,5 @@
|
||||
#include "common.h"
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/pimgr/osCreatePiManager.s")
|
||||
|
||||
/*MIGRATE .bss*/
|
3
src/setintmask.c
Normal file
3
src/setintmask.c
Normal file
@ -0,0 +1,3 @@
|
||||
#include "common.h"
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/setintmask/osSetIntMask.s")
|
43
src/startthread.c
Normal file
43
src/startthread.c
Normal file
@ -0,0 +1,43 @@
|
||||
#include <os_internal.h>
|
||||
//#include "osint.h"
|
||||
|
||||
extern OSThread *__osRunQueue;
|
||||
extern OSThread *__osRunningThread;
|
||||
|
||||
void osStartThread(OSThread *t)
|
||||
{
|
||||
register u32 saveMask = __osDisableInt();
|
||||
switch (t->state)
|
||||
{
|
||||
case OS_STATE_WAITING:
|
||||
t->state = OS_STATE_RUNNABLE;
|
||||
__osEnqueueThread(&__osRunQueue, t);
|
||||
break;
|
||||
case OS_STATE_STOPPED:
|
||||
if (t->queue == NULL || t->queue == &__osRunQueue)
|
||||
{
|
||||
t->state = OS_STATE_RUNNABLE;
|
||||
__osEnqueueThread(&__osRunQueue, t);
|
||||
}
|
||||
else
|
||||
{
|
||||
t->state = OS_STATE_WAITING;
|
||||
__osEnqueueThread(t->queue, t);
|
||||
__osEnqueueThread(&__osRunQueue, __osPopThread(t->queue));
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (__osRunningThread == NULL)
|
||||
{
|
||||
__osDispatchThread();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (__osRunningThread->priority < __osRunQueue->priority)
|
||||
{
|
||||
__osRunningThread->state = OS_STATE_RUNNABLE;
|
||||
__osEnqueueAndYield(&__osRunQueue);
|
||||
}
|
||||
}
|
||||
__osRestoreInt(saveMask);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user