Match controller functions

This commit is contained in:
Ryan Myers
2021-10-03 16:03:32 -04:00
parent d16ab2cec5
commit 2ab3d67931
5 changed files with 16 additions and 273 deletions
@@ -1,57 +0,0 @@
glabel __osContGetInitData
/* 0CDA18 800CCE18 3C0F8013 */ lui $t7, %hi(__osMaxControllers) # $t7, 0x8013
/* 0CDA1C 800CCE1C 91EFCD91 */ lbu $t7, %lo(__osMaxControllers)($t7)
/* 0CDA20 800CCE20 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0CDA24 800CCE24 3C0E8013 */ lui $t6, %hi(__osContPifRam) # $t6, 0x8013
/* 0CDA28 800CCE28 25CECD50 */ addiu $t6, %lo(__osContPifRam) # addiu $t6, $t6, -0x32b0
/* 0CDA2C 800CCE2C A3A00007 */ sb $zero, 7($sp)
/* 0CDA30 800CCE30 AFAE0014 */ sw $t6, 0x14($sp)
/* 0CDA34 800CCE34 19E00028 */ blez $t7, .L800CCED8
/* 0CDA38 800CCE38 AFA00008 */ sw $zero, 8($sp)
.L800CCE3C:
/* 0CDA3C 800CCE3C 8FB90014 */ lw $t9, 0x14($sp)
/* 0CDA40 800CCE40 27B8000C */ addiu $t8, $sp, 0xc
/* 0CDA44 800CCE44 8B210000 */ lwl $at, ($t9)
/* 0CDA48 800CCE48 9B210003 */ lwr $at, 3($t9)
/* 0CDA4C 800CCE4C AF010000 */ sw $at, ($t8)
/* 0CDA50 800CCE50 8B290004 */ lwl $t1, 4($t9)
/* 0CDA54 800CCE54 9B290007 */ lwr $t1, 7($t9)
/* 0CDA58 800CCE58 AF090004 */ sw $t1, 4($t8)
/* 0CDA5C 800CCE5C 93AA000E */ lbu $t2, 0xe($sp)
/* 0CDA60 800CCE60 314B00C0 */ andi $t3, $t2, 0xc0
/* 0CDA64 800CCE64 000B6103 */ sra $t4, $t3, 4
/* 0CDA68 800CCE68 A0AC0003 */ sb $t4, 3($a1)
/* 0CDA6C 800CCE6C 90AD0003 */ lbu $t5, 3($a1)
/* 0CDA70 800CCE70 15A0000E */ bnez $t5, .L800CCEAC
/* 0CDA74 800CCE74 00000000 */ nop
/* 0CDA78 800CCE78 93AE0011 */ lbu $t6, 0x11($sp)
/* 0CDA7C 800CCE7C 93A80010 */ lbu $t0, 0x10($sp)
/* 0CDA80 800CCE80 240B0001 */ li $t3, 1
/* 0CDA84 800CCE84 000E7A00 */ sll $t7, $t6, 8
/* 0CDA88 800CCE88 01E8C025 */ or $t8, $t7, $t0
/* 0CDA8C 800CCE8C A4B80000 */ sh $t8, ($a1)
/* 0CDA90 800CCE90 93B90012 */ lbu $t9, 0x12($sp)
/* 0CDA94 800CCE94 A0B90002 */ sb $t9, 2($a1)
/* 0CDA98 800CCE98 8FAA0008 */ lw $t2, 8($sp)
/* 0CDA9C 800CCE9C 93A90007 */ lbu $t1, 7($sp)
/* 0CDAA0 800CCEA0 014B6004 */ sllv $t4, $t3, $t2
/* 0CDAA4 800CCEA4 012C6825 */ or $t5, $t1, $t4
/* 0CDAA8 800CCEA8 A3AD0007 */ sb $t5, 7($sp)
.L800CCEAC:
/* 0CDAAC 800CCEAC 8FAE0008 */ lw $t6, 8($sp)
/* 0CDAB0 800CCEB0 3C198013 */ lui $t9, %hi(__osMaxControllers) # $t9, 0x8013
/* 0CDAB4 800CCEB4 9339CD91 */ lbu $t9, %lo(__osMaxControllers)($t9)
/* 0CDAB8 800CCEB8 8FA80014 */ lw $t0, 0x14($sp)
/* 0CDABC 800CCEBC 25CF0001 */ addiu $t7, $t6, 1
/* 0CDAC0 800CCEC0 01F9082A */ slt $at, $t7, $t9
/* 0CDAC4 800CCEC4 25180008 */ addiu $t8, $t0, 8
/* 0CDAC8 800CCEC8 AFB80014 */ sw $t8, 0x14($sp)
/* 0CDACC 800CCECC AFAF0008 */ sw $t7, 8($sp)
/* 0CDAD0 800CCED0 1420FFDA */ bnez $at, .L800CCE3C
/* 0CDAD4 800CCED4 24A50004 */ addiu $a1, $a1, 4
.L800CCED8:
/* 0CDAD8 800CCED8 93AB0007 */ lbu $t3, 7($sp)
/* 0CDADC 800CCEDC 27BD0018 */ addiu $sp, $sp, 0x18
/* 0CDAE0 800CCEE0 03E00008 */ jr $ra
/* 0CDAE4 800CCEE4 A08B0000 */ sb $t3, ($a0)
@@ -1,67 +0,0 @@
glabel __osPackRequestData
/* 0CDAE8 800CCEE8 27BDFFF0 */ addiu $sp, $sp, -0x10
/* 0CDAEC 800CCEEC 308400FF */ andi $a0, $a0, 0xff
/* 0CDAF0 800CCEF0 AFA00000 */ sw $zero, ($sp)
.L800CCEF4:
/* 0CDAF4 800CCEF4 8FAE0000 */ lw $t6, ($sp)
/* 0CDAF8 800CCEF8 8FB80000 */ lw $t8, ($sp)
/* 0CDAFC 800CCEFC 3C018013 */ lui $at, %hi(__osContPifRam) # $at, 0x8013
/* 0CDB00 800CCF00 000E7880 */ sll $t7, $t6, 2
/* 0CDB04 800CCF04 002F0821 */ addu $at, $at, $t7
/* 0CDB08 800CCF08 AC20CD50 */ sw $zero, %lo(__osContPifRam)($at)
/* 0CDB0C 800CCF0C 27190001 */ addiu $t9, $t8, 1
/* 0CDB10 800CCF10 2B210010 */ slti $at, $t9, 0x10
/* 0CDB14 800CCF14 1420FFF7 */ bnez $at, .L800CCEF4
/* 0CDB18 800CCF18 AFB90000 */ sw $t9, ($sp)
/* 0CDB1C 800CCF1C 3C198013 */ lui $t9, %hi(__osMaxControllers) # $t9, 0x8013
/* 0CDB20 800CCF20 9339CD91 */ lbu $t9, %lo(__osMaxControllers)($t9)
/* 0CDB24 800CCF24 3C098013 */ lui $t1, %hi(__osContPifRam) # $t1, 0x8013
/* 0CDB28 800CCF28 24080001 */ li $t0, 1
/* 0CDB2C 800CCF2C 3C018013 */ lui $at, %hi(__osContPifRam) # $at, 0x8013
/* 0CDB30 800CCF30 2529CD50 */ addiu $t1, %lo(__osContPifRam) # addiu $t1, $t1, -0x32b0
/* 0CDB34 800CCF34 240A00FF */ li $t2, 255
/* 0CDB38 800CCF38 240B0001 */ li $t3, 1
/* 0CDB3C 800CCF3C 240C0003 */ li $t4, 3
/* 0CDB40 800CCF40 240D00FF */ li $t5, 255
/* 0CDB44 800CCF44 240E00FF */ li $t6, 255
/* 0CDB48 800CCF48 240F00FF */ li $t7, 255
/* 0CDB4C 800CCF4C 241800FF */ li $t8, 255
/* 0CDB50 800CCF50 AC28CD8C */ sw $t0, %lo(__osContPifRam+60)($at)
/* 0CDB54 800CCF54 AFA9000C */ sw $t1, 0xc($sp)
/* 0CDB58 800CCF58 A3AA0004 */ sb $t2, 4($sp)
/* 0CDB5C 800CCF5C A3AB0005 */ sb $t3, 5($sp)
/* 0CDB60 800CCF60 A3AC0006 */ sb $t4, 6($sp)
/* 0CDB64 800CCF64 A3A40007 */ sb $a0, 7($sp)
/* 0CDB68 800CCF68 A3AD0008 */ sb $t5, 8($sp)
/* 0CDB6C 800CCF6C A3AE0009 */ sb $t6, 9($sp)
/* 0CDB70 800CCF70 A3AF000A */ sb $t7, 0xa($sp)
/* 0CDB74 800CCF74 A3B8000B */ sb $t8, 0xb($sp)
/* 0CDB78 800CCF78 1B200013 */ blez $t9, .L800CCFC8
/* 0CDB7C 800CCF7C AFA00000 */ sw $zero, ($sp)
.L800CCF80:
/* 0CDB80 800CCF80 27A90004 */ addiu $t1, $sp, 4
/* 0CDB84 800CCF84 8D210000 */ lw $at, ($t1)
/* 0CDB88 800CCF88 8FA8000C */ lw $t0, 0xc($sp)
/* 0CDB8C 800CCF8C 3C188013 */ lui $t8, %hi(__osMaxControllers) # $t8, 0x8013
/* 0CDB90 800CCF90 A9010000 */ swl $at, ($t0)
/* 0CDB94 800CCF94 B9010003 */ swr $at, 3($t0)
/* 0CDB98 800CCF98 8D2B0004 */ lw $t3, 4($t1)
/* 0CDB9C 800CCF9C A90B0004 */ swl $t3, 4($t0)
/* 0CDBA0 800CCFA0 B90B0007 */ swr $t3, 7($t0)
/* 0CDBA4 800CCFA4 8FAE0000 */ lw $t6, ($sp)
/* 0CDBA8 800CCFA8 9318CD91 */ lbu $t8, %lo(__osMaxControllers)($t8)
/* 0CDBAC 800CCFAC 8FAC000C */ lw $t4, 0xc($sp)
/* 0CDBB0 800CCFB0 25CF0001 */ addiu $t7, $t6, 1
/* 0CDBB4 800CCFB4 01F8082A */ slt $at, $t7, $t8
/* 0CDBB8 800CCFB8 258D0008 */ addiu $t5, $t4, 8
/* 0CDBBC 800CCFBC AFAF0000 */ sw $t7, ($sp)
/* 0CDBC0 800CCFC0 1420FFEF */ bnez $at, .L800CCF80
/* 0CDBC4 800CCFC4 AFAD000C */ sw $t5, 0xc($sp)
.L800CCFC8:
/* 0CDBC8 800CCFC8 8FAA000C */ lw $t2, 0xc($sp)
/* 0CDBCC 800CCFCC 241900FE */ li $t9, 254
/* 0CDBD0 800CCFD0 27BD0010 */ addiu $sp, $sp, 0x10
/* 0CDBD4 800CCFD4 03E00008 */ jr $ra
/* 0CDBD8 800CCFD8 A1590000 */ sb $t9, ($t2)
/* 0CDBDC 800CCFDC 00000000 */ nop
@@ -1,132 +0,0 @@
glabel osContInit
/* 0CD820 800CCC20 27BDFF80 */ addiu $sp, $sp, -0x80
/* 0CD824 800CCC24 3C0E800E */ lui $t6, %hi(__osContinitialized) # $t6, 0x800e
/* 0CD828 800CCC28 8DCE38C0 */ lw $t6, %lo(__osContinitialized)($t6)
/* 0CD82C 800CCC2C AFBF0024 */ sw $ra, 0x24($sp)
/* 0CD830 800CCC30 AFA40080 */ sw $a0, 0x80($sp)
/* 0CD834 800CCC34 AFA50084 */ sw $a1, 0x84($sp)
/* 0CD838 800CCC38 AFA60088 */ sw $a2, 0x88($sp)
/* 0CD83C 800CCC3C 11C00003 */ beqz $t6, .L800CCC4C
/* 0CD840 800CCC40 AFA00078 */ sw $zero, 0x78($sp)
/* 0CD844 800CCC44 10000070 */ b .L800CCE08
/* 0CD848 800CCC48 00001025 */ move $v0, $zero
.L800CCC4C:
/* 0CD84C 800CCC4C 240F0001 */ li $t7, 1
/* 0CD850 800CCC50 3C01800E */ lui $at, %hi(__osContinitialized) # $at, 0x800e
/* 0CD854 800CCC54 0C03486C */ jal osGetTime
/* 0CD858 800CCC58 AC2F38C0 */ sw $t7, %lo(__osContinitialized)($at)
/* 0CD85C 800CCC5C 3C050007 */ lui $a1, (0x0007A120 >> 16) # lui $a1, 7
/* 0CD860 800CCC60 3C06800E */ lui $a2, %hi(osClockRate) # $a2, 0x800e
/* 0CD864 800CCC64 3C07800E */ lui $a3, %hi(osClockRate+4) # $a3, 0x800e
/* 0CD868 800CCC68 AFA20070 */ sw $v0, 0x70($sp)
/* 0CD86C 800CCC6C AFA30074 */ sw $v1, 0x74($sp)
/* 0CD870 800CCC70 8CE738A4 */ lw $a3, %lo(osClockRate+4)($a3)
/* 0CD874 800CCC74 8CC638A0 */ lw $a2, %lo(osClockRate)($a2)
/* 0CD878 800CCC78 34A5A120 */ ori $a1, (0x0007A120 & 0xFFFF) # ori $a1, $a1, 0xa120
/* 0CD87C 800CCC7C 0C033AF2 */ jal __ll_mul
/* 0CD880 800CCC80 24040000 */ li $a0, 0
/* 0CD884 800CCC84 AFA20030 */ sw $v0, 0x30($sp)
/* 0CD888 800CCC88 AFA30034 */ sw $v1, 0x34($sp)
/* 0CD88C 800CCC8C 3C07000F */ lui $a3, (0x000F4240 >> 16) # lui $a3, 0xf
/* 0CD890 800CCC90 34E74240 */ ori $a3, (0x000F4240 & 0xFFFF) # ori $a3, $a3, 0x4240
/* 0CD894 800CCC94 8FA50034 */ lw $a1, 0x34($sp)
/* 0CD898 800CCC98 8FA40030 */ lw $a0, 0x30($sp)
/* 0CD89C 800CCC9C 0C033AB2 */ jal __ull_div
/* 0CD8A0 800CCCA0 24060000 */ li $a2, 0
/* 0CD8A4 800CCCA4 8FB80070 */ lw $t8, 0x70($sp)
/* 0CD8A8 800CCCA8 8FB90074 */ lw $t9, 0x74($sp)
/* 0CD8AC 800CCCAC 0058082B */ sltu $at, $v0, $t8
/* 0CD8B0 800CCCB0 14200031 */ bnez $at, .L800CCD78
/* 0CD8B4 800CCCB4 0302082B */ sltu $at, $t8, $v0
/* 0CD8B8 800CCCB8 14200003 */ bnez $at, .L800CCCC8
/* 0CD8BC 800CCCBC 0323082B */ sltu $at, $t9, $v1
/* 0CD8C0 800CCCC0 1020002D */ beqz $at, .L800CCD78
/* 0CD8C4 800CCCC4 00000000 */ nop
.L800CCCC8:
/* 0CD8C8 800CCCC8 27A40038 */ addiu $a0, $sp, 0x38
/* 0CD8CC 800CCCCC 27A5007C */ addiu $a1, $sp, 0x7c
/* 0CD8D0 800CCCD0 0C032208 */ jal osCreateMesgQueue
/* 0CD8D4 800CCCD4 24060001 */ li $a2, 1
/* 0CD8D8 800CCCD8 3C050007 */ lui $a1, (0x0007A120 >> 16) # lui $a1, 7
/* 0CD8DC 800CCCDC 3C06800E */ lui $a2, %hi(osClockRate) # $a2, 0x800e
/* 0CD8E0 800CCCE0 3C07800E */ lui $a3, %hi(osClockRate) # $a3, 0x800e
/* 0CD8E4 800CCCE4 8CE738A4 */ lw $a3, %lo(osClockRate+4)($a3)
/* 0CD8E8 800CCCE8 8CC638A0 */ lw $a2, %lo(osClockRate)($a2)
/* 0CD8EC 800CCCEC 34A5A120 */ ori $a1, (0x0007A120 & 0xFFFF) # ori $a1, $a1, 0xa120
/* 0CD8F0 800CCCF0 0C033AF2 */ jal __ll_mul
/* 0CD8F4 800CCCF4 24040000 */ li $a0, 0
/* 0CD8F8 800CCCF8 AFA20028 */ sw $v0, 0x28($sp)
/* 0CD8FC 800CCCFC AFA3002C */ sw $v1, 0x2c($sp)
/* 0CD900 800CCD00 3C07000F */ lui $a3, (0x000F4240 >> 16) # lui $a3, 0xf
/* 0CD904 800CCD04 34E74240 */ ori $a3, (0x000F4240 & 0xFFFF) # ori $a3, $a3, 0x4240
/* 0CD908 800CCD08 8FA5002C */ lw $a1, 0x2c($sp)
/* 0CD90C 800CCD0C 8FA40028 */ lw $a0, 0x28($sp)
/* 0CD910 800CCD10 0C033AB2 */ jal __ull_div
/* 0CD914 800CCD14 24060000 */ li $a2, 0
/* 0CD918 800CCD18 AFA20030 */ sw $v0, 0x30($sp)
/* 0CD91C 800CCD1C AFA30034 */ sw $v1, 0x34($sp)
/* 0CD920 800CCD20 8FA90034 */ lw $t1, 0x34($sp)
/* 0CD924 800CCD24 8FA80030 */ lw $t0, 0x30($sp)
/* 0CD928 800CCD28 8FAA0070 */ lw $t2, 0x70($sp)
/* 0CD92C 800CCD2C 8FAB0074 */ lw $t3, 0x74($sp)
/* 0CD930 800CCD30 240C0000 */ li $t4, 0
/* 0CD934 800CCD34 240D0000 */ li $t5, 0
/* 0CD938 800CCD38 27AE0038 */ addiu $t6, $sp, 0x38
/* 0CD93C 800CCD3C 27AF007C */ addiu $t7, $sp, 0x7c
/* 0CD940 800CCD40 010A3023 */ subu $a2, $t0, $t2
/* 0CD944 800CCD44 012B082B */ sltu $at, $t1, $t3
/* 0CD948 800CCD48 00C13023 */ subu $a2, $a2, $at
/* 0CD94C 800CCD4C AFAF001C */ sw $t7, 0x1c($sp)
/* 0CD950 800CCD50 AFAE0018 */ sw $t6, 0x18($sp)
/* 0CD954 800CCD54 AFAD0014 */ sw $t5, 0x14($sp)
/* 0CD958 800CCD58 AFAC0010 */ sw $t4, 0x10($sp)
/* 0CD95C 800CCD5C 27A40050 */ addiu $a0, $sp, 0x50
/* 0CD960 800CCD60 0C035378 */ jal osSetTimer
/* 0CD964 800CCD64 012B3823 */ subu $a3, $t1, $t3
/* 0CD968 800CCD68 27A40038 */ addiu $a0, $sp, 0x38
/* 0CD96C 800CCD6C 27A5007C */ addiu $a1, $sp, 0x7c
/* 0CD970 800CCD70 0C0322EC */ jal osRecvMesg
/* 0CD974 800CCD74 24060001 */ li $a2, 1
.L800CCD78:
/* 0CD978 800CCD78 24180004 */ li $t8, 4
/* 0CD97C 800CCD7C 3C018013 */ lui $at, %hi(__osMaxControllers) # $at, 0x8013
/* 0CD980 800CCD80 A038CD91 */ sb $t8, %lo(__osMaxControllers)($at)
/* 0CD984 800CCD84 0C0333BA */ jal __osPackRequestData
/* 0CD988 800CCD88 00002025 */ move $a0, $zero
/* 0CD98C 800CCD8C 3C058013 */ lui $a1, %hi(__osContPifRam) # $a1, 0x8013
/* 0CD990 800CCD90 24A5CD50 */ addiu $a1, %lo(__osContPifRam) # addiu $a1, $a1, -0x32b0
/* 0CD994 800CCD94 0C0335B0 */ jal __osSiRawStartDma
/* 0CD998 800CCD98 24040001 */ li $a0, 1
/* 0CD99C 800CCD9C AFA20078 */ sw $v0, 0x78($sp)
/* 0CD9A0 800CCDA0 8FA40080 */ lw $a0, 0x80($sp)
/* 0CD9A4 800CCDA4 27A5007C */ addiu $a1, $sp, 0x7c
/* 0CD9A8 800CCDA8 0C0322EC */ jal osRecvMesg
/* 0CD9AC 800CCDAC 24060001 */ li $a2, 1
/* 0CD9B0 800CCDB0 3C058013 */ lui $a1, %hi(__osContPifRam) # $a1, 0x8013
/* 0CD9B4 800CCDB4 24A5CD50 */ addiu $a1, %lo(__osContPifRam) # addiu $a1, $a1, -0x32b0
/* 0CD9B8 800CCDB8 0C0335B0 */ jal __osSiRawStartDma
/* 0CD9BC 800CCDBC 00002025 */ move $a0, $zero
/* 0CD9C0 800CCDC0 AFA20078 */ sw $v0, 0x78($sp)
/* 0CD9C4 800CCDC4 8FA40080 */ lw $a0, 0x80($sp)
/* 0CD9C8 800CCDC8 27A5007C */ addiu $a1, $sp, 0x7c
/* 0CD9CC 800CCDCC 0C0322EC */ jal osRecvMesg
/* 0CD9D0 800CCDD0 24060001 */ li $a2, 1
/* 0CD9D4 800CCDD4 8FA40084 */ lw $a0, 0x84($sp)
/* 0CD9D8 800CCDD8 0C033386 */ jal __osContGetInitData
/* 0CD9DC 800CCDDC 8FA50088 */ lw $a1, 0x88($sp)
/* 0CD9E0 800CCDE0 3C018013 */ lui $at, %hi(__osContLastCmd) # $at, 0x8013
/* 0CD9E4 800CCDE4 0C033580 */ jal __osSiCreateAccessQueue
/* 0CD9E8 800CCDE8 A020CD90 */ sb $zero, %lo(__osContLastCmd)($at)
/* 0CD9EC 800CCDEC 3C048013 */ lui $a0, %hi(__osEepromTimerQ) # $a0, 0x8013
/* 0CD9F0 800CCDF0 3C058013 */ lui $a1, %hi(__osEepromTimerMsg) # $a1, 0x8013
/* 0CD9F4 800CCDF4 24A5CDD0 */ addiu $a1, %lo(__osEepromTimerMsg) # addiu $a1, $a1, -0x3230
/* 0CD9F8 800CCDF8 2484CDB8 */ addiu $a0, %lo(__osEepromTimerQ) # addiu $a0, $a0, -0x3248
/* 0CD9FC 800CCDFC 0C032208 */ jal osCreateMesgQueue
/* 0CDA00 800CCE00 24060001 */ li $a2, 1
/* 0CDA04 800CCE04 8FA20078 */ lw $v0, 0x78($sp)
.L800CCE08:
/* 0CDA08 800CCE08 8FBF0024 */ lw $ra, 0x24($sp)
/* 0CDA0C 800CCE0C 27BD0080 */ addiu $sp, $sp, 0x80
/* 0CDA10 800CCE10 03E00008 */ jr $ra
/* 0CDA14 800CCE14 00000000 */ nop
+15 -16
View File
@@ -6,7 +6,9 @@
#include "libultra_internal.h"
#include "controller.h"
#define HALF_A_SECOND OS_USEC_TO_CYCLES(500000)
#define HALF_MIL_CYLCES 500000U
#define ONE_MIL_CYLCES 1000000U
#define HALF_SECOND HALF_MIL_CYLCES * osClockRate / ONE_MIL_CYLCES
u32 __osContinitialized = 0;
OSPifRam __osContPifRam;
@@ -15,29 +17,25 @@ u8 __osMaxControllers;
OSTimer __osEepromTimer;
OSMesgQueue __osEepromTimerQ;
OSMesg __osEepromTimerMsg;
s32 D_8012CDD4[2]; //Padding?
s32 D_8012CDD4[2]; //Padding? Maybe osClockRate should be declared here?
OSPifRam __osPfsPifRam;
extern OSTime osClockRate;
#if 1
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CD820/osContInit.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CD820/__osContGetInitData.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0CD820/__osPackRequestData.s")
#else
s32 osContInit(OSMesgQueue *mq, u8 *bitpattern, OSContStatus *data) {
OSMesg dummy;
s32 ret;
u32 ret = 0;
OSTime t;
OSTimer mytimer;
OSMesgQueue timerMesgQueue;
ret = 0;
if (__osContinitialized)
if (__osContinitialized) {
return ret;
}
__osContinitialized = TRUE;
t = osGetTime();
if (t < HALF_A_SECOND) {
if (HALF_SECOND > t) {
osCreateMesgQueue(&timerMesgQueue, &dummy, 1);
osSetTimer(&mytimer, HALF_A_SECOND - t, 0, &timerMesgQueue, &dummy);
osSetTimer(&mytimer, HALF_SECOND - t, 0, &timerMesgQueue, &dummy);
osRecvMesg(&timerMesgQueue, &dummy, OS_MESG_BLOCK);
}
__osMaxControllers = MAXCONTROLLERS;
@@ -48,10 +46,12 @@ s32 osContInit(OSMesgQueue *mq, u8 *bitpattern, OSContStatus *data) {
ret = __osSiRawStartDma(OS_READ, &__osContPifRam);
osRecvMesg(mq, &dummy, OS_MESG_BLOCK);
__osContGetInitData(bitpattern, data);
__osContLastCmd = CONT_CMD_REQUEST_STATUS;
__osSiCreateAccessQueue();
osCreateMesgQueue(&__osEepromTimerQ, &__osEepromTimerMsg, 1);
return ret;
}
@@ -65,8 +65,7 @@ void __osContGetInitData(u8 *pattern, OSContStatus *data) {
for (i = 0; i < __osMaxControllers; i++, ptr += sizeof(__OSContRequesFormat), data++) {
requestformat = *(__OSContRequesFormat *)ptr;
data->errno = CHNL_ERR(requestformat);
if (data->errno == 0)
{
if (data->errno == 0) {
data->type = (requestformat.typel << 8) | requestformat.typeh;
data->status = requestformat.status;
bits |= 1 << i;
@@ -79,7 +78,7 @@ void __osPackRequestData(u8 cmd) {
u8 *ptr;
__OSContRequesFormat requestformat;
int i;
for (i = 0; i < ARRLEN(__osContPifRam.ramarray); i++) {
for (i = 0; i <= ARRLEN(__osContPifRam.ramarray); i++) {
__osContPifRam.ramarray[i] = 0;
}
__osContPifRam.pifstatus = CONT_CMD_EXE;
@@ -97,6 +96,6 @@ void __osPackRequestData(u8 cmd) {
*(__OSContRequesFormat *)ptr = requestformat;
ptr += sizeof(__OSContRequesFormat);
}
ptr[0] = CONT_CMD_END;
}
#endif
+1 -1
View File
@@ -15,7 +15,7 @@ typedef struct
} __osExceptionVector;
extern __osExceptionVector __osExceptionPreamble;
u64 osClockRate = OS_CLOCK_RATE;
OSTime osClockRate = OS_CLOCK_RATE;
u32 __osShutdown = 0;
u32 __OSGlobalIntMask = OS_IM_ALL;
s32 D_800E38B0 = 0; // 64DD flag? (Hints from SM64 code)