mirror of
https://github.com/n64decomp/mk64
synced 2026-05-23 22:45:21 -04:00
audio load.c decomp (#176)
This commit is contained in:
+1
-1
@@ -9,7 +9,7 @@ glabel D_803AFBD0
|
||||
glabel D_803AFBD8
|
||||
.skip 16
|
||||
|
||||
glabel D_803AFBE8
|
||||
glabel gNotesAndBuffersPool
|
||||
.skip 48
|
||||
|
||||
glabel D_803AFC18
|
||||
|
||||
+15
-15
@@ -99,13 +99,13 @@ glabel D_803B5FE8
|
||||
glabel D_803B5FF8
|
||||
.skip 16
|
||||
|
||||
glabel D_803B6008
|
||||
glabel gCurrAudioFrameDmaQueue
|
||||
.skip 24
|
||||
|
||||
glabel D_803B6020
|
||||
glabel gCurrAudioFrameDmaMesgBufs
|
||||
.skip 256
|
||||
|
||||
glabel D_803B6120
|
||||
glabel gCurrAudioFrameDmaIoMesgBufs
|
||||
.skip 1536
|
||||
|
||||
glabel D_803B6720
|
||||
@@ -117,34 +117,34 @@ glabel D_803B6738
|
||||
glabel D_803B6740
|
||||
.skip 24
|
||||
|
||||
glabel D_803B6758
|
||||
glabel sSampleDmas
|
||||
.skip 1792
|
||||
|
||||
glabel D_803B6E58
|
||||
glabel gSampleDmaNumListItems
|
||||
.skip 4
|
||||
|
||||
glabel D_803B6E5C
|
||||
glabel sSampleDmaListSize1
|
||||
.skip 4
|
||||
|
||||
glabel D_803B6E60
|
||||
.skip 8
|
||||
|
||||
glabel D_803B6E68
|
||||
glabel sSampleDmaReuseQueue1
|
||||
.skip 256
|
||||
|
||||
glabel D_803B6F68
|
||||
glabel sSampleDmaReuseQueue2
|
||||
.skip 256
|
||||
|
||||
glabel D_803B7068
|
||||
glabel sSampleDmaReuseQueueTail1
|
||||
.skip 1
|
||||
|
||||
glabel D_803B7069
|
||||
glabel sSampleDmaReuseQueueTail2
|
||||
.skip 1
|
||||
|
||||
glabel D_803B706A
|
||||
glabel sSampleDmaReuseQueueHead1
|
||||
.skip 1
|
||||
|
||||
glabel D_803B706B
|
||||
glabel sSampleDmaReuseQueueHead2
|
||||
.skip 1
|
||||
|
||||
glabel D_803B706C
|
||||
@@ -165,7 +165,7 @@ glabel D_803B707C
|
||||
glabel D_803B7080
|
||||
.skip 8
|
||||
|
||||
glabel D_803B7088
|
||||
glabel gAudioBufferParameters
|
||||
.skip 24
|
||||
|
||||
glabel D_803B70A0
|
||||
@@ -180,7 +180,7 @@ glabel D_803B70A8
|
||||
glabel D_803B70AC
|
||||
.skip 4
|
||||
|
||||
glabel D_803B70B0
|
||||
glabel gMaxSimultaneousNotes
|
||||
.skip 4
|
||||
|
||||
glabel D_803B70B4
|
||||
@@ -192,7 +192,7 @@ glabel D_803B70B6
|
||||
glabel D_803B70B8
|
||||
.skip 4
|
||||
|
||||
glabel D_803B70BC
|
||||
glabel gCurrAudioFrameDmaCount
|
||||
.skip 4
|
||||
|
||||
glabel D_803B70C0
|
||||
|
||||
@@ -61,8 +61,8 @@ glabel L800BE638
|
||||
/* 0BF2A4 800BE6A4 A08E0001 */ sb $t6, 1($a0)
|
||||
.L800BE6A8:
|
||||
/* 0BF2A8 800BE6A8 14200019 */ bnez $at, .L800BE710
|
||||
/* 0BF2AC 800BE6AC 3C03803B */ lui $v1, %hi(D_803B7088) # $v1, 0x803b
|
||||
/* 0BF2B0 800BE6B0 24637088 */ addiu $v1, %lo(D_803B7088) # addiu $v1, $v1, 0x7088
|
||||
/* 0BF2AC 800BE6AC 3C03803B */ lui $v1, %hi(gAudioBufferParameters) # $v1, 0x803b
|
||||
/* 0BF2B0 800BE6B0 24637088 */ addiu $v1, %lo(gAudioBufferParameters) # addiu $v1, $v1, 0x7088
|
||||
/* 0BF2B4 800BE6B4 846F000C */ lh $t7, 0xc($v1)
|
||||
/* 0BF2B8 800BE6B8 84790000 */ lh $t9, ($v1)
|
||||
/* 0BF2BC 800BE6BC 00CF0019 */ multu $a2, $t7
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
glabel func_800B8EA8
|
||||
/* 0B9AA8 800B8EA8 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* 0B9AAC 800B8EAC 3C02803B */ lui $v0, %hi(D_803B70B0) # $v0, 0x803b
|
||||
/* 0B9AB0 800B8EB0 8C4270B0 */ lw $v0, %lo(D_803B70B0)($v0)
|
||||
/* 0B9AAC 800B8EAC 3C02803B */ lui $v0, %hi(gMaxSimultaneousNotes) # $v0, 0x803b
|
||||
/* 0B9AB0 800B8EB0 8C4270B0 */ lw $v0, %lo(gMaxSimultaneousNotes)($v0)
|
||||
/* 0B9AB4 800B8EB4 AFB50028 */ sw $s5, 0x28($sp)
|
||||
/* 0B9AB8 800B8EB8 AFB2001C */ sw $s2, 0x1c($sp)
|
||||
/* 0B9ABC 800B8EBC 0080A825 */ move $s5, $a0
|
||||
@@ -43,8 +43,8 @@ glabel func_800B8EA8
|
||||
/* 0B9B44 800B8F44 02802025 */ move $a0, $s4
|
||||
/* 0B9B48 800B8F48 0C02FC01 */ jal func_800BF004
|
||||
/* 0B9B4C 800B8F4C 02002825 */ move $a1, $s0
|
||||
/* 0B9B50 800B8F50 3C02803B */ lui $v0, %hi(D_803B70B0) # $v0, 0x803b
|
||||
/* 0B9B54 800B8F54 8C4270B0 */ lw $v0, %lo(D_803B70B0)($v0)
|
||||
/* 0B9B50 800B8F50 3C02803B */ lui $v0, %hi(gMaxSimultaneousNotes) # $v0, 0x803b
|
||||
/* 0B9B54 800B8F54 8C4270B0 */ lw $v0, %lo(gMaxSimultaneousNotes)($v0)
|
||||
/* 0B9B58 800B8F58 26520001 */ addiu $s2, $s2, 1
|
||||
.L800B8F5C:
|
||||
/* 0B9B5C 800B8F5C 0242082A */ slt $at, $s2, $v0
|
||||
|
||||
@@ -7,18 +7,18 @@ glabel func_800B914C
|
||||
/* 0B9D60 800B9160 8FAF0018 */ lw $t7, 0x18($sp)
|
||||
/* 0B9D64 800B9164 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 0B9D68 800B9168 AC8E0004 */ sw $t6, 4($a0)
|
||||
/* 0B9D6C 800B916C 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0B9D6C 800B916C 0C02E3FF */ jal soundAlloc
|
||||
/* 0B9D70 800B9170 8DE50000 */ lw $a1, ($t7)
|
||||
/* 0B9D74 800B9174 8FB80018 */ lw $t8, 0x18($sp)
|
||||
/* 0B9D78 800B9178 3C04803B */ lui $a0, %hi(D_803AFBE8) # $a0, 0x803b
|
||||
/* 0B9D7C 800B917C 2484FBE8 */ addiu $a0, %lo(D_803AFBE8) # addiu $a0, $a0, -0x418
|
||||
/* 0B9D78 800B9178 3C04803B */ lui $a0, %hi(gNotesAndBuffersPool) # $a0, 0x803b
|
||||
/* 0B9D7C 800B917C 2484FBE8 */ addiu $a0, %lo(gNotesAndBuffersPool) # addiu $a0, $a0, -0x418
|
||||
/* 0B9D80 800B9180 00402825 */ move $a1, $v0
|
||||
/* 0B9D84 800B9184 0C02E41F */ jal func_800B907C
|
||||
/* 0B9D88 800B9188 8F060000 */ lw $a2, ($t8)
|
||||
/* 0B9D8C 800B918C 8FB90018 */ lw $t9, 0x18($sp)
|
||||
/* 0B9D90 800B9190 3C04803B */ lui $a0, %hi(gLeftVolRampings) # $a0, 0x803b
|
||||
/* 0B9D94 800B9194 2484FBC8 */ addiu $a0, %lo(gLeftVolRampings) # addiu $a0, $a0, -0x438
|
||||
/* 0B9D98 800B9198 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0B9D98 800B9198 0C02E3FF */ jal soundAlloc
|
||||
/* 0B9D9C 800B919C 8F25000C */ lw $a1, 0xc($t9)
|
||||
/* 0B9DA0 800B91A0 8FA80018 */ lw $t0, 0x18($sp)
|
||||
/* 0B9DA4 800B91A4 3C04803B */ lui $a0, %hi(D_803AFC18) # $a0, 0x803b
|
||||
|
||||
@@ -7,7 +7,7 @@ glabel func_800B91C8
|
||||
/* 0B9DDC 800B91DC 8FAF0018 */ lw $t7, 0x18($sp)
|
||||
/* 0B9DE0 800B91E0 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 0B9DE4 800B91E4 AC8E0004 */ sw $t6, 4($a0)
|
||||
/* 0B9DE8 800B91E8 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0B9DE8 800B91E8 0C02E3FF */ jal soundAlloc
|
||||
/* 0B9DEC 800B91EC 8DE50000 */ lw $a1, ($t7)
|
||||
/* 0B9DF0 800B91F0 8FB80018 */ lw $t8, 0x18($sp)
|
||||
/* 0B9DF4 800B91F4 3C04803B */ lui $a0, %hi(D_803AFC28) # $a0, 0x803b
|
||||
@@ -18,7 +18,7 @@ glabel func_800B91C8
|
||||
/* 0B9E08 800B9208 8FB90018 */ lw $t9, 0x18($sp)
|
||||
/* 0B9E0C 800B920C 3C04803B */ lui $a0, %hi(D_803AFC18) # $a0, 0x803b
|
||||
/* 0B9E10 800B9210 2484FC18 */ addiu $a0, %lo(D_803AFC18) # addiu $a0, $a0, -0x3e8
|
||||
/* 0B9E14 800B9214 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0B9E14 800B9214 0C02E3FF */ jal soundAlloc
|
||||
/* 0B9E18 800B9218 8F250004 */ lw $a1, 4($t9)
|
||||
/* 0B9E1C 800B921C 8FA80018 */ lw $t0, 0x18($sp)
|
||||
/* 0B9E20 800B9220 3C04803B */ lui $a0, %hi(D_803AFC38) # $a0, 0x803b
|
||||
|
||||
@@ -7,7 +7,7 @@ glabel func_800B9244
|
||||
/* 0B9E58 800B9258 8C8E0000 */ lw $t6, ($a0)
|
||||
/* 0B9E5C 800B925C AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 0B9E60 800B9260 AC8E0004 */ sw $t6, 4($a0)
|
||||
/* 0B9E64 800B9264 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0B9E64 800B9264 0C02E3FF */ jal soundAlloc
|
||||
/* 0B9E68 800B9268 8E050000 */ lw $a1, ($s0)
|
||||
/* 0B9E6C 800B926C 3C04803B */ lui $a0, %hi(D_803AFC4C) # $a0, 0x803b
|
||||
/* 0B9E70 800B9270 2484FC4C */ addiu $a0, %lo(D_803AFC4C) # addiu $a0, $a0, -0x3b4
|
||||
@@ -16,7 +16,7 @@ glabel func_800B9244
|
||||
/* 0B9E7C 800B927C 8E060000 */ lw $a2, ($s0)
|
||||
/* 0B9E80 800B9280 3C04803B */ lui $a0, %hi(D_803AFC28) # $a0, 0x803b
|
||||
/* 0B9E84 800B9284 2484FC28 */ addiu $a0, %lo(D_803AFC28) # addiu $a0, $a0, -0x3d8
|
||||
/* 0B9E88 800B9288 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0B9E88 800B9288 0C02E3FF */ jal soundAlloc
|
||||
/* 0B9E8C 800B928C 8E050004 */ lw $a1, 4($s0)
|
||||
/* 0B9E90 800B9290 3C04803B */ lui $a0, %hi(D_803AFE1C) # $a0, 0x803b
|
||||
/* 0B9E94 800B9294 2484FE1C */ addiu $a0, %lo(D_803AFE1C) # addiu $a0, $a0, -0x1e4
|
||||
@@ -25,7 +25,7 @@ glabel func_800B9244
|
||||
/* 0B9EA0 800B92A0 8E060004 */ lw $a2, 4($s0)
|
||||
/* 0B9EA4 800B92A4 3C04803B */ lui $a0, %hi(D_803AFC28) # $a0, 0x803b
|
||||
/* 0B9EA8 800B92A8 2484FC28 */ addiu $a0, %lo(D_803AFC28) # addiu $a0, $a0, -0x3d8
|
||||
/* 0B9EAC 800B92AC 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0B9EAC 800B92AC 0C02E3FF */ jal soundAlloc
|
||||
/* 0B9EB0 800B92B0 8E050008 */ lw $a1, 8($s0)
|
||||
/* 0B9EB4 800B92B4 3C04803B */ lui $a0, %hi(D_803AFFEC) # $a0, 0x803b
|
||||
/* 0B9EB8 800B92B8 2484FFEC */ addiu $a0, %lo(D_803AFFEC) # addiu $a0, $a0, -0x14
|
||||
|
||||
@@ -7,7 +7,7 @@ glabel func_800B9300
|
||||
/* 0B9F14 800B9314 8C8E0000 */ lw $t6, ($a0)
|
||||
/* 0B9F18 800B9318 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 0B9F1C 800B931C AC8E0004 */ sw $t6, 4($a0)
|
||||
/* 0B9F20 800B9320 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0B9F20 800B9320 0C02E3FF */ jal soundAlloc
|
||||
/* 0B9F24 800B9324 8E050000 */ lw $a1, ($s0)
|
||||
/* 0B9F28 800B9328 3C04803B */ lui $a0, %hi(D_803AFDE0) # $a0, 0x803b
|
||||
/* 0B9F2C 800B932C 2484FDE0 */ addiu $a0, %lo(D_803AFDE0) # addiu $a0, $a0, -0x220
|
||||
@@ -16,7 +16,7 @@ glabel func_800B9300
|
||||
/* 0B9F38 800B9338 8E060000 */ lw $a2, ($s0)
|
||||
/* 0B9F3C 800B933C 3C04803B */ lui $a0, %hi(D_803AFC38) # $a0, 0x803b
|
||||
/* 0B9F40 800B9340 2484FC38 */ addiu $a0, %lo(D_803AFC38) # addiu $a0, $a0, -0x3c8
|
||||
/* 0B9F44 800B9344 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0B9F44 800B9344 0C02E3FF */ jal soundAlloc
|
||||
/* 0B9F48 800B9348 8E050004 */ lw $a1, 4($s0)
|
||||
/* 0B9F4C 800B934C 3C04803B */ lui $a0, %hi(D_803AFFB0) # $a0, 0x803b
|
||||
/* 0B9F50 800B9350 2484FFB0 */ addiu $a0, %lo(D_803AFFB0) # addiu $a0, $a0, -0x50
|
||||
@@ -25,7 +25,7 @@ glabel func_800B9300
|
||||
/* 0B9F5C 800B935C 8E060004 */ lw $a2, 4($s0)
|
||||
/* 0B9F60 800B9360 3C04803B */ lui $a0, %hi(D_803AFC38) # $a0, 0x803b
|
||||
/* 0B9F64 800B9364 2484FC38 */ addiu $a0, %lo(D_803AFC38) # addiu $a0, $a0, -0x3c8
|
||||
/* 0B9F68 800B9368 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0B9F68 800B9368 0C02E3FF */ jal soundAlloc
|
||||
/* 0B9F6C 800B936C 8E050008 */ lw $a1, 8($s0)
|
||||
/* 0B9F70 800B9370 3C04803B */ lui $a0, %hi(D_803B0180) # $a0, 0x803b
|
||||
/* 0B9F74 800B9374 24840180 */ addiu $a0, %lo(D_803B0180) # addiu $a0, $a0, 0x180
|
||||
|
||||
@@ -68,8 +68,8 @@ glabel func_800B93BC
|
||||
/* 0BA0A4 800B94A4 AFB90020 */ sw $t9, 0x20($sp)
|
||||
/* 0BA0A8 800B94A8 24040004 */ li $a0, 4
|
||||
/* 0BA0AC 800B94AC 1489001A */ bne $a0, $t1, .L800B9518
|
||||
/* 0BA0B0 800B94B0 3C05803B */ lui $a1, %hi(D_803B70B0) # $a1, 0x803b
|
||||
/* 0BA0B4 800B94B4 8CA570B0 */ lw $a1, %lo(D_803B70B0)($a1)
|
||||
/* 0BA0B0 800B94B0 3C05803B */ lui $a1, %hi(gMaxSimultaneousNotes) # $a1, 0x803b
|
||||
/* 0BA0B4 800B94B4 8CA570B0 */ lw $a1, %lo(gMaxSimultaneousNotes)($a1)
|
||||
/* 0BA0B8 800B94B8 00001825 */ move $v1, $zero
|
||||
/* 0BA0BC 800B94BC 3C02803B */ lui $v0, %hi(D_803B1508) # $v0, 0x803b
|
||||
/* 0BA0C0 800B94C0 18A0000D */ blez $a1, .L800B94F8
|
||||
@@ -99,8 +99,8 @@ glabel func_800B93BC
|
||||
/* 0BA114 800B9514 A04E0000 */ sb $t6, ($v0)
|
||||
.L800B9518:
|
||||
/* 0BA118 800B9518 148A001E */ bne $a0, $t2, .L800B9594
|
||||
/* 0BA11C 800B951C 3C05803B */ lui $a1, %hi(D_803B70B0) # $a1, 0x803b
|
||||
/* 0BA120 800B9520 8CA570B0 */ lw $a1, %lo(D_803B70B0)($a1)
|
||||
/* 0BA11C 800B951C 3C05803B */ lui $a1, %hi(gMaxSimultaneousNotes) # $a1, 0x803b
|
||||
/* 0BA120 800B9520 8CA570B0 */ lw $a1, %lo(gMaxSimultaneousNotes)($a1)
|
||||
/* 0BA124 800B9524 00001825 */ move $v1, $zero
|
||||
/* 0BA128 800B9528 3C02803B */ lui $v0, %hi(D_803B1508) # $v0, 0x803b
|
||||
/* 0BA12C 800B952C 18A0000E */ blez $a1, .L800B9568
|
||||
@@ -224,8 +224,8 @@ glabel func_800B93BC
|
||||
/* 0BA2C0 800B96C0 558F0032 */ bnel $t4, $t7, .L800B978C
|
||||
/* 0BA2C4 800B96C4 8CE20000 */ lw $v0, ($a3)
|
||||
/* 0BA2C8 800B96C8 150B0017 */ bne $t0, $t3, .L800B9728
|
||||
/* 0BA2CC 800B96CC 3C05803B */ lui $a1, %hi(D_803B70B0) # $a1, 0x803b
|
||||
/* 0BA2D0 800B96D0 8CA570B0 */ lw $a1, %lo(D_803B70B0)($a1)
|
||||
/* 0BA2CC 800B96CC 3C05803B */ lui $a1, %hi(gMaxSimultaneousNotes) # $a1, 0x803b
|
||||
/* 0BA2D0 800B96D0 8CA570B0 */ lw $a1, %lo(gMaxSimultaneousNotes)($a1)
|
||||
/* 0BA2D4 800B96D4 00001825 */ move $v1, $zero
|
||||
/* 0BA2D8 800B96D8 3C02803B */ lui $v0, %hi(D_803B1508) # $v0, 0x803b
|
||||
/* 0BA2DC 800B96DC 18A0000E */ blez $a1, .L800B9718
|
||||
@@ -252,8 +252,8 @@ glabel func_800B93BC
|
||||
/* 0BA324 800B9724 ACE00000 */ sw $zero, ($a3)
|
||||
.L800B9728:
|
||||
/* 0BA328 800B9728 15090017 */ bne $t0, $t1, .L800B9788
|
||||
/* 0BA32C 800B972C 3C05803B */ lui $a1, %hi(D_803B70B0) # $a1, 0x803b
|
||||
/* 0BA330 800B9730 8CA570B0 */ lw $a1, %lo(D_803B70B0)($a1)
|
||||
/* 0BA32C 800B972C 3C05803B */ lui $a1, %hi(gMaxSimultaneousNotes) # $a1, 0x803b
|
||||
/* 0BA330 800B9730 8CA570B0 */ lw $a1, %lo(gMaxSimultaneousNotes)($a1)
|
||||
/* 0BA334 800B9734 00001825 */ move $v1, $zero
|
||||
/* 0BA338 800B9738 3C02803B */ lui $v0, %hi(D_803B1508) # $v0, 0x803b
|
||||
/* 0BA33C 800B973C 18A0000E */ blez $a1, .L800B9778
|
||||
@@ -445,7 +445,7 @@ glabel func_800B93BC
|
||||
/* 0BA5CC 800B99CC 01CF0019 */ multu $t6, $t7
|
||||
/* 0BA5D0 800B99D0 AFA7005C */ sw $a3, 0x5c($sp)
|
||||
/* 0BA5D4 800B99D4 00002812 */ mflo $a1
|
||||
/* 0BA5D8 800B99D8 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0BA5D8 800B99D8 0C02E3FF */ jal soundAlloc
|
||||
/* 0BA5DC 800B99DC 00000000 */ nop
|
||||
/* 0BA5E0 800B99E0 8E180000 */ lw $t8, ($s0)
|
||||
/* 0BA5E4 800B99E4 240D000C */ li $t5, 12
|
||||
|
||||
@@ -39,7 +39,7 @@ glabel L800BA094
|
||||
/* 0BAC94 800BA094 3C08803B */ lui $t0, %hi(D_803B0504) # $t0, 0x803b
|
||||
/* 0BAC98 800BA098 25080504 */ addiu $t0, %lo(D_803B0504) # addiu $t0, $t0, 0x504
|
||||
/* 0BAC9C 800BA09C 8D020000 */ lw $v0, ($t0)
|
||||
/* 0BACA0 800BA0A0 3C06803B */ lui $a2, %hi(D_803B70B0) # $a2, 0x803b
|
||||
/* 0BACA0 800BA0A0 3C06803B */ lui $a2, %hi(gMaxSimultaneousNotes) # $a2, 0x803b
|
||||
/* 0BACA4 800BA0A4 10400005 */ beqz $v0, .L800BA0BC
|
||||
/* 0BACA8 800BA0A8 2449FFFF */ addiu $t1, $v0, -1
|
||||
/* 0BACAC 800BA0AC 0C02E7EE */ jal func_800B9FB8
|
||||
@@ -47,14 +47,14 @@ glabel L800BA094
|
||||
/* 0BACB4 800BA0B4 1000005A */ b .L800BA220
|
||||
/* 0BACB8 800BA0B8 924E0000 */ lbu $t6, ($s2)
|
||||
.L800BA0BC:
|
||||
/* 0BACBC 800BA0BC 8CC670B0 */ lw $a2, %lo(D_803B70B0)($a2)
|
||||
/* 0BACBC 800BA0BC 8CC670B0 */ lw $a2, %lo(gMaxSimultaneousNotes)($a2)
|
||||
/* 0BACC0 800BA0C0 00002025 */ move $a0, $zero
|
||||
/* 0BACC4 800BA0C4 00001825 */ move $v1, $zero
|
||||
/* 0BACC8 800BA0C8 18C0001A */ blez $a2, .L800BA134
|
||||
/* 0BACCC 800BA0CC 3C07803B */ lui $a3, %hi(D_803B7088) # $a3, 0x803b
|
||||
/* 0BACCC 800BA0CC 3C07803B */ lui $a3, %hi(gAudioBufferParameters) # $a3, 0x803b
|
||||
/* 0BACD0 800BA0D0 3C05803B */ lui $a1, %hi(D_803B1508) # $a1, 0x803b
|
||||
/* 0BACD4 800BA0D4 24A51508 */ addiu $a1, %lo(D_803B1508) # addiu $a1, $a1, 0x1508
|
||||
/* 0BACD8 800BA0D8 24E77088 */ addiu $a3, %lo(D_803B7088) # addiu $a3, $a3, 0x7088
|
||||
/* 0BACD8 800BA0D8 24E77088 */ addiu $a3, %lo(gAudioBufferParameters) # addiu $a3, $a3, 0x7088
|
||||
.L800BA0DC:
|
||||
/* 0BACDC 800BA0DC 8CAA0000 */ lw $t2, ($a1)
|
||||
/* 0BACE0 800BA0E0 24840001 */ addiu $a0, $a0, 1
|
||||
@@ -67,14 +67,14 @@ glabel L800BA094
|
||||
/* 0BACFC 800BA0FC 51A0000B */ beql $t5, $zero, .L800BA12C
|
||||
/* 0BAD00 800BA100 0086082A */ slt $at, $a0, $a2
|
||||
/* 0BAD04 800BA104 C4E40018 */ lwc1 $f4, 0x18($a3)
|
||||
/* 0BAD08 800BA108 3C06803B */ lui $a2, %hi(D_803B70B0) # $a2, 0x803b
|
||||
/* 0BAD08 800BA108 3C06803B */ lui $a2, %hi(gMaxSimultaneousNotes) # $a2, 0x803b
|
||||
/* 0BAD0C 800BA10C E4440068 */ swc1 $f4, 0x68($v0)
|
||||
/* 0BAD10 800BA110 8CAE0000 */ lw $t6, ($a1)
|
||||
/* 0BAD14 800BA114 01C31021 */ addu $v0, $t6, $v1
|
||||
/* 0BAD18 800BA118 904F0058 */ lbu $t7, 0x58($v0)
|
||||
/* 0BAD1C 800BA11C 35F80010 */ ori $t8, $t7, 0x10
|
||||
/* 0BAD20 800BA120 A0580058 */ sb $t8, 0x58($v0)
|
||||
/* 0BAD24 800BA124 8CC670B0 */ lw $a2, %lo(D_803B70B0)($a2)
|
||||
/* 0BAD24 800BA124 8CC670B0 */ lw $a2, %lo(gMaxSimultaneousNotes)($a2)
|
||||
/* 0BAD28 800BA128 0086082A */ slt $at, $a0, $a2
|
||||
.L800BA12C:
|
||||
/* 0BAD2C 800BA12C 1420FFEB */ bnez $at, .L800BA0DC
|
||||
|
||||
@@ -8,7 +8,7 @@ glabel func_800BA250
|
||||
/* 0BAE68 800BA268 01EE7821 */ addu $t7, $t7, $t6
|
||||
/* 0BAE6C 800BA26C 000F78C0 */ sll $t7, $t7, 3
|
||||
/* 0BAE70 800BA270 2718A4D8 */ addiu $t8, %lo(D_800EA4D8) # addiu $t8, $t8, -0x5b28
|
||||
/* 0BAE74 800BA274 3C01803B */ lui $at, %hi(D_803B6E58) # $at, 0x803b
|
||||
/* 0BAE74 800BA274 3C01803B */ lui $at, %hi(gSampleDmaNumListItems) # $at, 0x803b
|
||||
/* 0BAE78 800BA278 AFBF003C */ sw $ra, 0x3c($sp)
|
||||
/* 0BAE7C 800BA27C AFBE0038 */ sw $fp, 0x38($sp)
|
||||
/* 0BAE80 800BA280 AFB70034 */ sw $s7, 0x34($sp)
|
||||
@@ -19,10 +19,10 @@ glabel func_800BA250
|
||||
/* 0BAE94 800BA294 AFB1001C */ sw $s1, 0x1c($sp)
|
||||
/* 0BAE98 800BA298 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 0BAE9C 800BA29C 01F8B021 */ addu $s6, $t7, $t8
|
||||
/* 0BAEA0 800BA2A0 AC206E58 */ sw $zero, %lo(D_803B6E58)($at)
|
||||
/* 0BAEA0 800BA2A0 AC206E58 */ sw $zero, %lo(gSampleDmaNumListItems)($at)
|
||||
/* 0BAEA4 800BA2A4 8ED90000 */ lw $t9, ($s6)
|
||||
/* 0BAEA8 800BA2A8 3C14803B */ lui $s4, %hi(D_803B7088) # $s4, 0x803b
|
||||
/* 0BAEAC 800BA2AC 26947088 */ addiu $s4, %lo(D_803B7088) # addiu $s4, $s4, 0x7088
|
||||
/* 0BAEA8 800BA2A8 3C14803B */ lui $s4, %hi(gAudioBufferParameters) # $s4, 0x803b
|
||||
/* 0BAEAC 800BA2AC 26947088 */ addiu $s4, %lo(gAudioBufferParameters) # addiu $s4, $s4, 0x7088
|
||||
/* 0BAEB0 800BA2B0 A6990002 */ sh $t9, 2($s4)
|
||||
/* 0BAEB4 800BA2B4 0C0343E0 */ jal osAiSetFrequency
|
||||
/* 0BAEB8 800BA2B8 3324FFFF */ andi $a0, $t9, 0xffff
|
||||
@@ -30,8 +30,8 @@ glabel func_800BA250
|
||||
/* 0BAEC0 800BA2C0 3C0D803B */ lui $t5, %hi(D_803B717C) # $t5, 0x803b
|
||||
/* 0BAEC4 800BA2C4 8DAD717C */ lw $t5, %lo(D_803B717C)($t5)
|
||||
/* 0BAEC8 800BA2C8 96870002 */ lhu $a3, 2($s4)
|
||||
/* 0BAECC 800BA2CC 3C0C803B */ lui $t4, %hi(D_803B70B0) # $t4, 0x803b
|
||||
/* 0BAED0 800BA2D0 258C70B0 */ addiu $t4, %lo(D_803B70B0) # addiu $t4, $t4, 0x70b0
|
||||
/* 0BAECC 800BA2CC 3C0C803B */ lui $t4, %hi(gMaxSimultaneousNotes) # $t4, 0x803b
|
||||
/* 0BAED0 800BA2D0 258C70B0 */ addiu $t4, %lo(gMaxSimultaneousNotes) # addiu $t4, $t4, 0x70b0
|
||||
/* 0BAED4 800BA2D4 00ED001A */ div $zero, $a3, $t5
|
||||
/* 0BAED8 800BA2D8 00007012 */ mflo $t6
|
||||
/* 0BAEDC 800BA2DC 25CF000F */ addiu $t7, $t6, 0xf
|
||||
@@ -227,28 +227,28 @@ glabel func_800BA250
|
||||
/* 0BB1B8 800BA5B8 AC8D0008 */ sw $t5, 8($a0)
|
||||
/* 0BB1BC 800BA5BC 0C02E378 */ jal func_800B8DE0
|
||||
/* 0BB1C0 800BA5C0 00000000 */ nop
|
||||
/* 0BB1C4 800BA5C4 3C05803B */ lui $a1, %hi(D_803B70B0) # $a1, 0x803b
|
||||
/* 0BB1C8 800BA5C8 8CA570B0 */ lw $a1, %lo(D_803B70B0)($a1)
|
||||
/* 0BB1CC 800BA5CC 3C13803B */ lui $s3, %hi(D_803AFBE8) # $s3, 0x803b
|
||||
/* 0BB1D0 800BA5D0 2673FBE8 */ addiu $s3, %lo(D_803AFBE8) # addiu $s3, $s3, -0x418
|
||||
/* 0BB1C4 800BA5C4 3C05803B */ lui $a1, %hi(gMaxSimultaneousNotes) # $a1, 0x803b
|
||||
/* 0BB1C8 800BA5C8 8CA570B0 */ lw $a1, %lo(gMaxSimultaneousNotes)($a1)
|
||||
/* 0BB1CC 800BA5CC 3C13803B */ lui $s3, %hi(gNotesAndBuffersPool) # $s3, 0x803b
|
||||
/* 0BB1D0 800BA5D0 2673FBE8 */ addiu $s3, %lo(gNotesAndBuffersPool) # addiu $s3, $s3, -0x418
|
||||
/* 0BB1D4 800BA5D4 00057880 */ sll $t7, $a1, 2
|
||||
/* 0BB1D8 800BA5D8 01E57823 */ subu $t7, $t7, $a1
|
||||
/* 0BB1DC 800BA5DC 000F2980 */ sll $a1, $t7, 6
|
||||
/* 0BB1E0 800BA5E0 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0BB1E0 800BA5E0 0C02E3FF */ jal soundAlloc
|
||||
/* 0BB1E4 800BA5E4 02602025 */ move $a0, $s3
|
||||
/* 0BB1E8 800BA5E8 3C01803B */ lui $at, %hi(D_803B1508) # $at, 0x803b
|
||||
/* 0BB1EC 800BA5EC 0C02F74D */ jal func_800BDD34
|
||||
/* 0BB1F0 800BA5F0 AC221508 */ sw $v0, %lo(D_803B1508)($at)
|
||||
/* 0BB1F4 800BA5F4 0C02F4DA */ jal func_800BD368
|
||||
/* 0BB1F8 800BA5F8 00000000 */ nop
|
||||
/* 0BB1FC 800BA5FC 3C18803B */ lui $t8, %hi(D_803B70B0) # $t8, 0x803b
|
||||
/* 0BB200 800BA600 8F1870B0 */ lw $t8, %lo(D_803B70B0)($t8)
|
||||
/* 0BB1FC 800BA5FC 3C18803B */ lui $t8, %hi(gMaxSimultaneousNotes) # $t8, 0x803b
|
||||
/* 0BB200 800BA600 8F1870B0 */ lw $t8, %lo(gMaxSimultaneousNotes)($t8)
|
||||
/* 0BB204 800BA604 868E000C */ lh $t6, 0xc($s4)
|
||||
/* 0BB208 800BA608 02602025 */ move $a0, $s3
|
||||
/* 0BB20C 800BA60C 01D80019 */ multu $t6, $t8
|
||||
/* 0BB210 800BA610 00002812 */ mflo $a1
|
||||
/* 0BB214 800BA614 0005C900 */ sll $t9, $a1, 4
|
||||
/* 0BB218 800BA618 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0BB218 800BA618 0C02E3FF */ jal soundAlloc
|
||||
/* 0BB21C 800BA61C 03202825 */ move $a1, $t9
|
||||
/* 0BB220 800BA620 3C01803B */ lui $at, %hi(gNoteSubsEu) # $at, 0x803b
|
||||
/* 0BB224 800BA624 3C10803B */ lui $s0, %hi(D_803B70C8) # $s0, 0x803b
|
||||
@@ -260,7 +260,7 @@ glabel func_800BA250
|
||||
/* 0BB238 800BA638 8E450000 */ lw $a1, ($s2)
|
||||
/* 0BB23C 800BA63C 02602025 */ move $a0, $s3
|
||||
/* 0BB240 800BA640 000568C0 */ sll $t5, $a1, 3
|
||||
/* 0BB244 800BA644 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0BB244 800BA644 0C02E3FF */ jal soundAlloc
|
||||
/* 0BB248 800BA648 01A02825 */ move $a1, $t5
|
||||
/* 0BB24C 800BA64C 26100004 */ addiu $s0, $s0, 4
|
||||
/* 0BB250 800BA650 1611FFF9 */ bne $s0, $s1, .L800BA638
|
||||
@@ -299,13 +299,13 @@ glabel func_800BA250
|
||||
/* 0BB2CC 800BA6CC 94580002 */ lhu $t8, 2($v0)
|
||||
/* 0BB2D0 800BA6D0 A25E0001 */ sb $fp, 1($s2)
|
||||
/* 0BB2D4 800BA6D4 03202825 */ move $a1, $t9
|
||||
/* 0BB2D8 800BA6D8 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0BB2D8 800BA6D8 0C02E3FF */ jal soundAlloc
|
||||
/* 0BB2DC 800BA6DC A6580008 */ sh $t8, 8($s2)
|
||||
/* 0BB2E0 800BA6E0 96450006 */ lhu $a1, 6($s2)
|
||||
/* 0BB2E4 800BA6E4 AE420018 */ sw $v0, 0x18($s2)
|
||||
/* 0BB2E8 800BA6E8 02602025 */ move $a0, $s3
|
||||
/* 0BB2EC 800BA6EC 00056840 */ sll $t5, $a1, 1
|
||||
/* 0BB2F0 800BA6F0 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0BB2F0 800BA6F0 0C02E3FF */ jal soundAlloc
|
||||
/* 0BB2F4 800BA6F4 01A02825 */ move $a1, $t5
|
||||
/* 0BB2F8 800BA6F8 92430004 */ lbu $v1, 4($s2)
|
||||
/* 0BB2FC 800BA6FC 964F0006 */ lhu $t7, 6($s2)
|
||||
@@ -337,19 +337,19 @@ glabel func_800BA250
|
||||
/* 0BB35C 800BA75C A64D000A */ sh $t5, 0xa($s2)
|
||||
/* 0BB360 800BA760 02602025 */ move $a0, $s3
|
||||
/* 0BB364 800BA764 24050020 */ li $a1, 32
|
||||
/* 0BB368 800BA768 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0BB368 800BA768 0C02E3FF */ jal soundAlloc
|
||||
/* 0BB36C 800BA76C 00008825 */ move $s1, $zero
|
||||
/* 0BB370 800BA770 AE420020 */ sw $v0, 0x20($s2)
|
||||
/* 0BB374 800BA774 02602025 */ move $a0, $s3
|
||||
/* 0BB378 800BA778 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0BB378 800BA778 0C02E3FF */ jal soundAlloc
|
||||
/* 0BB37C 800BA77C 24050020 */ li $a1, 32
|
||||
/* 0BB380 800BA780 AE420024 */ sw $v0, 0x24($s2)
|
||||
/* 0BB384 800BA784 02602025 */ move $a0, $s3
|
||||
/* 0BB388 800BA788 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0BB388 800BA788 0C02E3FF */ jal soundAlloc
|
||||
/* 0BB38C 800BA78C 24050020 */ li $a1, 32
|
||||
/* 0BB390 800BA790 AE420028 */ sw $v0, 0x28($s2)
|
||||
/* 0BB394 800BA794 02602025 */ move $a0, $s3
|
||||
/* 0BB398 800BA798 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0BB398 800BA798 0C02E3FF */ jal soundAlloc
|
||||
/* 0BB39C 800BA79C 24050020 */ li $a1, 32
|
||||
/* 0BB3A0 800BA7A0 868F000C */ lh $t7, 0xc($s4)
|
||||
/* 0BB3A4 800BA7A4 AE42002C */ sw $v0, 0x2c($s2)
|
||||
@@ -358,13 +358,13 @@ glabel func_800BA250
|
||||
/* 0BB3B0 800BA7B0 02408025 */ move $s0, $s2
|
||||
/* 0BB3B4 800BA7B4 02602025 */ move $a0, $s3
|
||||
.L800BA7B8:
|
||||
/* 0BB3B8 800BA7B8 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0BB3B8 800BA7B8 0C02E3FF */ jal soundAlloc
|
||||
/* 0BB3BC 800BA7BC 24050300 */ li $a1, 768
|
||||
/* 0BB3C0 800BA7C0 244E0180 */ addiu $t6, $v0, 0x180
|
||||
/* 0BB3C4 800BA7C4 AE020034 */ sw $v0, 0x34($s0)
|
||||
/* 0BB3C8 800BA7C8 AE0E0038 */ sw $t6, 0x38($s0)
|
||||
/* 0BB3CC 800BA7CC 02602025 */ move $a0, $s3
|
||||
/* 0BB3D0 800BA7D0 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0BB3D0 800BA7D0 0C02E3FF */ jal soundAlloc
|
||||
/* 0BB3D4 800BA7D4 24050300 */ li $a1, 768
|
||||
/* 0BB3D8 800BA7D8 24580180 */ addiu $t8, $v0, 0x180
|
||||
/* 0BB3DC 800BA7DC AE020098 */ sw $v0, 0x98($s0)
|
||||
@@ -384,9 +384,9 @@ glabel func_800BA250
|
||||
/* 0BB40C 800BA80C 5420FFA5 */ bnel $at, $zero, .L800BA6A4
|
||||
/* 0BB410 800BA810 8ED80008 */ lw $t8, 8($s6)
|
||||
.L800BA814:
|
||||
/* 0BB414 800BA814 3C04803B */ lui $a0, %hi(D_803B70B0) # $a0, 0x803b
|
||||
/* 0BB414 800BA814 3C04803B */ lui $a0, %hi(gMaxSimultaneousNotes) # $a0, 0x803b
|
||||
/* 0BB418 800BA818 0C02EC0C */ jal func_800BB030
|
||||
/* 0BB41C 800BA81C 8C8470B0 */ lw $a0, %lo(D_803B70B0)($a0)
|
||||
/* 0BB41C 800BA81C 8C8470B0 */ lw $a0, %lo(gMaxSimultaneousNotes)($a0)
|
||||
/* 0BB420 800BA820 0C033624 */ jal osWritebackDCacheAll
|
||||
/* 0BB424 800BA824 00000000 */ nop
|
||||
/* 0BB428 800BA828 8FBF003C */ lw $ra, 0x3c($sp)
|
||||
|
||||
@@ -81,7 +81,7 @@ glabel func_800BA858
|
||||
.L800BA968:
|
||||
/* 0BB568 800BA968 AFA50034 */ sw $a1, 0x34($sp)
|
||||
/* 0BB56C 800BA96C AFA60038 */ sw $a2, 0x38($sp)
|
||||
/* 0BB570 800BA970 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0BB570 800BA970 0C02E3FF */ jal soundAlloc
|
||||
/* 0BB574 800BA974 AFA70030 */ sw $a3, 0x30($sp)
|
||||
/* 0BB578 800BA978 8FA60038 */ lw $a2, 0x38($sp)
|
||||
/* 0BB57C 800BA97C 3C0D803B */ lui $t5, %hi(D_803B01B8) # $t5, 0x803b
|
||||
@@ -96,7 +96,7 @@ glabel func_800BA858
|
||||
/* 0BB5A0 800BA9A0 00E02025 */ move $a0, $a3
|
||||
/* 0BB5A4 800BA9A4 00402825 */ move $a1, $v0
|
||||
/* 0BB5A8 800BA9A8 8FA60034 */ lw $a2, 0x34($sp)
|
||||
/* 0BB5AC 800BA9AC 0C02EAA0 */ jal func_800BAA80
|
||||
/* 0BB5AC 800BA9AC 0C02EAA0 */ jal audio_dma_copy_immediate
|
||||
/* 0BB5B0 800BA9B0 AFA30020 */ sw $v1, 0x20($sp)
|
||||
/* 0BB5B4 800BA9B4 8FA30020 */ lw $v1, 0x20($sp)
|
||||
/* 0BB5B8 800BA9B8 8FAE0034 */ lw $t6, 0x34($sp)
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
glabel func_800B8FFC
|
||||
glabel soundAlloc
|
||||
/* 0B9BFC 800B8FFC 8C860004 */ lw $a2, 4($a0)
|
||||
/* 0B9C00 800B9000 8C8F0000 */ lw $t7, ($a0)
|
||||
/* 0B9C04 800B9004 8C980008 */ lw $t8, 8($a0)
|
||||
@@ -118,17 +118,17 @@ glabel audio_init
|
||||
/* 0BCE84 800BC284 24846720 */ addiu $a0, %lo(D_803B6720) # addiu $a0, $a0, 0x6720
|
||||
/* 0BCE88 800BC288 0C033358 */ jal osCreateMesgQueue
|
||||
/* 0BCE8C 800BC28C 24060001 */ li $a2, 1
|
||||
/* 0BCE90 800BC290 3C04803B */ lui $a0, %hi(D_803B6008) # $a0, 0x803b
|
||||
/* 0BCE94 800BC294 3C05803B */ lui $a1, %hi(D_803B6020) # $a1, 0x803b
|
||||
/* 0BCE98 800BC298 24A56020 */ addiu $a1, %lo(D_803B6020) # addiu $a1, $a1, 0x6020
|
||||
/* 0BCE9C 800BC29C 24846008 */ addiu $a0, %lo(D_803B6008) # addiu $a0, $a0, 0x6008
|
||||
/* 0BCE90 800BC290 3C04803B */ lui $a0, %hi(gCurrAudioFrameDmaQueue) # $a0, 0x803b
|
||||
/* 0BCE94 800BC294 3C05803B */ lui $a1, %hi(gCurrAudioFrameDmaMesgBufs) # $a1, 0x803b
|
||||
/* 0BCE98 800BC298 24A56020 */ addiu $a1, %lo(gCurrAudioFrameDmaMesgBufs) # addiu $a1, $a1, 0x6020
|
||||
/* 0BCE9C 800BC29C 24846008 */ addiu $a0, %lo(gCurrAudioFrameDmaQueue) # addiu $a0, $a0, 0x6008
|
||||
/* 0BCEA0 800BC2A0 0C033358 */ jal osCreateMesgQueue
|
||||
/* 0BCEA4 800BC2A4 24060040 */ li $a2, 64
|
||||
/* 0BCEA8 800BC2A8 3C01803B */ lui $at, %hi(D_803B70BC) # $at, 0x803b
|
||||
/* 0BCEAC 800BC2AC AC2070BC */ sw $zero, %lo(D_803B70BC)($at)
|
||||
/* 0BCEB0 800BC2B0 3C01803B */ lui $at, %hi(D_803B6E58) # $at, 0x803b
|
||||
/* 0BCEA8 800BC2A8 3C01803B */ lui $at, %hi(gCurrAudioFrameDmaCount) # $at, 0x803b
|
||||
/* 0BCEAC 800BC2AC AC2070BC */ sw $zero, %lo(gCurrAudioFrameDmaCount)($at)
|
||||
/* 0BCEB0 800BC2B0 3C01803B */ lui $at, %hi(gSampleDmaNumListItems) # $at, 0x803b
|
||||
/* 0BCEB4 800BC2B4 3C04800F */ lui $a0, %hi(D_800EA5D4) # $a0, 0x800f
|
||||
/* 0BCEB8 800BC2B8 AC206E58 */ sw $zero, %lo(D_803B6E58)($at)
|
||||
/* 0BCEB8 800BC2B8 AC206E58 */ sw $zero, %lo(gSampleDmaNumListItems)($at)
|
||||
/* 0BCEBC 800BC2BC 0C02E43C */ jal func_800B90F0
|
||||
/* 0BCEC0 800BC2C0 8C84A5D4 */ lw $a0, %lo(D_800EA5D4)($a0)
|
||||
/* 0BCEC4 800BC2C4 3C06803B */ lui $a2, %hi(D_803B7180) # $a2, 0x803b
|
||||
@@ -141,7 +141,7 @@ glabel audio_init
|
||||
/* 0BCEE0 800BC2E0 02802025 */ move $a0, $s4
|
||||
.L800BC2E4:
|
||||
/* 0BCEE4 800BC2E4 24050A00 */ li $a1, 2560
|
||||
/* 0BCEE8 800BC2E8 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0BCEE8 800BC2E8 0C02E3FF */ jal soundAlloc
|
||||
/* 0BCEEC 800BC2EC AFA6003C */ sw $a2, 0x3c($sp)
|
||||
/* 0BCEF0 800BC2F0 8FA6003C */ lw $a2, 0x3c($sp)
|
||||
/* 0BCEF4 800BC2F4 00001825 */ move $v1, $zero
|
||||
@@ -180,7 +180,7 @@ glabel audio_init
|
||||
/* 0BCF74 800BC374 AE350000 */ sw $s5, ($s1)
|
||||
/* 0BCF78 800BC378 02A02825 */ move $a1, $s5
|
||||
/* 0BCF7C 800BC37C 02402025 */ move $a0, $s2
|
||||
/* 0BCF80 800BC380 0C02EAA0 */ jal func_800BAA80
|
||||
/* 0BCF80 800BC380 0C02EAA0 */ jal audio_dma_copy_immediate
|
||||
/* 0BCF84 800BC384 24060010 */ li $a2, 16
|
||||
/* 0BCF88 800BC388 8E280000 */ lw $t0, ($s1)
|
||||
/* 0BCF8C 800BC38C 3C02803B */ lui $v0, %hi(D_803B707C) # $v0, 0x803b
|
||||
@@ -194,12 +194,12 @@ glabel audio_init
|
||||
/* 0BCFAC 800BC3AC 26100013 */ addiu $s0, $s0, 0x13
|
||||
/* 0BCFB0 800BC3B0 02012824 */ and $a1, $s0, $at
|
||||
/* 0BCFB4 800BC3B4 00A08025 */ move $s0, $a1
|
||||
/* 0BCFB8 800BC3B8 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0BCFB8 800BC3B8 0C02E3FF */ jal soundAlloc
|
||||
/* 0BCFBC 800BC3BC A4490000 */ sh $t1, ($v0)
|
||||
/* 0BCFC0 800BC3C0 AE220000 */ sw $v0, ($s1)
|
||||
/* 0BCFC4 800BC3C4 02402025 */ move $a0, $s2
|
||||
/* 0BCFC8 800BC3C8 00402825 */ move $a1, $v0
|
||||
/* 0BCFCC 800BC3CC 0C02EAA0 */ jal func_800BAA80
|
||||
/* 0BCFCC 800BC3CC 0C02EAA0 */ jal audio_dma_copy_immediate
|
||||
/* 0BCFD0 800BC3D0 02003025 */ move $a2, $s0
|
||||
/* 0BCFD4 800BC3D4 8E240000 */ lw $a0, ($s1)
|
||||
/* 0BCFD8 800BC3D8 0C02ED0F */ jal func_800BB43C
|
||||
@@ -211,7 +211,7 @@ glabel audio_init
|
||||
/* 0BCFF0 800BC3F0 AE550000 */ sw $s5, ($s2)
|
||||
/* 0BCFF4 800BC3F4 02202025 */ move $a0, $s1
|
||||
/* 0BCFF8 800BC3F8 02A02825 */ move $a1, $s5
|
||||
/* 0BCFFC 800BC3FC 0C02EAA0 */ jal func_800BAA80
|
||||
/* 0BCFFC 800BC3FC 0C02EAA0 */ jal audio_dma_copy_immediate
|
||||
/* 0BD000 800BC400 24060010 */ li $a2, 16
|
||||
/* 0BD004 800BC404 8E4C0000 */ lw $t4, ($s2)
|
||||
/* 0BD008 800BC408 2401FFF0 */ li $at, -16
|
||||
@@ -220,12 +220,12 @@ glabel audio_init
|
||||
/* 0BD014 800BC414 001380C0 */ sll $s0, $s3, 3
|
||||
/* 0BD018 800BC418 26100013 */ addiu $s0, $s0, 0x13
|
||||
/* 0BD01C 800BC41C 02012824 */ and $a1, $s0, $at
|
||||
/* 0BD020 800BC420 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0BD020 800BC420 0C02E3FF */ jal soundAlloc
|
||||
/* 0BD024 800BC424 00A08025 */ move $s0, $a1
|
||||
/* 0BD028 800BC428 AE420000 */ sw $v0, ($s2)
|
||||
/* 0BD02C 800BC42C 02202025 */ move $a0, $s1
|
||||
/* 0BD030 800BC430 00402825 */ move $a1, $v0
|
||||
/* 0BD034 800BC434 0C02EAA0 */ jal func_800BAA80
|
||||
/* 0BD034 800BC434 0C02EAA0 */ jal audio_dma_copy_immediate
|
||||
/* 0BD038 800BC438 02003025 */ move $a2, $s0
|
||||
/* 0BD03C 800BC43C 8E440000 */ lw $a0, ($s2)
|
||||
/* 0BD040 800BC440 0C02ED0F */ jal func_800BB43C
|
||||
@@ -233,7 +233,7 @@ glabel audio_init
|
||||
/* 0BD048 800BC448 00132880 */ sll $a1, $s3, 2
|
||||
/* 0BD04C 800BC44C 00B32823 */ subu $a1, $a1, $s3
|
||||
/* 0BD050 800BC450 00052880 */ sll $a1, $a1, 2
|
||||
/* 0BD054 800BC454 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0BD054 800BC454 0C02E3FF */ jal soundAlloc
|
||||
/* 0BD058 800BC458 02802025 */ move $a0, $s4
|
||||
/* 0BD05C 800BC45C 3C07803B */ lui $a3, %hi(D_803B7080) # $a3, 0x803b
|
||||
/* 0BD060 800BC460 24E77080 */ addiu $a3, %lo(D_803B7080) # addiu $a3, $a3, 0x7080
|
||||
@@ -248,7 +248,7 @@ glabel audio_init
|
||||
/* 0BD080 800BC480 24060010 */ li $a2, 16
|
||||
/* 0BD084 800BC484 01D17821 */ addu $t7, $t6, $s1
|
||||
/* 0BD088 800BC488 8DE40004 */ lw $a0, 4($t7)
|
||||
/* 0BD08C 800BC48C 0C02EAA0 */ jal func_800BAA80
|
||||
/* 0BD08C 800BC48C 0C02EAA0 */ jal audio_dma_copy_immediate
|
||||
/* 0BD090 800BC490 AFA3008C */ sw $v1, 0x8c($sp)
|
||||
/* 0BD094 800BC494 3C07803B */ lui $a3, %hi(D_803B7080) # $a3, 0x803b
|
||||
/* 0BD098 800BC498 24E77080 */ addiu $a3, %lo(D_803B7080) # addiu $a3, $a3, 0x7080
|
||||
@@ -273,7 +273,7 @@ glabel audio_init
|
||||
/* 0BD0E0 800BC4E0 AE350000 */ sw $s5, ($s1)
|
||||
/* 0BD0E4 800BC4E4 02402025 */ move $a0, $s2
|
||||
/* 0BD0E8 800BC4E8 02A02825 */ move $a1, $s5
|
||||
/* 0BD0EC 800BC4EC 0C02EAA0 */ jal func_800BAA80
|
||||
/* 0BD0EC 800BC4EC 0C02EAA0 */ jal audio_dma_copy_immediate
|
||||
/* 0BD0F0 800BC4F0 24060010 */ li $a2, 16
|
||||
/* 0BD0F4 800BC4F4 8E2C0000 */ lw $t4, ($s1)
|
||||
/* 0BD0F8 800BC4F8 2401FFF0 */ li $at, -16
|
||||
@@ -283,18 +283,18 @@ glabel audio_init
|
||||
/* 0BD108 800BC508 01A08025 */ move $s0, $t5
|
||||
/* 0BD10C 800BC50C 26100013 */ addiu $s0, $s0, 0x13
|
||||
/* 0BD110 800BC510 02012824 */ and $a1, $s0, $at
|
||||
/* 0BD114 800BC514 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0BD114 800BC514 0C02E3FF */ jal soundAlloc
|
||||
/* 0BD118 800BC518 00A08025 */ move $s0, $a1
|
||||
/* 0BD11C 800BC51C AE220000 */ sw $v0, ($s1)
|
||||
/* 0BD120 800BC520 02402025 */ move $a0, $s2
|
||||
/* 0BD124 800BC524 00402825 */ move $a1, $v0
|
||||
/* 0BD128 800BC528 0C02EAA0 */ jal func_800BAA80
|
||||
/* 0BD128 800BC528 0C02EAA0 */ jal audio_dma_copy_immediate
|
||||
/* 0BD12C 800BC52C 02003025 */ move $a2, $s0
|
||||
/* 0BD130 800BC530 8E240000 */ lw $a0, ($s1)
|
||||
/* 0BD134 800BC534 0C02ED0F */ jal func_800BB43C
|
||||
/* 0BD138 800BC538 02402825 */ move $a1, $s2
|
||||
/* 0BD13C 800BC53C 02802025 */ move $a0, $s4
|
||||
/* 0BD140 800BC540 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0BD140 800BC540 0C02E3FF */ jal soundAlloc
|
||||
/* 0BD144 800BC544 24050100 */ li $a1, 256
|
||||
/* 0BD148 800BC548 3C03803B */ lui $v1, %hi(D_803B7078) # $v1, 0x803b
|
||||
/* 0BD14C 800BC54C 24637078 */ addiu $v1, %lo(D_803B7078) # addiu $v1, $v1, 0x7078
|
||||
@@ -302,12 +302,12 @@ glabel audio_init
|
||||
/* 0BD154 800BC554 AC620000 */ sw $v0, ($v1)
|
||||
/* 0BD158 800BC558 248490E0 */ addiu $a0, %lo(_instrument_setsSegmentRomStart) # addiu $a0, $a0, -0x6f20
|
||||
/* 0BD15C 800BC55C 00402825 */ move $a1, $v0
|
||||
/* 0BD160 800BC560 0C02EAA0 */ jal func_800BAA80
|
||||
/* 0BD160 800BC560 0C02EAA0 */ jal audio_dma_copy_immediate
|
||||
/* 0BD164 800BC564 24060100 */ li $a2, 256
|
||||
/* 0BD168 800BC568 3C10800F */ lui $s0, %hi(D_800EA5D8) # $s0, 0x800f
|
||||
/* 0BD16C 800BC56C 2610A5D8 */ addiu $s0, %lo(D_800EA5D8) # addiu $s0, $s0, -0x5a28
|
||||
/* 0BD170 800BC570 8E050000 */ lw $a1, ($s0)
|
||||
/* 0BD174 800BC574 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0BD174 800BC574 0C02E3FF */ jal soundAlloc
|
||||
/* 0BD178 800BC578 02802025 */ move $a0, $s4
|
||||
/* 0BD17C 800BC57C 3C04803B */ lui $a0, %hi(D_803B01B8) # $a0, 0x803b
|
||||
/* 0BD180 800BC580 248401B8 */ addiu $a0, %lo(D_803B01B8) # addiu $a0, $a0, 0x1b8
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
glabel func_800BAA80
|
||||
/* 0BB680 800BAA80 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 0BB684 800BAA84 AFA40028 */ sw $a0, 0x28($sp)
|
||||
/* 0BB688 800BAA88 AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* 0BB68C 800BAA8C AFA5002C */ sw $a1, 0x2c($sp)
|
||||
/* 0BB690 800BAA90 00A02025 */ move $a0, $a1
|
||||
/* 0BB694 800BAA94 AFA60030 */ sw $a2, 0x30($sp)
|
||||
/* 0BB698 800BAA98 0C0336E0 */ jal osInvalDCache
|
||||
/* 0BB69C 800BAA9C 00C02825 */ move $a1, $a2
|
||||
/* 0BB6A0 800BAAA0 8FAE002C */ lw $t6, 0x2c($sp)
|
||||
/* 0BB6A4 800BAAA4 8FAF0030 */ lw $t7, 0x30($sp)
|
||||
/* 0BB6A8 800BAAA8 3C18803B */ lui $t8, %hi(D_803B6720) # $t8, 0x803b
|
||||
/* 0BB6AC 800BAAAC 27186720 */ addiu $t8, %lo(D_803B6720) # addiu $t8, $t8, 0x6720
|
||||
/* 0BB6B0 800BAAB0 3C04803B */ lui $a0, %hi(D_803B6740) # $a0, 0x803b
|
||||
/* 0BB6B4 800BAAB4 24846740 */ addiu $a0, %lo(D_803B6740) # addiu $a0, $a0, 0x6740
|
||||
/* 0BB6B8 800BAAB8 AFB80018 */ sw $t8, 0x18($sp)
|
||||
/* 0BB6BC 800BAABC 24050001 */ li $a1, 1
|
||||
/* 0BB6C0 800BAAC0 00003025 */ move $a2, $zero
|
||||
/* 0BB6C4 800BAAC4 8FA70028 */ lw $a3, 0x28($sp)
|
||||
/* 0BB6C8 800BAAC8 AFAE0010 */ sw $t6, 0x10($sp)
|
||||
/* 0BB6CC 800BAACC 0C03370C */ jal osPiStartDma
|
||||
/* 0BB6D0 800BAAD0 AFAF0014 */ sw $t7, 0x14($sp)
|
||||
/* 0BB6D4 800BAAD4 3C04803B */ lui $a0, %hi(D_803B6720) # $a0, 0x803b
|
||||
/* 0BB6D8 800BAAD8 24846720 */ addiu $a0, %lo(D_803B6720) # addiu $a0, $a0, 0x6720
|
||||
/* 0BB6DC 800BAADC 00002825 */ move $a1, $zero
|
||||
/* 0BB6E0 800BAAE0 0C0335D4 */ jal osRecvMesg
|
||||
/* 0BB6E4 800BAAE4 24060001 */ li $a2, 1
|
||||
/* 0BB6E8 800BAAE8 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
/* 0BB6EC 800BAAEC 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
/* 0BB6F0 800BAAF0 03E00008 */ jr $ra
|
||||
/* 0BB6F4 800BAAF4 00000000 */ nop
|
||||
@@ -1,25 +0,0 @@
|
||||
glabel func_800BAAF8
|
||||
/* 0BB6F8 800BAAF8 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 0BB6FC 800BAAFC AFA40028 */ sw $a0, 0x28($sp)
|
||||
/* 0BB700 800BAB00 AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* 0BB704 800BAB04 AFA5002C */ sw $a1, 0x2c($sp)
|
||||
/* 0BB708 800BAB08 00A02025 */ move $a0, $a1
|
||||
/* 0BB70C 800BAB0C AFA60030 */ sw $a2, 0x30($sp)
|
||||
/* 0BB710 800BAB10 AFA70034 */ sw $a3, 0x34($sp)
|
||||
/* 0BB714 800BAB14 0C0336E0 */ jal osInvalDCache
|
||||
/* 0BB718 800BAB18 00C02825 */ move $a1, $a2
|
||||
/* 0BB71C 800BAB1C 8FAE002C */ lw $t6, 0x2c($sp)
|
||||
/* 0BB720 800BAB20 8FAF0030 */ lw $t7, 0x30($sp)
|
||||
/* 0BB724 800BAB24 8FB80034 */ lw $t8, 0x34($sp)
|
||||
/* 0BB728 800BAB28 8FA40038 */ lw $a0, 0x38($sp)
|
||||
/* 0BB72C 800BAB2C 00002825 */ move $a1, $zero
|
||||
/* 0BB730 800BAB30 00003025 */ move $a2, $zero
|
||||
/* 0BB734 800BAB34 8FA70028 */ lw $a3, 0x28($sp)
|
||||
/* 0BB738 800BAB38 AFAE0010 */ sw $t6, 0x10($sp)
|
||||
/* 0BB73C 800BAB3C AFAF0014 */ sw $t7, 0x14($sp)
|
||||
/* 0BB740 800BAB40 0C03370C */ jal osPiStartDma
|
||||
/* 0BB744 800BAB44 AFB80018 */ sw $t8, 0x18($sp)
|
||||
/* 0BB748 800BAB48 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
/* 0BB74C 800BAB4C 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
/* 0BB750 800BAB50 03E00008 */ jr $ra
|
||||
/* 0BB754 800BAB54 00000000 */ nop
|
||||
@@ -1,45 +0,0 @@
|
||||
glabel func_800BAB58
|
||||
/* 0BB758 800BAB58 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* 0BB75C 800BAB5C AFBF002C */ sw $ra, 0x2c($sp)
|
||||
/* 0BB760 800BAB60 AFB00028 */ sw $s0, 0x28($sp)
|
||||
/* 0BB764 800BAB64 AFA40030 */ sw $a0, 0x30($sp)
|
||||
/* 0BB768 800BAB68 AFA50034 */ sw $a1, 0x34($sp)
|
||||
/* 0BB76C 800BAB6C AFA7003C */ sw $a3, 0x3c($sp)
|
||||
/* 0BB770 800BAB70 8CC20000 */ lw $v0, ($a2)
|
||||
/* 0BB774 800BAB74 28411000 */ slti $at, $v0, 0x1000
|
||||
/* 0BB778 800BAB78 14200003 */ bnez $at, .L800BAB88
|
||||
/* 0BB77C 800BAB7C 00408025 */ move $s0, $v0
|
||||
/* 0BB780 800BAB80 10000001 */ b .L800BAB88
|
||||
/* 0BB784 800BAB84 24101000 */ li $s0, 4096
|
||||
.L800BAB88:
|
||||
/* 0BB788 800BAB88 00507023 */ subu $t6, $v0, $s0
|
||||
/* 0BB78C 800BAB8C ACCE0000 */ sw $t6, ($a2)
|
||||
/* 0BB790 800BAB90 8FAF0034 */ lw $t7, 0x34($sp)
|
||||
/* 0BB794 800BAB94 02002825 */ move $a1, $s0
|
||||
/* 0BB798 800BAB98 0C0336E0 */ jal osInvalDCache
|
||||
/* 0BB79C 800BAB9C 8DE40000 */ lw $a0, ($t7)
|
||||
/* 0BB7A0 800BABA0 8FB80030 */ lw $t8, 0x30($sp)
|
||||
/* 0BB7A4 800BABA4 8FB90034 */ lw $t9, 0x34($sp)
|
||||
/* 0BB7A8 800BABA8 8FA9003C */ lw $t1, 0x3c($sp)
|
||||
/* 0BB7AC 800BABAC 8F070000 */ lw $a3, ($t8)
|
||||
/* 0BB7B0 800BABB0 8F280000 */ lw $t0, ($t9)
|
||||
/* 0BB7B4 800BABB4 AFB00014 */ sw $s0, 0x14($sp)
|
||||
/* 0BB7B8 800BABB8 8FA40040 */ lw $a0, 0x40($sp)
|
||||
/* 0BB7BC 800BABBC 00002825 */ move $a1, $zero
|
||||
/* 0BB7C0 800BABC0 00003025 */ move $a2, $zero
|
||||
/* 0BB7C4 800BABC4 AFA90018 */ sw $t1, 0x18($sp)
|
||||
/* 0BB7C8 800BABC8 0C03370C */ jal osPiStartDma
|
||||
/* 0BB7CC 800BABCC AFA80010 */ sw $t0, 0x10($sp)
|
||||
/* 0BB7D0 800BABD0 8FA30030 */ lw $v1, 0x30($sp)
|
||||
/* 0BB7D4 800BABD4 8FA20034 */ lw $v0, 0x34($sp)
|
||||
/* 0BB7D8 800BABD8 8C6A0000 */ lw $t2, ($v1)
|
||||
/* 0BB7DC 800BABDC 01505821 */ addu $t3, $t2, $s0
|
||||
/* 0BB7E0 800BABE0 AC6B0000 */ sw $t3, ($v1)
|
||||
/* 0BB7E4 800BABE4 8C4C0000 */ lw $t4, ($v0)
|
||||
/* 0BB7E8 800BABE8 01906821 */ addu $t5, $t4, $s0
|
||||
/* 0BB7EC 800BABEC AC4D0000 */ sw $t5, ($v0)
|
||||
/* 0BB7F0 800BABF0 8FBF002C */ lw $ra, 0x2c($sp)
|
||||
/* 0BB7F4 800BABF4 8FB00028 */ lw $s0, 0x28($sp)
|
||||
/* 0BB7F8 800BABF8 27BD0030 */ addiu $sp, $sp, 0x30
|
||||
/* 0BB7FC 800BABFC 03E00008 */ jr $ra
|
||||
/* 0BB800 800BAC00 00000000 */ nop
|
||||
@@ -1,73 +0,0 @@
|
||||
glabel func_800BAC04
|
||||
/* 0BB804 800BAC04 3C05803B */ lui $a1, %hi(D_803B6E5C) # $a1, 0x803b
|
||||
/* 0BB808 800BAC08 24A56E5C */ addiu $a1, %lo(D_803B6E5C) # addiu $a1, $a1, 0x6e5c
|
||||
/* 0BB80C 800BAC0C 8CA30000 */ lw $v1, ($a1)
|
||||
/* 0BB810 800BAC10 3C04803B */ lui $a0, %hi(D_803B6758) # $a0, 0x803b
|
||||
/* 0BB814 800BAC14 24846758 */ addiu $a0, %lo(D_803B6758) # addiu $a0, $a0, 0x6758
|
||||
/* 0BB818 800BAC18 10600018 */ beqz $v1, .L800BAC7C
|
||||
/* 0BB81C 800BAC1C 00001025 */ move $v0, $zero
|
||||
/* 0BB820 800BAC20 3C07803B */ lui $a3, %hi(D_803B6E68) # $a3, 0x803b
|
||||
/* 0BB824 800BAC24 3C06803B */ lui $a2, %hi(D_803B706A) # $a2, 0x803b
|
||||
/* 0BB828 800BAC28 24C6706A */ addiu $a2, %lo(D_803B706A) # addiu $a2, $a2, 0x706a
|
||||
/* 0BB82C 800BAC2C 24E76E68 */ addiu $a3, %lo(D_803B6E68) # addiu $a3, $a3, 0x6e68
|
||||
/* 0BB830 800BAC30 9083000E */ lbu $v1, 0xe($a0)
|
||||
.L800BAC34:
|
||||
/* 0BB834 800BAC34 1060000B */ beqz $v1, .L800BAC64
|
||||
/* 0BB838 800BAC38 246EFFFF */ addiu $t6, $v1, -1
|
||||
/* 0BB83C 800BAC3C 31CF00FF */ andi $t7, $t6, 0xff
|
||||
/* 0BB840 800BAC40 15E00008 */ bnez $t7, .L800BAC64
|
||||
/* 0BB844 800BAC44 A08E000E */ sb $t6, 0xe($a0)
|
||||
/* 0BB848 800BAC48 90C30000 */ lbu $v1, ($a2)
|
||||
/* 0BB84C 800BAC4C 90D80000 */ lbu $t8, ($a2)
|
||||
/* 0BB850 800BAC50 00E3C821 */ addu $t9, $a3, $v1
|
||||
/* 0BB854 800BAC54 A3220000 */ sb $v0, ($t9)
|
||||
/* 0BB858 800BAC58 24680001 */ addiu $t0, $v1, 1
|
||||
/* 0BB85C 800BAC5C A0C80000 */ sb $t0, ($a2)
|
||||
/* 0BB860 800BAC60 A098000D */ sb $t8, 0xd($a0)
|
||||
.L800BAC64:
|
||||
/* 0BB864 800BAC64 8CA30000 */ lw $v1, ($a1)
|
||||
/* 0BB868 800BAC68 24420001 */ addiu $v0, $v0, 1
|
||||
/* 0BB86C 800BAC6C 24840010 */ addiu $a0, $a0, 0x10
|
||||
/* 0BB870 800BAC70 0043082B */ sltu $at, $v0, $v1
|
||||
/* 0BB874 800BAC74 5420FFEF */ bnel $at, $zero, .L800BAC34
|
||||
/* 0BB878 800BAC78 9083000E */ lbu $v1, 0xe($a0)
|
||||
.L800BAC7C:
|
||||
/* 0BB87C 800BAC7C 3C05803B */ lui $a1, %hi(D_803B6E58) # $a1, 0x803b
|
||||
/* 0BB880 800BAC80 24A56E58 */ addiu $a1, %lo(D_803B6E58) # addiu $a1, $a1, 0x6e58
|
||||
/* 0BB884 800BAC84 8CA90000 */ lw $t1, ($a1)
|
||||
/* 0BB888 800BAC88 00601025 */ move $v0, $v1
|
||||
/* 0BB88C 800BAC8C 00035100 */ sll $t2, $v1, 4
|
||||
/* 0BB890 800BAC90 0069082B */ sltu $at, $v1, $t1
|
||||
/* 0BB894 800BAC94 1020001A */ beqz $at, .L800BAD00
|
||||
/* 0BB898 800BAC98 3C0B803B */ lui $t3, %hi(D_803B6758) # $t3, 0x803b
|
||||
/* 0BB89C 800BAC9C 256B6758 */ addiu $t3, %lo(D_803B6758) # addiu $t3, $t3, 0x6758
|
||||
/* 0BB8A0 800BACA0 3C07803B */ lui $a3, %hi(D_803B6F68) # $a3, 0x803b
|
||||
/* 0BB8A4 800BACA4 3C06803B */ lui $a2, %hi(D_803B706B) # $a2, 0x803b
|
||||
/* 0BB8A8 800BACA8 24C6706B */ addiu $a2, %lo(D_803B706B) # addiu $a2, $a2, 0x706b
|
||||
/* 0BB8AC 800BACAC 24E76F68 */ addiu $a3, %lo(D_803B6F68) # addiu $a3, $a3, 0x6f68
|
||||
/* 0BB8B0 800BACB0 014B2021 */ addu $a0, $t2, $t3
|
||||
/* 0BB8B4 800BACB4 9083000E */ lbu $v1, 0xe($a0)
|
||||
.L800BACB8:
|
||||
/* 0BB8B8 800BACB8 1060000B */ beqz $v1, .L800BACE8
|
||||
/* 0BB8BC 800BACBC 246CFFFF */ addiu $t4, $v1, -1
|
||||
/* 0BB8C0 800BACC0 318D00FF */ andi $t5, $t4, 0xff
|
||||
/* 0BB8C4 800BACC4 15A00008 */ bnez $t5, .L800BACE8
|
||||
/* 0BB8C8 800BACC8 A08C000E */ sb $t4, 0xe($a0)
|
||||
/* 0BB8CC 800BACCC 90C30000 */ lbu $v1, ($a2)
|
||||
/* 0BB8D0 800BACD0 90CE0000 */ lbu $t6, ($a2)
|
||||
/* 0BB8D4 800BACD4 00E37821 */ addu $t7, $a3, $v1
|
||||
/* 0BB8D8 800BACD8 A1E20000 */ sb $v0, ($t7)
|
||||
/* 0BB8DC 800BACDC 24780001 */ addiu $t8, $v1, 1
|
||||
/* 0BB8E0 800BACE0 A0D80000 */ sb $t8, ($a2)
|
||||
/* 0BB8E4 800BACE4 A08E000D */ sb $t6, 0xd($a0)
|
||||
.L800BACE8:
|
||||
/* 0BB8E8 800BACE8 8CB90000 */ lw $t9, ($a1)
|
||||
/* 0BB8EC 800BACEC 24420001 */ addiu $v0, $v0, 1
|
||||
/* 0BB8F0 800BACF0 24840010 */ addiu $a0, $a0, 0x10
|
||||
/* 0BB8F4 800BACF4 0059082B */ sltu $at, $v0, $t9
|
||||
/* 0BB8F8 800BACF8 5420FFEF */ bnel $at, $zero, .L800BACB8
|
||||
/* 0BB8FC 800BACFC 9083000E */ lbu $v1, 0xe($a0)
|
||||
.L800BAD00:
|
||||
/* 0BB900 800BAD00 3C01803B */ lui $at, %hi(D_803B6E60)
|
||||
/* 0BB904 800BAD04 03E00008 */ jr $ra
|
||||
/* 0BB908 800BAD08 AC206E60 */ sw $zero, %lo(D_803B6E60)($at)
|
||||
@@ -8,20 +8,20 @@ glabel func_800BAD0C
|
||||
/* 0BB924 800BAD24 AFA70054 */ sw $a3, 0x54($sp)
|
||||
/* 0BB928 800BAD28 14C00008 */ bnez $a2, .L800BAD4C
|
||||
/* 0BB92C 800BAD2C 00005825 */ move $t3, $zero
|
||||
/* 0BB930 800BAD30 3C05803B */ lui $a1, %hi(D_803B6E5C) # $a1, 0x803b
|
||||
/* 0BB934 800BAD34 8CA56E5C */ lw $a1, %lo(D_803B6E5C)($a1)
|
||||
/* 0BB930 800BAD30 3C05803B */ lui $a1, %hi(sSampleDmaListSize1) # $a1, 0x803b
|
||||
/* 0BB934 800BAD34 8CA56E5C */ lw $a1, %lo(sSampleDmaListSize1)($a1)
|
||||
/* 0BB938 800BAD38 90E20000 */ lbu $v0, ($a3)
|
||||
/* 0BB93C 800BAD3C 00001825 */ move $v1, $zero
|
||||
/* 0BB940 800BAD40 0045082B */ sltu $at, $v0, $a1
|
||||
/* 0BB944 800BAD44 14200055 */ bnez $at, .L800BAE9C
|
||||
/* 0BB948 800BAD48 00026900 */ sll $t5, $v0, 4
|
||||
.L800BAD4C:
|
||||
/* 0BB94C 800BAD4C 3C03803B */ lui $v1, %hi(D_803B6E5C) # $v1, 0x803b
|
||||
/* 0BB950 800BAD50 3C05803B */ lui $a1, %hi(D_803B6E58) # $a1, 0x803b
|
||||
/* 0BB954 800BAD54 8CA56E58 */ lw $a1, %lo(D_803B6E58)($a1)
|
||||
/* 0BB958 800BAD58 8C636E5C */ lw $v1, %lo(D_803B6E5C)($v1)
|
||||
/* 0BB95C 800BAD5C 3C18803B */ lui $t8, %hi(D_803B6758) # $t8, 0x803b
|
||||
/* 0BB960 800BAD60 27186758 */ addiu $t8, %lo(D_803B6758) # addiu $t8, $t8, 0x6758
|
||||
/* 0BB94C 800BAD4C 3C03803B */ lui $v1, %hi(sSampleDmaListSize1) # $v1, 0x803b
|
||||
/* 0BB950 800BAD50 3C05803B */ lui $a1, %hi(gSampleDmaNumListItems) # $a1, 0x803b
|
||||
/* 0BB954 800BAD54 8CA56E58 */ lw $a1, %lo(gSampleDmaNumListItems)($a1)
|
||||
/* 0BB958 800BAD58 8C636E5C */ lw $v1, %lo(sSampleDmaListSize1)($v1)
|
||||
/* 0BB95C 800BAD5C 3C18803B */ lui $t8, %hi(sSampleDmas) # $t8, 0x803b
|
||||
/* 0BB960 800BAD60 27186758 */ addiu $t8, %lo(sSampleDmas) # addiu $t8, $t8, 0x6758
|
||||
/* 0BB964 800BAD64 0065082B */ sltu $at, $v1, $a1
|
||||
/* 0BB968 800BAD68 10200034 */ beqz $at, .L800BAE3C
|
||||
/* 0BB96C 800BAD6C 00037900 */ sll $t7, $v1, 4
|
||||
@@ -38,26 +38,26 @@ glabel func_800BAD0C
|
||||
/* 0BB994 800BAD94 54200025 */ bnel $at, $zero, .L800BAE2C
|
||||
/* 0BB998 800BAD98 24630001 */ addiu $v1, $v1, 1
|
||||
/* 0BB99C 800BAD9C 908F000E */ lbu $t7, 0xe($a0)
|
||||
/* 0BB9A0 800BADA0 3C09803B */ lui $t1, %hi(D_803B7069) # $t1, 0x803b
|
||||
/* 0BB9A4 800BADA4 25297069 */ addiu $t1, %lo(D_803B7069) # addiu $t1, $t1, 0x7069
|
||||
/* 0BB9A0 800BADA0 3C09803B */ lui $t1, %hi(sSampleDmaReuseQueueTail2) # $t1, 0x803b
|
||||
/* 0BB9A4 800BADA4 25297069 */ addiu $t1, %lo(sSampleDmaReuseQueueTail2) # addiu $t1, $t1, 0x7069
|
||||
/* 0BB9A8 800BADA8 15E00016 */ bnez $t7, .L800BAE04
|
||||
/* 0BB9AC 800BADAC 3C18803B */ lui $t8, %hi(D_803B706B) # $t8, 0x803b
|
||||
/* 0BB9AC 800BADAC 3C18803B */ lui $t8, %hi(sSampleDmaReuseQueueHead2) # $t8, 0x803b
|
||||
/* 0BB9B0 800BADB0 91250000 */ lbu $a1, ($t1)
|
||||
/* 0BB9B4 800BADB4 9318706B */ lbu $t8, %lo(D_803B706B)($t8)
|
||||
/* 0BB9B4 800BADB4 9318706B */ lbu $t8, %lo(sSampleDmaReuseQueueHead2)($t8)
|
||||
/* 0BB9B8 800BADB8 53050013 */ beql $t8, $a1, .L800BAE08
|
||||
/* 0BB9BC 800BADBC 8FB80054 */ lw $t8, 0x54($sp)
|
||||
/* 0BB9C0 800BADC0 9087000D */ lbu $a3, 0xd($a0)
|
||||
/* 0BB9C4 800BADC4 3C0C803B */ lui $t4, %hi(D_803B6F68) # $t4, 0x803b
|
||||
/* 0BB9C8 800BADC8 258C6F68 */ addiu $t4, %lo(D_803B6F68) # addiu $t4, $t4, 0x6f68
|
||||
/* 0BB9C4 800BADC4 3C0C803B */ lui $t4, %hi(sSampleDmaReuseQueue2) # $t4, 0x803b
|
||||
/* 0BB9C8 800BADC8 258C6F68 */ addiu $t4, %lo(sSampleDmaReuseQueue2) # addiu $t4, $t4, 0x6f68
|
||||
/* 0BB9CC 800BADCC 10A7000B */ beq $a1, $a3, .L800BADFC
|
||||
/* 0BB9D0 800BADD0 01851021 */ addu $v0, $t4, $a1
|
||||
/* 0BB9D4 800BADD4 90590000 */ lbu $t9, ($v0)
|
||||
/* 0BB9D8 800BADD8 01876821 */ addu $t5, $t4, $a3
|
||||
/* 0BB9DC 800BADDC 3C06803B */ lui $a2, %hi(D_803B6758) # $a2, 0x803b
|
||||
/* 0BB9DC 800BADDC 3C06803B */ lui $a2, %hi(sSampleDmas) # $a2, 0x803b
|
||||
/* 0BB9E0 800BADE0 A1B90000 */ sb $t9, ($t5)
|
||||
/* 0BB9E4 800BADE4 904F0000 */ lbu $t7, ($v0)
|
||||
/* 0BB9E8 800BADE8 908E000D */ lbu $t6, 0xd($a0)
|
||||
/* 0BB9EC 800BADEC 24C66758 */ addiu $a2, %lo(D_803B6758) # addiu $a2, $a2, 0x6758
|
||||
/* 0BB9EC 800BADEC 24C66758 */ addiu $a2, %lo(sSampleDmas) # addiu $a2, $a2, 0x6758
|
||||
/* 0BB9F0 800BADF0 000FC100 */ sll $t8, $t7, 4
|
||||
/* 0BB9F4 800BADF4 00D8C821 */ addu $t9, $a2, $t8
|
||||
/* 0BB9F8 800BADF8 A32E000D */ sb $t6, 0xd($t9)
|
||||
@@ -82,21 +82,21 @@ glabel func_800BAD0C
|
||||
/* 0BBA34 800BAE34 24840010 */ addiu $a0, $a0, 0x10
|
||||
/* 0BBA38 800BAE38 AFA80040 */ sw $t0, 0x40($sp)
|
||||
.L800BAE3C:
|
||||
/* 0BBA3C 800BAE3C 3C09803B */ lui $t1, %hi(D_803B7069) # $t1, 0x803b
|
||||
/* 0BBA40 800BAE40 25297069 */ addiu $t1, %lo(D_803B7069) # addiu $t1, $t1, 0x7069
|
||||
/* 0BBA44 800BAE44 3C0F803B */ lui $t7, %hi(D_803B706B) # $t7, 0x803b
|
||||
/* 0BBA48 800BAE48 91EF706B */ lbu $t7, %lo(D_803B706B)($t7)
|
||||
/* 0BBA3C 800BAE3C 3C09803B */ lui $t1, %hi(sSampleDmaReuseQueueTail2) # $t1, 0x803b
|
||||
/* 0BBA40 800BAE40 25297069 */ addiu $t1, %lo(sSampleDmaReuseQueueTail2) # addiu $t1, $t1, 0x7069
|
||||
/* 0BBA44 800BAE44 3C0F803B */ lui $t7, %hi(sSampleDmaReuseQueueHead2) # $t7, 0x803b
|
||||
/* 0BBA48 800BAE48 91EF706B */ lbu $t7, %lo(sSampleDmaReuseQueueHead2)($t7)
|
||||
/* 0BBA4C 800BAE4C 91250000 */ lbu $a1, ($t1)
|
||||
/* 0BBA50 800BAE50 8FA80040 */ lw $t0, 0x40($sp)
|
||||
/* 0BBA54 800BAE54 11E5000E */ beq $t7, $a1, .L800BAE90
|
||||
/* 0BBA58 800BAE58 00000000 */ nop
|
||||
/* 0BBA5C 800BAE5C 10C0000C */ beqz $a2, .L800BAE90
|
||||
/* 0BBA60 800BAE60 3C0C803B */ lui $t4, %hi(D_803B6F68) # $t4, 0x803b
|
||||
/* 0BBA64 800BAE64 258C6F68 */ addiu $t4, %lo(D_803B6F68) # addiu $t4, $t4, 0x6f68
|
||||
/* 0BBA60 800BAE60 3C0C803B */ lui $t4, %hi(sSampleDmaReuseQueue2) # $t4, 0x803b
|
||||
/* 0BBA64 800BAE64 258C6F68 */ addiu $t4, %lo(sSampleDmaReuseQueue2) # addiu $t4, $t4, 0x6f68
|
||||
/* 0BBA68 800BAE68 0185C021 */ addu $t8, $t4, $a1
|
||||
/* 0BBA6C 800BAE6C 930A0000 */ lbu $t2, ($t8)
|
||||
/* 0BBA70 800BAE70 3C06803B */ lui $a2, %hi(D_803B6758) # $a2, 0x803b
|
||||
/* 0BBA74 800BAE74 24C66758 */ addiu $a2, %lo(D_803B6758) # addiu $a2, $a2, 0x6758
|
||||
/* 0BBA70 800BAE70 3C06803B */ lui $a2, %hi(sSampleDmas) # $a2, 0x803b
|
||||
/* 0BBA74 800BAE74 24C66758 */ addiu $a2, %lo(sSampleDmas) # addiu $a2, $a2, 0x6758
|
||||
/* 0BBA78 800BAE78 24AE0001 */ addiu $t6, $a1, 1
|
||||
/* 0BBA7C 800BAE7C 000AC900 */ sll $t9, $t2, 4
|
||||
/* 0BBA80 800BAE80 A12E0000 */ sb $t6, ($t1)
|
||||
@@ -104,12 +104,12 @@ glabel func_800BAD0C
|
||||
/* 0BBA88 800BAE88 240B0001 */ li $t3, 1
|
||||
/* 0BBA8C 800BAE8C AFAA0030 */ sw $t2, 0x30($sp)
|
||||
.L800BAE90:
|
||||
/* 0BBA90 800BAE90 3C06803B */ lui $a2, %hi(D_803B6758) # $a2, 0x803b
|
||||
/* 0BBA90 800BAE90 3C06803B */ lui $a2, %hi(sSampleDmas) # $a2, 0x803b
|
||||
/* 0BBA94 800BAE94 1000002F */ b .L800BAF54
|
||||
/* 0BBA98 800BAE98 24C66758 */ addiu $a2, %lo(D_803B6758) # addiu $a2, $a2, 0x6758
|
||||
/* 0BBA98 800BAE98 24C66758 */ addiu $a2, %lo(sSampleDmas) # addiu $a2, $a2, 0x6758
|
||||
.L800BAE9C:
|
||||
/* 0BBA9C 800BAE9C 3C06803B */ lui $a2, %hi(D_803B6758) # $a2, 0x803b
|
||||
/* 0BBAA0 800BAEA0 24C66758 */ addiu $a2, %lo(D_803B6758) # addiu $a2, $a2, 0x6758
|
||||
/* 0BBA9C 800BAE9C 3C06803B */ lui $a2, %hi(sSampleDmas) # $a2, 0x803b
|
||||
/* 0BBAA0 800BAEA0 24C66758 */ addiu $a2, %lo(sSampleDmas) # addiu $a2, $a2, 0x6758
|
||||
/* 0BBAA4 800BAEA4 10A0002B */ beqz $a1, .L800BAF54
|
||||
/* 0BBAA8 800BAEA8 00CD4021 */ addu $t0, $a2, $t5
|
||||
.L800BAEAC:
|
||||
@@ -125,14 +125,14 @@ glabel func_800BAD0C
|
||||
/* 0BBAD0 800BAED0 5420001E */ bnel $at, $zero, .L800BAF4C
|
||||
/* 0BBAD4 800BAED4 0065082B */ sltu $at, $v1, $a1
|
||||
/* 0BBAD8 800BAED8 910E000E */ lbu $t6, 0xe($t0)
|
||||
/* 0BBADC 800BAEDC 3C05803B */ lui $a1, %hi(D_803B7068) # $a1, 0x803b
|
||||
/* 0BBAE0 800BAEE0 24A57068 */ addiu $a1, %lo(D_803B7068) # addiu $a1, $a1, 0x7068
|
||||
/* 0BBADC 800BAEDC 3C05803B */ lui $a1, %hi(sSampleDmaReuseQueueTail1) # $a1, 0x803b
|
||||
/* 0BBAE0 800BAEE0 24A57068 */ addiu $a1, %lo(sSampleDmaReuseQueueTail1) # addiu $a1, $a1, 0x7068
|
||||
/* 0BBAE4 800BAEE4 55C00013 */ bnel $t6, $zero, .L800BAF34
|
||||
/* 0BBAE8 800BAEE8 8D0E0000 */ lw $t6, ($t0)
|
||||
/* 0BBAEC 800BAEEC 90A30000 */ lbu $v1, ($a1)
|
||||
/* 0BBAF0 800BAEF0 9104000D */ lbu $a0, 0xd($t0)
|
||||
/* 0BBAF4 800BAEF4 3C07803B */ lui $a3, %hi(D_803B6E68) # $a3, 0x803b
|
||||
/* 0BBAF8 800BAEF8 24E76E68 */ addiu $a3, %lo(D_803B6E68) # addiu $a3, $a3, 0x6e68
|
||||
/* 0BBAF4 800BAEF4 3C07803B */ lui $a3, %hi(sSampleDmaReuseQueue1) # $a3, 0x803b
|
||||
/* 0BBAF8 800BAEF8 24E76E68 */ addiu $a3, %lo(sSampleDmaReuseQueue1) # addiu $a3, $a3, 0x6e68
|
||||
/* 0BBAFC 800BAEFC 10640009 */ beq $v1, $a0, .L800BAF24
|
||||
/* 0BBB00 800BAF00 00E31021 */ addu $v0, $a3, $v1
|
||||
/* 0BBB04 800BAF04 90590000 */ lbu $t9, ($v0)
|
||||
@@ -161,11 +161,11 @@ glabel func_800BAD0C
|
||||
.L800BAF54:
|
||||
/* 0BBB54 800BAF54 1560000C */ bnez $t3, .L800BAF88
|
||||
/* 0BBB58 800BAF58 8FAA0030 */ lw $t2, 0x30($sp)
|
||||
/* 0BBB5C 800BAF5C 3C05803B */ lui $a1, %hi(D_803B7068) # $a1, 0x803b
|
||||
/* 0BBB60 800BAF60 24A57068 */ addiu $a1, %lo(D_803B7068) # addiu $a1, $a1, 0x7068
|
||||
/* 0BBB5C 800BAF5C 3C05803B */ lui $a1, %hi(sSampleDmaReuseQueueTail1) # $a1, 0x803b
|
||||
/* 0BBB60 800BAF60 24A57068 */ addiu $a1, %lo(sSampleDmaReuseQueueTail1) # addiu $a1, $a1, 0x7068
|
||||
/* 0BBB64 800BAF64 90A30000 */ lbu $v1, ($a1)
|
||||
/* 0BBB68 800BAF68 3C07803B */ lui $a3, %hi(D_803B6E68) # $a3, 0x803b
|
||||
/* 0BBB6C 800BAF6C 24E76E68 */ addiu $a3, %lo(D_803B6E68) # addiu $a3, $a3, 0x6e68
|
||||
/* 0BBB68 800BAF68 3C07803B */ lui $a3, %hi(sSampleDmaReuseQueue1) # $a3, 0x803b
|
||||
/* 0BBB6C 800BAF6C 24E76E68 */ addiu $a3, %lo(sSampleDmaReuseQueue1) # addiu $a3, $a3, 0x6e68
|
||||
/* 0BBB70 800BAF70 00E36821 */ addu $t5, $a3, $v1
|
||||
/* 0BBB74 800BAF74 91AA0000 */ lbu $t2, ($t5)
|
||||
/* 0BBB78 800BAF78 24780001 */ addiu $t8, $v1, 1
|
||||
@@ -175,22 +175,22 @@ glabel func_800BAD0C
|
||||
.L800BAF88:
|
||||
/* 0BBB88 800BAF88 9502000A */ lhu $v0, 0xa($t0)
|
||||
/* 0BBB8C 800BAF8C 2401FFF0 */ li $at, -16
|
||||
/* 0BBB90 800BAF90 3C09803B */ lui $t1, %hi(D_803B70BC) # $t1, 0x803b
|
||||
/* 0BBB90 800BAF90 3C09803B */ lui $t1, %hi(gCurrAudioFrameDmaCount) # $t1, 0x803b
|
||||
/* 0BBB94 800BAF94 240F0002 */ li $t7, 2
|
||||
/* 0BBB98 800BAF98 02218024 */ and $s0, $s1, $at
|
||||
/* 0BBB9C 800BAF9C 252970BC */ addiu $t1, %lo(D_803B70BC) # addiu $t1, $t1, 0x70bc
|
||||
/* 0BBB9C 800BAF9C 252970BC */ addiu $t1, %lo(gCurrAudioFrameDmaCount) # addiu $t1, $t1, 0x70bc
|
||||
/* 0BBBA0 800BAFA0 A10F000E */ sb $t7, 0xe($t0)
|
||||
/* 0BBBA4 800BAFA4 AD100004 */ sw $s0, 4($t0)
|
||||
/* 0BBBA8 800BAFA8 A5020008 */ sh $v0, 8($t0)
|
||||
/* 0BBBAC 800BAFAC 8D230000 */ lw $v1, ($t1)
|
||||
/* 0BBBB0 800BAFB0 8D180000 */ lw $t8, ($t0)
|
||||
/* 0BBBB4 800BAFB4 3C0D803B */ lui $t5, %hi(D_803B6120) # $t5, 0x803b
|
||||
/* 0BBBB4 800BAFB4 3C0D803B */ lui $t5, %hi(gCurrAudioFrameDmaIoMesgBufs) # $t5, 0x803b
|
||||
/* 0BBBB8 800BAFB8 0003C880 */ sll $t9, $v1, 2
|
||||
/* 0BBBBC 800BAFBC 3C0E803B */ lui $t6, %hi(D_803B6008) # $t6, 0x803b
|
||||
/* 0BBBBC 800BAFBC 3C0E803B */ lui $t6, %hi(gCurrAudioFrameDmaQueue) # $t6, 0x803b
|
||||
/* 0BBBC0 800BAFC0 0323C823 */ subu $t9, $t9, $v1
|
||||
/* 0BBBC4 800BAFC4 0019C8C0 */ sll $t9, $t9, 3
|
||||
/* 0BBBC8 800BAFC8 25CE6008 */ addiu $t6, %lo(D_803B6008) # addiu $t6, $t6, 0x6008
|
||||
/* 0BBBCC 800BAFCC 25AD6120 */ addiu $t5, %lo(D_803B6120) # addiu $t5, $t5, 0x6120
|
||||
/* 0BBBC8 800BAFC8 25CE6008 */ addiu $t6, %lo(gCurrAudioFrameDmaQueue) # addiu $t6, $t6, 0x6008
|
||||
/* 0BBBCC 800BAFCC 25AD6120 */ addiu $t5, %lo(gCurrAudioFrameDmaIoMesgBufs) # addiu $t5, $t5, 0x6120
|
||||
/* 0BBBD0 800BAFD0 246F0001 */ addiu $t7, $v1, 1
|
||||
/* 0BBBD4 800BAFD4 AD2F0000 */ sw $t7, ($t1)
|
||||
/* 0BBBD8 800BAFD8 032D2021 */ addu $a0, $t9, $t5
|
||||
|
||||
@@ -1,196 +0,0 @@
|
||||
glabel func_800BB030
|
||||
/* 0BBC30 800BB030 27BDFFC8 */ addiu $sp, $sp, -0x38
|
||||
/* 0BBC34 800BB034 AFB50028 */ sw $s5, 0x28($sp)
|
||||
/* 0BBC38 800BB038 3C15803B */ lui $s5, %hi(D_803B70B0) # $s5, 0x803b
|
||||
/* 0BBC3C 800BB03C 26B570B0 */ addiu $s5, %lo(D_803B70B0) # addiu $s5, $s5, 0x70b0
|
||||
/* 0BBC40 800BB040 AFA40038 */ sw $a0, 0x38($sp)
|
||||
/* 0BBC44 800BB044 8EA40000 */ lw $a0, ($s5)
|
||||
/* 0BBC48 800BB048 AFB2001C */ sw $s2, 0x1c($sp)
|
||||
/* 0BBC4C 800BB04C 24120003 */ li $s2, 3
|
||||
/* 0BBC50 800BB050 00920019 */ multu $a0, $s2
|
||||
/* 0BBC54 800BB054 AFB30020 */ sw $s3, 0x20($sp)
|
||||
/* 0BBC58 800BB058 3C13803B */ lui $s3, %hi(D_803B7088) # $s3, 0x803b
|
||||
/* 0BBC5C 800BB05C 26737088 */ addiu $s3, %lo(D_803B7088) # addiu $s3, $s3, 0x7088
|
||||
/* 0BBC60 800BB060 86780000 */ lh $t8, ($s3)
|
||||
/* 0BBC64 800BB064 AFB40024 */ sw $s4, 0x24($sp)
|
||||
/* 0BBC68 800BB068 3C14803B */ lui $s4, %hi(D_803B70A8) # $s4, 0x803b
|
||||
/* 0BBC6C 800BB06C AFB70030 */ sw $s7, 0x30($sp)
|
||||
/* 0BBC70 800BB070 AFB6002C */ sw $s6, 0x2c($sp)
|
||||
/* 0BBC74 800BB074 AFB10018 */ sw $s1, 0x18($sp)
|
||||
/* 0BBC78 800BB078 00007812 */ mflo $t7
|
||||
/* 0BBC7C 800BB07C 269470A8 */ addiu $s4, %lo(D_803B70A8) # addiu $s4, $s4, 0x70a8
|
||||
/* 0BBC80 800BB080 AFB00014 */ sw $s0, 0x14($sp)
|
||||
/* 0BBC84 800BB084 01F80019 */ multu $t7, $t8
|
||||
/* 0BBC88 800BB088 240E05A0 */ li $t6, 1440
|
||||
/* 0BBC8C 800BB08C 3C11803B */ lui $s1, %hi(D_803B6E58) # $s1, 0x803b
|
||||
/* 0BBC90 800BB090 3C16803B */ lui $s6, %hi(D_803AFBE8) # $s6, 0x803b
|
||||
/* 0BBC94 800BB094 3C17803B */ lui $s7, %hi(D_803B6758) # $s7, 0x803b
|
||||
/* 0BBC98 800BB098 AFBF0034 */ sw $ra, 0x34($sp)
|
||||
/* 0BBC9C 800BB09C AE8E0000 */ sw $t6, ($s4)
|
||||
/* 0BBCA0 800BB0A0 26F76758 */ addiu $s7, %lo(D_803B6758) # addiu $s7, $s7, 0x6758
|
||||
/* 0BBCA4 800BB0A4 26D6FBE8 */ addiu $s6, %lo(D_803AFBE8) # addiu $s6, $s6, -0x418
|
||||
/* 0BBCA8 800BB0A8 26316E58 */ addiu $s1, %lo(D_803B6E58) # addiu $s1, $s1, 0x6e58
|
||||
/* 0BBCAC 800BB0AC 0000C812 */ mflo $t9
|
||||
/* 0BBCB0 800BB0B0 01C02825 */ move $a1, $t6
|
||||
/* 0BBCB4 800BB0B4 1B200020 */ blez $t9, .L800BB138
|
||||
/* 0BBCB8 800BB0B8 00008025 */ move $s0, $zero
|
||||
.L800BB0BC:
|
||||
/* 0BBCBC 800BB0BC 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0BBCC0 800BB0C0 02C02025 */ move $a0, $s6
|
||||
/* 0BBCC4 800BB0C4 8E260000 */ lw $a2, ($s1)
|
||||
/* 0BBCC8 800BB0C8 00064100 */ sll $t0, $a2, 4
|
||||
/* 0BBCCC 800BB0CC 02E81821 */ addu $v1, $s7, $t0
|
||||
/* 0BBCD0 800BB0D0 14400004 */ bnez $v0, .L800BB0E4
|
||||
/* 0BBCD4 800BB0D4 AC620000 */ sw $v0, ($v1)
|
||||
/* 0BBCD8 800BB0D8 00008025 */ move $s0, $zero
|
||||
/* 0BBCDC 800BB0DC 10000016 */ b .L800BB138
|
||||
/* 0BBCE0 800BB0E0 8EA40000 */ lw $a0, ($s5)
|
||||
.L800BB0E4:
|
||||
/* 0BBCE4 800BB0E4 8EA40000 */ lw $a0, ($s5)
|
||||
/* 0BBCE8 800BB0E8 866B0000 */ lh $t3, ($s3)
|
||||
/* 0BBCEC 800BB0EC 8E850000 */ lw $a1, ($s4)
|
||||
/* 0BBCF0 800BB0F0 00920019 */ multu $a0, $s2
|
||||
/* 0BBCF4 800BB0F4 26100001 */ addiu $s0, $s0, 1
|
||||
/* 0BBCF8 800BB0F8 24C90001 */ addiu $t1, $a2, 1
|
||||
/* 0BBCFC 800BB0FC AC600004 */ sw $zero, 4($v1)
|
||||
/* 0BBD00 800BB100 A4600008 */ sh $zero, 8($v1)
|
||||
/* 0BBD04 800BB104 A060000C */ sb $zero, 0xc($v1)
|
||||
/* 0BBD08 800BB108 A060000E */ sb $zero, 0xe($v1)
|
||||
/* 0BBD0C 800BB10C AE290000 */ sw $t1, ($s1)
|
||||
/* 0BBD10 800BB110 A465000A */ sh $a1, 0xa($v1)
|
||||
/* 0BBD14 800BB114 00005012 */ mflo $t2
|
||||
/* 0BBD18 800BB118 00000000 */ nop
|
||||
/* 0BBD1C 800BB11C 00000000 */ nop
|
||||
/* 0BBD20 800BB120 014B0019 */ multu $t2, $t3
|
||||
/* 0BBD24 800BB124 00006012 */ mflo $t4
|
||||
/* 0BBD28 800BB128 020C082A */ slt $at, $s0, $t4
|
||||
/* 0BBD2C 800BB12C 1420FFE3 */ bnez $at, .L800BB0BC
|
||||
/* 0BBD30 800BB130 00000000 */ nop
|
||||
/* 0BBD34 800BB134 00008025 */ move $s0, $zero
|
||||
.L800BB138:
|
||||
/* 0BBD38 800BB138 3C11803B */ lui $s1, %hi(D_803B6E58) # $s1, 0x803b
|
||||
/* 0BBD3C 800BB13C 26316E58 */ addiu $s1, %lo(D_803B6E58) # addiu $s1, $s1, 0x6e58
|
||||
/* 0BBD40 800BB140 8E260000 */ lw $a2, ($s1)
|
||||
/* 0BBD44 800BB144 3C16803B */ lui $s6, %hi(D_803AFBE8) # $s6, 0x803b
|
||||
/* 0BBD48 800BB148 3C17803B */ lui $s7, %hi(D_803B6758) # $s7, 0x803b
|
||||
/* 0BBD4C 800BB14C 26F76758 */ addiu $s7, %lo(D_803B6758) # addiu $s7, $s7, 0x6758
|
||||
/* 0BBD50 800BB150 10C0000C */ beqz $a2, .L800BB184
|
||||
/* 0BBD54 800BB154 26D6FBE8 */ addiu $s6, %lo(D_803AFBE8) # addiu $s6, $s6, -0x418
|
||||
/* 0BBD58 800BB158 3C02803B */ lui $v0, %hi(D_803B6E68) # $v0, 0x803b
|
||||
/* 0BBD5C 800BB15C 3C03803B */ lui $v1, %hi(D_803B6758) # $v1, 0x803b
|
||||
/* 0BBD60 800BB160 24636758 */ addiu $v1, %lo(D_803B6758) # addiu $v1, $v1, 0x6758
|
||||
/* 0BBD64 800BB164 24426E68 */ addiu $v0, %lo(D_803B6E68) # addiu $v0, $v0, 0x6e68
|
||||
.L800BB168:
|
||||
/* 0BBD68 800BB168 A0500000 */ sb $s0, ($v0)
|
||||
/* 0BBD6C 800BB16C A070000D */ sb $s0, 0xd($v1)
|
||||
/* 0BBD70 800BB170 26100001 */ addiu $s0, $s0, 1
|
||||
/* 0BBD74 800BB174 0206082B */ sltu $at, $s0, $a2
|
||||
/* 0BBD78 800BB178 24420001 */ addiu $v0, $v0, 1
|
||||
/* 0BBD7C 800BB17C 1420FFFA */ bnez $at, .L800BB168
|
||||
/* 0BBD80 800BB180 24630010 */ addiu $v1, $v1, 0x10
|
||||
.L800BB184:
|
||||
/* 0BBD84 800BB184 28C10100 */ slti $at, $a2, 0x100
|
||||
/* 0BBD88 800BB188 00C03825 */ move $a3, $a2
|
||||
/* 0BBD8C 800BB18C 1020000A */ beqz $at, .L800BB1B8
|
||||
/* 0BBD90 800BB190 00C08025 */ move $s0, $a2
|
||||
/* 0BBD94 800BB194 3C0D803B */ lui $t5, %hi(D_803B6E68) # $t5, 0x803b
|
||||
/* 0BBD98 800BB198 25AD6E68 */ addiu $t5, %lo(D_803B6E68) # addiu $t5, $t5, 0x6e68
|
||||
/* 0BBD9C 800BB19C 3C03803B */ lui $v1, %hi(D_803B6F68) # $v1, 0x803b
|
||||
/* 0BBDA0 800BB1A0 24636F68 */ addiu $v1, %lo(D_803B6F68) # addiu $v1, $v1, 0x6f68
|
||||
/* 0BBDA4 800BB1A4 020D1021 */ addu $v0, $s0, $t5
|
||||
.L800BB1A8:
|
||||
/* 0BBDA8 800BB1A8 24420001 */ addiu $v0, $v0, 1
|
||||
/* 0BBDAC 800BB1AC 0043082B */ sltu $at, $v0, $v1
|
||||
/* 0BBDB0 800BB1B0 1420FFFD */ bnez $at, .L800BB1A8
|
||||
/* 0BBDB4 800BB1B4 A040FFFF */ sb $zero, -1($v0)
|
||||
.L800BB1B8:
|
||||
/* 0BBDB8 800BB1B8 3C01803B */ lui $at, %hi(D_803B7068) # $at, 0x803b
|
||||
/* 0BBDBC 800BB1BC A0207068 */ sb $zero, %lo(D_803B7068)($at)
|
||||
/* 0BBDC0 800BB1C0 3C12803B */ lui $s2, %hi(D_803B6E5C) # $s2, 0x803b
|
||||
/* 0BBDC4 800BB1C4 3C01803B */ lui $at, %hi(D_803B706A) # $at, 0x803b
|
||||
/* 0BBDC8 800BB1C8 26526E5C */ addiu $s2, %lo(D_803B6E5C) # addiu $s2, $s2, 0x6e5c
|
||||
/* 0BBDCC 800BB1CC A026706A */ sb $a2, %lo(D_803B706A)($at)
|
||||
/* 0BBDD0 800BB1D0 240E0180 */ li $t6, 384
|
||||
/* 0BBDD4 800BB1D4 AE460000 */ sw $a2, ($s2)
|
||||
/* 0BBDD8 800BB1D8 AE8E0000 */ sw $t6, ($s4)
|
||||
/* 0BBDDC 800BB1DC 1880001A */ blez $a0, .L800BB248
|
||||
/* 0BBDE0 800BB1E0 00008025 */ move $s0, $zero
|
||||
/* 0BBDE4 800BB1E4 01C02825 */ move $a1, $t6
|
||||
.L800BB1E8:
|
||||
/* 0BBDE8 800BB1E8 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0BBDEC 800BB1EC 02C02025 */ move $a0, $s6
|
||||
/* 0BBDF0 800BB1F0 8E260000 */ lw $a2, ($s1)
|
||||
/* 0BBDF4 800BB1F4 26100001 */ addiu $s0, $s0, 1
|
||||
/* 0BBDF8 800BB1F8 00067900 */ sll $t7, $a2, 4
|
||||
/* 0BBDFC 800BB1FC 02EF1821 */ addu $v1, $s7, $t7
|
||||
/* 0BBE00 800BB200 14400003 */ bnez $v0, .L800BB210
|
||||
/* 0BBE04 800BB204 AC620000 */ sw $v0, ($v1)
|
||||
/* 0BBE08 800BB208 1000000F */ b .L800BB248
|
||||
/* 0BBE0C 800BB20C 00C03825 */ move $a3, $a2
|
||||
.L800BB210:
|
||||
/* 0BBE10 800BB210 8EB90000 */ lw $t9, ($s5)
|
||||
/* 0BBE14 800BB214 8E850000 */ lw $a1, ($s4)
|
||||
/* 0BBE18 800BB218 24D80001 */ addiu $t8, $a2, 1
|
||||
/* 0BBE1C 800BB21C 0219082A */ slt $at, $s0, $t9
|
||||
/* 0BBE20 800BB220 AC600004 */ sw $zero, 4($v1)
|
||||
/* 0BBE24 800BB224 A4600008 */ sh $zero, 8($v1)
|
||||
/* 0BBE28 800BB228 A060000C */ sb $zero, 0xc($v1)
|
||||
/* 0BBE2C 800BB22C A060000E */ sb $zero, 0xe($v1)
|
||||
/* 0BBE30 800BB230 AE380000 */ sw $t8, ($s1)
|
||||
/* 0BBE34 800BB234 1420FFEC */ bnez $at, .L800BB1E8
|
||||
/* 0BBE38 800BB238 A465000A */ sh $a1, 0xa($v1)
|
||||
/* 0BBE3C 800BB23C 3C06803B */ lui $a2, %hi(D_803B6E58) # $a2, 0x803b
|
||||
/* 0BBE40 800BB240 8CC66E58 */ lw $a2, %lo(D_803B6E58)($a2)
|
||||
/* 0BBE44 800BB244 00C03825 */ move $a3, $a2
|
||||
.L800BB248:
|
||||
/* 0BBE48 800BB248 8E450000 */ lw $a1, ($s2)
|
||||
/* 0BBE4C 800BB24C 3C09803B */ lui $t1, %hi(D_803B6758) # $t1, 0x803b
|
||||
/* 0BBE50 800BB250 25296758 */ addiu $t1, %lo(D_803B6758) # addiu $t1, $t1, 0x6758
|
||||
/* 0BBE54 800BB254 00A6082B */ sltu $at, $a1, $a2
|
||||
/* 0BBE58 800BB258 1020000F */ beqz $at, .L800BB298
|
||||
/* 0BBE5C 800BB25C 00A08025 */ move $s0, $a1
|
||||
/* 0BBE60 800BB260 3C0A803B */ lui $t2, %hi(D_803B6F68) # $t2, 0x803b
|
||||
/* 0BBE64 800BB264 254A6F68 */ addiu $t2, %lo(D_803B6F68) # addiu $t2, $t2, 0x6f68
|
||||
/* 0BBE68 800BB268 00104100 */ sll $t0, $s0, 4
|
||||
/* 0BBE6C 800BB26C 02051023 */ subu $v0, $s0, $a1
|
||||
/* 0BBE70 800BB270 004A2021 */ addu $a0, $v0, $t2
|
||||
/* 0BBE74 800BB274 01091821 */ addu $v1, $t0, $t1
|
||||
.L800BB278:
|
||||
/* 0BBE78 800BB278 A0900000 */ sb $s0, ($a0)
|
||||
/* 0BBE7C 800BB27C 26100001 */ addiu $s0, $s0, 1
|
||||
/* 0BBE80 800BB280 0206082B */ sltu $at, $s0, $a2
|
||||
/* 0BBE84 800BB284 A062000D */ sb $v0, 0xd($v1)
|
||||
/* 0BBE88 800BB288 24420001 */ addiu $v0, $v0, 1
|
||||
/* 0BBE8C 800BB28C 24630010 */ addiu $v1, $v1, 0x10
|
||||
/* 0BBE90 800BB290 1420FFF9 */ bnez $at, .L800BB278
|
||||
/* 0BBE94 800BB294 24840001 */ addiu $a0, $a0, 1
|
||||
.L800BB298:
|
||||
/* 0BBE98 800BB298 28E10100 */ slti $at, $a3, 0x100
|
||||
/* 0BBE9C 800BB29C 1020000A */ beqz $at, .L800BB2C8
|
||||
/* 0BBEA0 800BB2A0 00C56023 */ subu $t4, $a2, $a1
|
||||
/* 0BBEA4 800BB2A4 3C0B803B */ lui $t3, %hi(D_803B6F68) # $t3, 0x803b
|
||||
/* 0BBEA8 800BB2A8 256B6F68 */ addiu $t3, %lo(D_803B6F68) # addiu $t3, $t3, 0x6f68
|
||||
/* 0BBEAC 800BB2AC 3C03803B */ lui $v1, %hi(D_803B7068) # $v1, 0x803b
|
||||
/* 0BBEB0 800BB2B0 24637068 */ addiu $v1, %lo(D_803B7068) # addiu $v1, $v1, 0x7068
|
||||
/* 0BBEB4 800BB2B4 00EB1021 */ addu $v0, $a3, $t3
|
||||
.L800BB2B8:
|
||||
/* 0BBEB8 800BB2B8 24420001 */ addiu $v0, $v0, 1
|
||||
/* 0BBEBC 800BB2BC 0043082B */ sltu $at, $v0, $v1
|
||||
/* 0BBEC0 800BB2C0 1420FFFD */ bnez $at, .L800BB2B8
|
||||
/* 0BBEC4 800BB2C4 A045FFFF */ sb $a1, -1($v0)
|
||||
.L800BB2C8:
|
||||
/* 0BBEC8 800BB2C8 8FBF0034 */ lw $ra, 0x34($sp)
|
||||
/* 0BBECC 800BB2CC 3C01803B */ lui $at, %hi(D_803B7069) # $at, 0x803b
|
||||
/* 0BBED0 800BB2D0 A0207069 */ sb $zero, %lo(D_803B7069)($at)
|
||||
/* 0BBED4 800BB2D4 3C01803B */ lui $at, %hi(D_803B706B) # $at, 0x803b
|
||||
/* 0BBED8 800BB2D8 8FB00014 */ lw $s0, 0x14($sp)
|
||||
/* 0BBEDC 800BB2DC 8FB10018 */ lw $s1, 0x18($sp)
|
||||
/* 0BBEE0 800BB2E0 8FB2001C */ lw $s2, 0x1c($sp)
|
||||
/* 0BBEE4 800BB2E4 8FB30020 */ lw $s3, 0x20($sp)
|
||||
/* 0BBEE8 800BB2E8 8FB40024 */ lw $s4, 0x24($sp)
|
||||
/* 0BBEEC 800BB2EC 8FB50028 */ lw $s5, 0x28($sp)
|
||||
/* 0BBEF0 800BB2F0 8FB6002C */ lw $s6, 0x2c($sp)
|
||||
/* 0BBEF4 800BB2F4 8FB70030 */ lw $s7, 0x30($sp)
|
||||
/* 0BBEF8 800BB2F8 A02C706B */ sb $t4, %lo(D_803B706B)($at)
|
||||
/* 0BBEFC 800BB2FC 03E00008 */ jr $ra
|
||||
/* 0BBF00 800BB300 27BD0038 */ addiu $sp, $sp, 0x38
|
||||
@@ -1,37 +0,0 @@
|
||||
glabel func_800BB304
|
||||
/* 0BBF04 800BB304 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* 0BBF08 800BB308 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 0BBF0C 800BB30C 14800003 */ bnez $a0, .L800BB31C
|
||||
/* 0BBF10 800BB310 00803825 */ move $a3, $a0
|
||||
/* 0BBF14 800BB314 10000018 */ b .L800BB378
|
||||
/* 0BBF18 800BB318 2402FFFF */ li $v0, -1
|
||||
.L800BB31C:
|
||||
/* 0BBF1C 800BB31C 90EE0001 */ lbu $t6, 1($a3)
|
||||
/* 0BBF20 800BB320 24010001 */ li $at, 1
|
||||
/* 0BBF24 800BB324 3C04803B */ lui $a0, %hi(D_803AFBE8) # $a0, 0x803b
|
||||
/* 0BBF28 800BB328 15C10013 */ bne $t6, $at, .L800BB378
|
||||
/* 0BBF2C 800BB32C 2484FBE8 */ addiu $a0, %lo(D_803AFBE8) # addiu $a0, $a0, -0x418
|
||||
/* 0BBF30 800BB330 8CE50010 */ lw $a1, 0x10($a3)
|
||||
/* 0BBF34 800BB334 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0BBF38 800BB338 AFA70020 */ sw $a3, 0x20($sp)
|
||||
/* 0BBF3C 800BB33C 8FA70020 */ lw $a3, 0x20($sp)
|
||||
/* 0BBF40 800BB340 14400003 */ bnez $v0, .L800BB350
|
||||
/* 0BBF44 800BB344 00402825 */ move $a1, $v0
|
||||
/* 0BBF48 800BB348 1000000B */ b .L800BB378
|
||||
/* 0BBF4C 800BB34C 2402FFFF */ li $v0, -1
|
||||
.L800BB350:
|
||||
/* 0BBF50 800BB350 8CE40004 */ lw $a0, 4($a3)
|
||||
/* 0BBF54 800BB354 8CE60010 */ lw $a2, 0x10($a3)
|
||||
/* 0BBF58 800BB358 AFA70020 */ sw $a3, 0x20($sp)
|
||||
/* 0BBF5C 800BB35C 0C02EAA0 */ jal func_800BAA80
|
||||
/* 0BBF60 800BB360 AFA5001C */ sw $a1, 0x1c($sp)
|
||||
/* 0BBF64 800BB364 8FA70020 */ lw $a3, 0x20($sp)
|
||||
/* 0BBF68 800BB368 8FA5001C */ lw $a1, 0x1c($sp)
|
||||
/* 0BBF6C 800BB36C 240F0081 */ li $t7, 129
|
||||
/* 0BBF70 800BB370 A0EF0001 */ sb $t7, 1($a3)
|
||||
/* 0BBF74 800BB374 ACE50004 */ sw $a1, 4($a3)
|
||||
.L800BB378:
|
||||
/* 0BBF78 800BB378 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 0BBF7C 800BB37C 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
/* 0BBF80 800BB380 03E00008 */ jr $ra
|
||||
/* 0BBF84 800BB384 00000000 */ nop
|
||||
@@ -28,13 +28,13 @@ glabel func_800BB484
|
||||
/* 0BC0E8 800BB4E8 54810022 */ bnel $a0, $at, .L800BB574
|
||||
/* 0BC0EC 800BB4EC 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 0BC0F0 800BB4F0 8C690004 */ lw $t1, 4($v1)
|
||||
/* 0BC0F4 800BB4F4 3C04803B */ lui $a0, %hi(D_803AFBE8) # $a0, 0x803b
|
||||
/* 0BC0F4 800BB4F4 3C04803B */ lui $a0, %hi(gNotesAndBuffersPool) # $a0, 0x803b
|
||||
/* 0BC0F8 800BB4F8 8C650010 */ lw $a1, 0x10($v1)
|
||||
/* 0BC0FC 800BB4FC 01263821 */ addu $a3, $t1, $a2
|
||||
/* 0BC100 800BB500 AFA70028 */ sw $a3, 0x28($sp)
|
||||
/* 0BC104 800BB504 AFA3002C */ sw $v1, 0x2c($sp)
|
||||
/* 0BC108 800BB508 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0BC10C 800BB50C 2484FBE8 */ addiu $a0, %lo(D_803AFBE8) # addiu $a0, $a0, -0x418
|
||||
/* 0BC108 800BB508 0C02E3FF */ jal soundAlloc
|
||||
/* 0BC10C 800BB50C 2484FBE8 */ addiu $a0, %lo(gNotesAndBuffersPool) # addiu $a0, $a0, -0x418
|
||||
/* 0BC110 800BB510 8FA3002C */ lw $v1, 0x2c($sp)
|
||||
/* 0BC114 800BB514 8FA70028 */ lw $a3, 0x28($sp)
|
||||
/* 0BC118 800BB518 14400005 */ bnez $v0, .L800BB530
|
||||
@@ -47,7 +47,7 @@ glabel func_800BB484
|
||||
/* 0BC130 800BB530 8C660010 */ lw $a2, 0x10($v1)
|
||||
/* 0BC134 800BB534 AFA50024 */ sw $a1, 0x24($sp)
|
||||
/* 0BC138 800BB538 AFA3002C */ sw $v1, 0x2c($sp)
|
||||
/* 0BC13C 800BB53C 0C02EAA0 */ jal func_800BAA80
|
||||
/* 0BC13C 800BB53C 0C02EAA0 */ jal audio_dma_copy_immediate
|
||||
/* 0BC140 800BB540 00E02025 */ move $a0, $a3
|
||||
/* 0BC144 800BB544 8FA3002C */ lw $v1, 0x2c($sp)
|
||||
/* 0BC148 800BB548 8FA50024 */ lw $a1, 0x24($sp)
|
||||
|
||||
@@ -29,7 +29,7 @@ glabel func_800BB780
|
||||
.L800BB7EC:
|
||||
/* 0BC3EC 800BB7EC 8FA40028 */ lw $a0, 0x28($sp)
|
||||
/* 0BC3F0 800BB7F0 AFA5002C */ sw $a1, 0x2c($sp)
|
||||
/* 0BC3F4 800BB7F4 0C02EAA0 */ jal func_800BAA80
|
||||
/* 0BC3F4 800BB7F4 0C02EAA0 */ jal audio_dma_copy_immediate
|
||||
/* 0BC3F8 800BB7F8 24840010 */ addiu $a0, $a0, 0x10
|
||||
/* 0BC3FC 800BB7FC 3C0A803B */ lui $t2, %hi(D_803B7080) # $t2, 0x803b
|
||||
/* 0BC400 800BB800 8D4A7080 */ lw $t2, %lo(D_803B7080)($t2)
|
||||
|
||||
@@ -28,7 +28,7 @@ glabel func_800BB99C
|
||||
/* 0BC604 800BBA04 00001025 */ move $v0, $zero
|
||||
.L800BBA08:
|
||||
/* 0BC608 800BBA08 8FA40024 */ lw $a0, 0x24($sp)
|
||||
/* 0BC60C 800BBA0C 0C02EAA0 */ jal func_800BAA80
|
||||
/* 0BC60C 800BBA0C 0C02EAA0 */ jal audio_dma_copy_immediate
|
||||
/* 0BC610 800BBA10 AFA50028 */ sw $a1, 0x28($sp)
|
||||
/* 0BC614 800BBA14 8FA90030 */ lw $t1, 0x30($sp)
|
||||
/* 0BC618 800BBA18 3C0A803B */ lui $t2, %hi(D_803B0400) # $t2, 0x803b
|
||||
|
||||
@@ -34,7 +34,7 @@ glabel func_800BBA50
|
||||
/* 0BC6CC 800BBACC 8FA4003C */ lw $a0, 0x3c($sp)
|
||||
/* 0BC6D0 800BBAD0 8FA4003C */ lw $a0, 0x3c($sp)
|
||||
/* 0BC6D4 800BBAD4 02402825 */ move $a1, $s2
|
||||
/* 0BC6D8 800BBAD8 0C02EAA0 */ jal func_800BAA80
|
||||
/* 0BC6D8 800BBAD8 0C02EAA0 */ jal audio_dma_copy_immediate
|
||||
/* 0BC6DC 800BBADC 02003025 */ move $a2, $s0
|
||||
/* 0BC6E0 800BBAE0 8FA90048 */ lw $t1, 0x48($sp)
|
||||
/* 0BC6E4 800BBAE4 3C0A803B */ lui $t2, %hi(D_803B0400) # $t2, 0x803b
|
||||
@@ -49,7 +49,7 @@ glabel func_800BBA50
|
||||
/* 0BC708 800BBB08 A04C0000 */ sb $t4, ($v0)
|
||||
.L800BBB0C:
|
||||
/* 0BC70C 800BBB0C 02402825 */ move $a1, $s2
|
||||
/* 0BC710 800BBB10 0C02EAA0 */ jal func_800BAA80
|
||||
/* 0BC710 800BBB10 0C02EAA0 */ jal audio_dma_copy_immediate
|
||||
/* 0BC714 800BBB14 24060040 */ li $a2, 64
|
||||
/* 0BC718 800BBB18 262700D4 */ addiu $a3, $s1, 0xd4
|
||||
/* 0BC71C 800BBB1C 00E02025 */ move $a0, $a3
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
glabel func_800BBEF0
|
||||
/* 0BCAF0 800BBEF0 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* 0BCAF4 800BBEF4 14C00006 */ bnez $a2, .L800BBF10
|
||||
/* 0BCAF8 800BBEF8 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 0BCAFC 800BBEFC 3C0E1971 */ lui $t6, (0x19710515 >> 16) # lui $t6, 0x1971
|
||||
/* 0BCB00 800BBF00 3C0F800F */ lui $t7, %hi(D_800EA5DC) # $t7, 0x800f
|
||||
/* 0BCB04 800BBF04 25EFA5DC */ addiu $t7, %lo(D_800EA5DC) # addiu $t7, $t7, -0x5a24
|
||||
/* 0BCB08 800BBF08 35CE0515 */ ori $t6, (0x19710515 & 0xFFFF) # ori $t6, $t6, 0x515
|
||||
/* 0BCB0C 800BBF0C ADEE0000 */ sw $t6, ($t7)
|
||||
.L800BBF10:
|
||||
/* 0BCB10 800BBF10 0C02EFD1 */ jal func_800BBF44
|
||||
/* 0BCB14 800BBF14 AFA60020 */ sw $a2, 0x20($sp)
|
||||
/* 0BCB18 800BBF18 8FA60020 */ lw $a2, 0x20($sp)
|
||||
/* 0BCB1C 800BBF1C 3C187655 */ lui $t8, (0x76557364 >> 16) # lui $t8, 0x7655
|
||||
/* 0BCB20 800BBF20 37187364 */ ori $t8, (0x76557364 & 0xFFFF) # ori $t8, $t8, 0x7364
|
||||
/* 0BCB24 800BBF24 14C00003 */ bnez $a2, .L800BBF34
|
||||
/* 0BCB28 800BBF28 3C19800F */ lui $t9, %hi(D_800EA5DC) # $t9, 0x800f
|
||||
/* 0BCB2C 800BBF2C 2739A5DC */ addiu $t9, %lo(D_800EA5DC) # addiu $t9, $t9, -0x5a24
|
||||
/* 0BCB30 800BBF30 AF380000 */ sw $t8, ($t9)
|
||||
.L800BBF34:
|
||||
/* 0BCB34 800BBF34 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 0BCB38 800BBF38 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* 0BCB3C 800BBF3C 03E00008 */ jr $ra
|
||||
/* 0BCB40 800BBF40 00000000 */ nop
|
||||
@@ -1,7 +1,7 @@
|
||||
glabel func_800BCBC4
|
||||
/* 0BD7C4 800BCBC4 27BDFF90 */ addiu $sp, $sp, -0x70
|
||||
/* 0BD7C8 800BCBC8 3C03803B */ lui $v1, %hi(D_803B70B0) # $v1, 0x803b
|
||||
/* 0BD7CC 800BCBCC 8C6370B0 */ lw $v1, %lo(D_803B70B0)($v1)
|
||||
/* 0BD7C8 800BCBC8 3C03803B */ lui $v1, %hi(gMaxSimultaneousNotes) # $v1, 0x803b
|
||||
/* 0BD7CC 800BCBCC 8C6370B0 */ lw $v1, %lo(gMaxSimultaneousNotes)($v1)
|
||||
/* 0BD7D0 800BCBD0 AFBF0044 */ sw $ra, 0x44($sp)
|
||||
/* 0BD7D4 800BCBD4 AFB70040 */ sw $s7, 0x40($sp)
|
||||
/* 0BD7D8 800BCBD8 AFB6003C */ sw $s6, 0x3c($sp)
|
||||
@@ -53,8 +53,8 @@ glabel func_800BCBC4
|
||||
/* 0BD884 800BCC84 0C02FAE9 */ jal func_800BEBA4
|
||||
/* 0BD888 800BCC88 00000000 */ nop
|
||||
/* 0BD88C 800BCC8C A2360000 */ sb $s6, ($s1)
|
||||
/* 0BD890 800BCC90 3C03803B */ lui $v1, %hi(D_803B70B0) # $v1, 0x803b
|
||||
/* 0BD894 800BCC94 8C6370B0 */ lw $v1, %lo(D_803B70B0)($v1)
|
||||
/* 0BD890 800BCC90 3C03803B */ lui $v1, %hi(gMaxSimultaneousNotes) # $v1, 0x803b
|
||||
/* 0BD894 800BCC94 8C6370B0 */ lw $v1, %lo(gMaxSimultaneousNotes)($v1)
|
||||
/* 0BD898 800BCC98 00031080 */ sll $v0, $v1, 2
|
||||
/* 0BD89C 800BCC9C 00431023 */ subu $v0, $v0, $v1
|
||||
/* 0BD8A0 800BCCA0 10000097 */ b .L800BCF00
|
||||
@@ -218,8 +218,8 @@ glabel func_800BCBC4
|
||||
/* 0BDAE4 800BCEE4 018E7825 */ or $t7, $t4, $t6
|
||||
/* 0BDAE8 800BCEE8 A26F0001 */ sb $t7, 1($s3)
|
||||
.L800BCEEC:
|
||||
/* 0BDAEC 800BCEEC 3C03803B */ lui $v1, %hi(D_803B70B0) # $v1, 0x803b
|
||||
/* 0BDAF0 800BCEF0 8C6370B0 */ lw $v1, %lo(D_803B70B0)($v1)
|
||||
/* 0BDAEC 800BCEEC 3C03803B */ lui $v1, %hi(gMaxSimultaneousNotes) # $v1, 0x803b
|
||||
/* 0BDAF0 800BCEF0 8C6370B0 */ lw $v1, %lo(gMaxSimultaneousNotes)($v1)
|
||||
/* 0BDAF4 800BCEF4 00031080 */ sll $v0, $v1, 2
|
||||
/* 0BDAF8 800BCEF8 00431023 */ subu $v0, $v0, $v1
|
||||
/* 0BDAFC 800BCEFC 00021180 */ sll $v0, $v0, 6
|
||||
|
||||
@@ -10,8 +10,8 @@ glabel func_800BD368
|
||||
/* 0BDF88 800BD388 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 0BDF8C 800BD38C 0C02F4C6 */ jal func_800BD318
|
||||
/* 0BDF90 800BD390 02602025 */ move $a0, $s3
|
||||
/* 0BDF94 800BD394 3C14803B */ lui $s4, %hi(D_803B70B0) # $s4, 0x803b
|
||||
/* 0BDF98 800BD398 269470B0 */ addiu $s4, %lo(D_803B70B0) # addiu $s4, $s4, 0x70b0
|
||||
/* 0BDF94 800BD394 3C14803B */ lui $s4, %hi(gMaxSimultaneousNotes) # $s4, 0x803b
|
||||
/* 0BDF98 800BD398 269470B0 */ addiu $s4, %lo(gMaxSimultaneousNotes) # addiu $s4, $s4, 0x70b0
|
||||
/* 0BDF9C 800BD39C 8E8E0000 */ lw $t6, ($s4)
|
||||
/* 0BDFA0 800BD3A0 00008825 */ move $s1, $zero
|
||||
/* 0BDFA4 800BD3A4 00008025 */ move $s0, $zero
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
glabel func_800BDD34
|
||||
/* 0BE934 800BDD34 27BDFFC0 */ addiu $sp, $sp, -0x40
|
||||
/* 0BE938 800BDD38 AFB4002C */ sw $s4, 0x2c($sp)
|
||||
/* 0BE93C 800BDD3C 3C14803B */ lui $s4, %hi(D_803B70B0) # $s4, 0x803b
|
||||
/* 0BE940 800BDD40 269470B0 */ addiu $s4, %lo(D_803B70B0) # addiu $s4, $s4, 0x70b0
|
||||
/* 0BE93C 800BDD3C 3C14803B */ lui $s4, %hi(gMaxSimultaneousNotes) # $s4, 0x803b
|
||||
/* 0BE940 800BDD40 269470B0 */ addiu $s4, %lo(gMaxSimultaneousNotes) # addiu $s4, $s4, 0x70b0
|
||||
/* 0BE944 800BDD44 8E8E0000 */ lw $t6, ($s4)
|
||||
/* 0BE948 800BDD48 AFB10020 */ sw $s1, 0x20($sp)
|
||||
/* 0BE94C 800BDD4C AFBF003C */ sw $ra, 0x3c($sp)
|
||||
@@ -15,13 +15,13 @@ glabel func_800BDD34
|
||||
/* 0BE968 800BDD68 F7B40010 */ sdc1 $f20, 0x10($sp)
|
||||
/* 0BE96C 800BDD6C 19C0002A */ blez $t6, .L800BDE18
|
||||
/* 0BE970 800BDD70 00008825 */ move $s1, $zero
|
||||
/* 0BE974 800BDD74 3C17803B */ lui $s7, %hi(D_803AFBE8) # $s7, 0x803b
|
||||
/* 0BE974 800BDD74 3C17803B */ lui $s7, %hi(gNotesAndBuffersPool) # $s7, 0x803b
|
||||
/* 0BE978 800BDD78 3C16800F */ lui $s6, %hi(gZeroNoteSub) # $s6, 0x800f
|
||||
/* 0BE97C 800BDD7C 3C15803B */ lui $s5, %hi(D_803B1508) # $s5, 0x803b
|
||||
/* 0BE980 800BDD80 4480A000 */ mtc1 $zero, $f20
|
||||
/* 0BE984 800BDD84 26B51508 */ addiu $s5, %lo(D_803B1508) # addiu $s5, $s5, 0x1508
|
||||
/* 0BE988 800BDD88 26D66250 */ addiu $s6, %lo(gZeroNoteSub) # addiu $s6, $s6, 0x6250
|
||||
/* 0BE98C 800BDD8C 26F7FBE8 */ addiu $s7, %lo(D_803AFBE8) # addiu $s7, $s7, -0x418
|
||||
/* 0BE98C 800BDD8C 26F7FBE8 */ addiu $s7, %lo(gNotesAndBuffersPool) # addiu $s7, $s7, -0x418
|
||||
/* 0BE990 800BDD90 00009025 */ move $s2, $zero
|
||||
/* 0BE994 800BDD94 2413FFFF */ li $s3, -1
|
||||
/* 0BE998 800BDD98 8EAF0000 */ lw $t7, ($s5)
|
||||
@@ -48,7 +48,7 @@ glabel func_800BDD34
|
||||
/* 0BE9E8 800BDDE8 A20000A0 */ sb $zero, 0xa0($s0)
|
||||
/* 0BE9EC 800BDDEC E6140080 */ swc1 $f20, 0x80($s0)
|
||||
/* 0BE9F0 800BDDF0 E6140084 */ swc1 $f20, 0x84($s0)
|
||||
/* 0BE9F4 800BDDF4 0C02E3FF */ jal func_800B8FFC
|
||||
/* 0BE9F4 800BDDF4 0C02E3FF */ jal soundAlloc
|
||||
/* 0BE9F8 800BDDF8 AE1900BC */ sw $t9, 0xbc($s0)
|
||||
/* 0BE9FC 800BDDFC AE02001C */ sw $v0, 0x1c($s0)
|
||||
/* 0BEA00 800BDE00 8E880000 */ lw $t0, ($s4)
|
||||
|
||||
@@ -2,12 +2,12 @@ glabel create_next_audio_frame_task
|
||||
/* 0CBF30 800CB330 3C03803B */ lui $v1, %hi(D_803B70B8) # $v1, 0x803b
|
||||
/* 0CBF34 800CB334 246370B8 */ addiu $v1, %lo(D_803B70B8) # addiu $v1, $v1, 0x70b8
|
||||
/* 0CBF38 800CB338 8C620000 */ lw $v0, ($v1)
|
||||
/* 0CBF3C 800CB33C 3C18803B */ lui $t8, %hi(D_803B7088) # $t8, 0x803b
|
||||
/* 0CBF3C 800CB33C 3C18803B */ lui $t8, %hi(gAudioBufferParameters) # $t8, 0x803b
|
||||
/* 0CBF40 800CB340 27BDFF88 */ addiu $sp, $sp, -0x78
|
||||
/* 0CBF44 800CB344 244E0001 */ addiu $t6, $v0, 1
|
||||
/* 0CBF48 800CB348 AC6E0000 */ sw $t6, ($v1)
|
||||
/* 0CBF4C 800CB34C 8C6F0000 */ lw $t7, ($v1)
|
||||
/* 0CBF50 800CB350 87187088 */ lh $t8, %lo(D_803B7088)($t8)
|
||||
/* 0CBF50 800CB350 87187088 */ lh $t8, %lo(gAudioBufferParameters)($t8)
|
||||
/* 0CBF54 800CB354 AFBE0030 */ sw $fp, 0x30($sp)
|
||||
/* 0CBF58 800CB358 03A0F025 */ move $fp, $sp
|
||||
/* 0CBF5C 800CB35C 01F8001A */ div $zero, $t7, $t8
|
||||
@@ -93,10 +93,10 @@ glabel create_next_audio_frame_task
|
||||
/* 0CC080 800CB480 0C03443C */ jal osAiSetNextBuffer
|
||||
/* 0CC084 800CB484 00032880 */ sll $a1, $v1, 2
|
||||
.L800CB488:
|
||||
/* 0CC088 800CB488 3C02803B */ lui $v0, %hi(D_803B70BC) # $v0, 0x803b
|
||||
/* 0CC08C 800CB48C 8C5170BC */ lw $s1, %lo(D_803B70BC)($v0)
|
||||
/* 0CC090 800CB490 3C12803B */ lui $s2, %hi(D_803B6008) # $s2, 0x803b
|
||||
/* 0CC094 800CB494 26526008 */ addiu $s2, %lo(D_803B6008) # addiu $s2, $s2, 0x6008
|
||||
/* 0CC088 800CB488 3C02803B */ lui $v0, %hi(gCurrAudioFrameDmaCount) # $v0, 0x803b
|
||||
/* 0CC08C 800CB48C 8C5170BC */ lw $s1, %lo(gCurrAudioFrameDmaCount)($v0)
|
||||
/* 0CC090 800CB490 3C12803B */ lui $s2, %hi(gCurrAudioFrameDmaQueue) # $s2, 0x803b
|
||||
/* 0CC094 800CB494 26526008 */ addiu $s2, %lo(gCurrAudioFrameDmaQueue) # addiu $s2, $s2, 0x6008
|
||||
/* 0CC098 800CB498 1A20000D */ blez $s1, .L800CB4D0
|
||||
/* 0CC09C 800CB49C 00008025 */ move $s0, $zero
|
||||
/* 0CC0A0 800CB4A0 02402025 */ move $a0, $s2
|
||||
@@ -105,18 +105,18 @@ glabel create_next_audio_frame_task
|
||||
/* 0CC0A8 800CB4A8 0C0335D4 */ jal osRecvMesg
|
||||
/* 0CC0AC 800CB4AC 00003025 */ move $a2, $zero
|
||||
/* 0CC0B0 800CB4B0 14400002 */ bnez $v0, .L800CB4BC
|
||||
/* 0CC0B4 800CB4B4 3C09803B */ lui $t1, %hi(D_803B70BC) # $t1, 0x803b
|
||||
/* 0CC0B4 800CB4B4 3C09803B */ lui $t1, %hi(gCurrAudioFrameDmaCount) # $t1, 0x803b
|
||||
/* 0CC0B8 800CB4B8 2631FFFF */ addiu $s1, $s1, -1
|
||||
.L800CB4BC:
|
||||
/* 0CC0BC 800CB4BC 8D2970BC */ lw $t1, %lo(D_803B70BC)($t1)
|
||||
/* 0CC0BC 800CB4BC 8D2970BC */ lw $t1, %lo(gCurrAudioFrameDmaCount)($t1)
|
||||
/* 0CC0C0 800CB4C0 26100001 */ addiu $s0, $s0, 1
|
||||
/* 0CC0C4 800CB4C4 0209082A */ slt $at, $s0, $t1
|
||||
/* 0CC0C8 800CB4C8 5420FFF6 */ bnel $at, $zero, .L800CB4A4
|
||||
/* 0CC0CC 800CB4CC 02402025 */ move $a0, $s2
|
||||
.L800CB4D0:
|
||||
/* 0CC0D0 800CB4D0 3C12803B */ lui $s2, %hi(D_803B6008) # $s2, 0x803b
|
||||
/* 0CC0D0 800CB4D0 3C12803B */ lui $s2, %hi(gCurrAudioFrameDmaQueue) # $s2, 0x803b
|
||||
/* 0CC0D4 800CB4D4 1220000A */ beqz $s1, .L800CB500
|
||||
/* 0CC0D8 800CB4D8 26526008 */ addiu $s2, %lo(D_803B6008) # addiu $s2, $s2, 0x6008
|
||||
/* 0CC0D8 800CB4D8 26526008 */ addiu $s2, %lo(gCurrAudioFrameDmaQueue) # addiu $s2, $s2, 0x6008
|
||||
/* 0CC0DC 800CB4DC 1A200008 */ blez $s1, .L800CB500
|
||||
/* 0CC0E0 800CB4E0 00008025 */ move $s0, $zero
|
||||
/* 0CC0E4 800CB4E4 02402025 */ move $a0, $s2
|
||||
@@ -142,9 +142,9 @@ glabel create_next_audio_frame_task
|
||||
/* 0CC128 800CB528 5611FFFB */ bnel $s0, $s1, .L800CB518
|
||||
/* 0CC12C 800CB52C 02402025 */ move $a0, $s2
|
||||
.L800CB530:
|
||||
/* 0CC130 800CB530 3C01803B */ lui $at, %hi(D_803B70BC) # $at, 0x803b
|
||||
/* 0CC130 800CB530 3C01803B */ lui $at, %hi(gCurrAudioFrameDmaCount) # $at, 0x803b
|
||||
/* 0CC134 800CB534 0C02EB01 */ jal func_800BAC04
|
||||
/* 0CC138 800CB538 AC2070BC */ sw $zero, %lo(D_803B70BC)($at)
|
||||
/* 0CC138 800CB538 AC2070BC */ sw $zero, %lo(gCurrAudioFrameDmaCount)($at)
|
||||
/* 0CC13C 800CB53C 3C04800F */ lui $a0, %hi(D_800EA3B0) # $a0, 0x800f
|
||||
/* 0CC140 800CB540 8C84A3B0 */ lw $a0, %lo(D_800EA3B0)($a0)
|
||||
/* 0CC144 800CB544 27C50058 */ addiu $a1, $fp, 0x58
|
||||
@@ -205,8 +205,8 @@ glabel create_next_audio_frame_task
|
||||
/* 0CC214 800CB614 012A3821 */ addu $a3, $t1, $t2
|
||||
/* 0CC218 800CB618 AC2870D0 */ sw $t0, %lo(D_803B70D0)($at)
|
||||
/* 0CC21C 800CB61C 8CEB0000 */ lw $t3, ($a3)
|
||||
/* 0CC220 800CB620 3C05803B */ lui $a1, %hi(D_803B7088) # $a1, 0x803b
|
||||
/* 0CC224 800CB624 24A57088 */ addiu $a1, %lo(D_803B7088) # addiu $a1, $a1, 0x7088
|
||||
/* 0CC220 800CB620 3C05803B */ lui $a1, %hi(gAudioBufferParameters) # $a1, 0x803b
|
||||
/* 0CC224 800CB624 24A57088 */ addiu $a1, %lo(gAudioBufferParameters) # addiu $a1, $a1, 0x7088
|
||||
/* 0CC228 800CB628 AFCB0060 */ sw $t3, 0x60($fp)
|
||||
/* 0CC22C 800CB62C 84AE0006 */ lh $t6, 6($a1)
|
||||
/* 0CC230 800CB630 8FCF0074 */ lw $t7, 0x74($fp)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
glabel func_800B7034
|
||||
/* 0B7C34 800B7034 3C08803B */ lui $t0, %hi(D_803B70B0) # $t0, 0x803b
|
||||
/* 0B7C38 800B7038 250870B0 */ addiu $t0, %lo(D_803B70B0) # addiu $t0, $t0, 0x70b0
|
||||
/* 0B7C34 800B7034 3C08803B */ lui $t0, %hi(gMaxSimultaneousNotes) # $t0, 0x803b
|
||||
/* 0B7C38 800B7038 250870B0 */ addiu $t0, %lo(gMaxSimultaneousNotes) # addiu $t0, $t0, 0x70b0
|
||||
/* 0B7C3C 800B703C 8D030000 */ lw $v1, ($t0)
|
||||
/* 0B7C40 800B7040 00803825 */ move $a3, $a0
|
||||
/* 0B7C44 800B7044 00001025 */ move $v0, $zero
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
glabel func_800B70EC
|
||||
/* 0B7CEC 800B70EC 27BDFFC0 */ addiu $sp, $sp, -0x40
|
||||
/* 0B7CF0 800B70F0 AFB5002C */ sw $s5, 0x2c($sp)
|
||||
/* 0B7CF4 800B70F4 3C15803B */ lui $s5, %hi(D_803B7088) # $s5, 0x803b
|
||||
/* 0B7CF8 800B70F8 26B57088 */ addiu $s5, %lo(D_803B7088) # addiu $s5, $s5, 0x7088
|
||||
/* 0B7CF4 800B70F4 3C15803B */ lui $s5, %hi(gAudioBufferParameters) # $s5, 0x803b
|
||||
/* 0B7CF8 800B70F8 26B57088 */ addiu $s5, %lo(gAudioBufferParameters) # addiu $s5, $s5, 0x7088
|
||||
/* 0B7CFC 800B70FC AFB40028 */ sw $s4, 0x28($sp)
|
||||
/* 0B7D00 800B7100 86B4000C */ lh $s4, 0xc($s5)
|
||||
/* 0B7D04 800B7104 AFB60030 */ sw $s6, 0x30($sp)
|
||||
|
||||
@@ -19,8 +19,8 @@ glabel func_800B775C
|
||||
/* 0B83A0 800B77A0 AFA500C4 */ sw $a1, 0xc4($sp)
|
||||
/* 0B83A4 800B77A4 1520001D */ bnez $t1, .L800B781C
|
||||
/* 0B83A8 800B77A8 00009025 */ move $s2, $zero
|
||||
/* 0B83AC 800B77AC 3C04803B */ lui $a0, %hi(D_803B70B0) # $a0, 0x803b
|
||||
/* 0B83B0 800B77B0 8C8470B0 */ lw $a0, %lo(D_803B70B0)($a0)
|
||||
/* 0B83AC 800B77AC 3C04803B */ lui $a0, %hi(gMaxSimultaneousNotes) # $a0, 0x803b
|
||||
/* 0B83B0 800B77B0 8C8470B0 */ lw $a0, %lo(gMaxSimultaneousNotes)($a0)
|
||||
/* 0B83B4 800B77B4 00008825 */ move $s1, $zero
|
||||
/* 0B83B8 800B77B8 18800016 */ blez $a0, .L800B7814
|
||||
/* 0B83BC 800B77BC 00000000 */ nop
|
||||
@@ -53,8 +53,8 @@ glabel func_800B775C
|
||||
.L800B781C:
|
||||
/* 0B841C 800B781C 19200026 */ blez $t1, .L800B78B8
|
||||
/* 0B8420 800B7820 00009825 */ move $s3, $zero
|
||||
/* 0B8424 800B7824 3C04803B */ lui $a0, %hi(D_803B70B0) # $a0, 0x803b
|
||||
/* 0B8428 800B7828 8C8470B0 */ lw $a0, %lo(D_803B70B0)($a0)
|
||||
/* 0B8424 800B7824 3C04803B */ lui $a0, %hi(gMaxSimultaneousNotes) # $a0, 0x803b
|
||||
/* 0B8428 800B7828 8C8470B0 */ lw $a0, %lo(gMaxSimultaneousNotes)($a0)
|
||||
/* 0B842C 800B782C 27A50084 */ addiu $a1, $sp, 0x84
|
||||
.L800B7830:
|
||||
/* 0B8430 800B7830 1880001A */ blez $a0, .L800B789C
|
||||
@@ -95,8 +95,8 @@ glabel func_800B775C
|
||||
/* 0B84B0 800B78B0 00000000 */ nop
|
||||
/* 0B84B4 800B78B4 00009825 */ move $s3, $zero
|
||||
.L800B78B8:
|
||||
/* 0B84B8 800B78B8 3C04803B */ lui $a0, %hi(D_803B70B0) # $a0, 0x803b
|
||||
/* 0B84BC 800B78BC 8C8470B0 */ lw $a0, %lo(D_803B70B0)($a0)
|
||||
/* 0B84B8 800B78B8 3C04803B */ lui $a0, %hi(gMaxSimultaneousNotes) # $a0, 0x803b
|
||||
/* 0B84BC 800B78BC 8C8470B0 */ lw $a0, %lo(gMaxSimultaneousNotes)($a0)
|
||||
/* 0B84C0 800B78C0 27A50084 */ addiu $a1, $sp, 0x84
|
||||
/* 0B84C4 800B78C4 00008825 */ move $s1, $zero
|
||||
/* 0B84C8 800B78C8 5880001D */ blezl $a0, .L800B7940
|
||||
@@ -176,8 +176,8 @@ glabel func_800B775C
|
||||
/* 0B85D8 800B79D8 27B80084 */ addiu $t8, $sp, 0x84
|
||||
/* 0B85DC 800B79DC 02388021 */ addu $s0, $s1, $t8
|
||||
.L800B79E0:
|
||||
/* 0B85E0 800B79E0 3C19803B */ lui $t9, %hi(D_803B70B0) # $t9, 0x803b
|
||||
/* 0B85E4 800B79E4 8F3970B0 */ lw $t9, %lo(D_803B70B0)($t9)
|
||||
/* 0B85E0 800B79E0 3C19803B */ lui $t9, %hi(gMaxSimultaneousNotes) # $t9, 0x803b
|
||||
/* 0B85E4 800B79E4 8F3970B0 */ lw $t9, %lo(gMaxSimultaneousNotes)($t9)
|
||||
/* 0B85E8 800B79E8 92030000 */ lbu $v1, ($s0)
|
||||
/* 0B85EC 800B79EC 8EC80000 */ lw $t0, ($s6)
|
||||
/* 0B85F0 800B79F0 02B90019 */ multu $s5, $t9
|
||||
@@ -245,8 +245,8 @@ glabel func_800B775C
|
||||
/* 0B86D8 800B7AD8 022E8021 */ addu $s0, $s1, $t6
|
||||
/* 0B86DC 800B7ADC 24130001 */ li $s3, 1
|
||||
.L800B7AE0:
|
||||
/* 0B86E0 800B7AE0 3C18803B */ lui $t8, %hi(D_803B70B0) # $t8, 0x803b
|
||||
/* 0B86E4 800B7AE4 8F1870B0 */ lw $t8, %lo(D_803B70B0)($t8)
|
||||
/* 0B86E0 800B7AE0 3C18803B */ lui $t8, %hi(gMaxSimultaneousNotes) # $t8, 0x803b
|
||||
/* 0B86E4 800B7AE4 8F1870B0 */ lw $t8, %lo(gMaxSimultaneousNotes)($t8)
|
||||
/* 0B86E8 800B7AE8 92030000 */ lbu $v1, ($s0)
|
||||
/* 0B86EC 800B7AEC 8EC80000 */ lw $t0, ($s6)
|
||||
/* 0B86F0 800B7AF0 02B80019 */ multu $s5, $t8
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
glabel synthesis_load_note_subs_eu
|
||||
/* 0B7BB4 800B6FB4 3C06803B */ lui $a2, %hi(D_803B7088) # $a2, 0x803b
|
||||
/* 0B7BB8 800B6FB8 24C67088 */ addiu $a2, %lo(D_803B7088) # addiu $a2, $a2, 0x7088
|
||||
/* 0B7BB4 800B6FB4 3C06803B */ lui $a2, %hi(gAudioBufferParameters) # $a2, 0x803b
|
||||
/* 0B7BB8 800B6FB8 24C67088 */ addiu $a2, %lo(gAudioBufferParameters) # addiu $a2, $a2, 0x7088
|
||||
/* 0B7BBC 800B6FBC 84CE000C */ lh $t6, 0xc($a2)
|
||||
/* 0B7BC0 800B6FC0 24820001 */ addiu $v0, $a0, 1
|
||||
/* 0B7BC4 800B6FC4 00051900 */ sll $v1, $a1, 4
|
||||
/* 0B7BC8 800B6FC8 004E082A */ slt $at, $v0, $t6
|
||||
/* 0B7BCC 800B6FCC 10200017 */ beqz $at, .L800B702C
|
||||
/* 0B7BD0 800B6FD0 3C07803B */ lui $a3, %hi(D_803B70B0) # $a3, 0x803b
|
||||
/* 0B7BD0 800B6FD0 3C07803B */ lui $a3, %hi(gMaxSimultaneousNotes) # $a3, 0x803b
|
||||
/* 0B7BD4 800B6FD4 3C05803B */ lui $a1, %hi(gNoteSubsEu) # $a1, 0x803b
|
||||
/* 0B7BD8 800B6FD8 24A5FBC4 */ addiu $a1, %lo(gNoteSubsEu) # addiu $a1, $a1, -0x43c
|
||||
/* 0B7BDC 800B6FDC 24E770B0 */ addiu $a3, %lo(D_803B70B0) # addiu $a3, $a3, 0x70b0
|
||||
/* 0B7BDC 800B6FDC 24E770B0 */ addiu $a3, %lo(gMaxSimultaneousNotes) # addiu $a3, $a3, 0x70b0
|
||||
/* 0B7BE0 800B6FE0 8CF80000 */ lw $t8, ($a3)
|
||||
.L800B6FE4:
|
||||
/* 0B7BE4 800B6FE4 8CAF0000 */ lw $t7, ($a1)
|
||||
|
||||
+82
-182
@@ -1427,202 +1427,102 @@ glabel gKartWarioGroup17
|
||||
.word gKartWario281, gKartWario282, gKartWario283, gKartWario284
|
||||
.word gKartWario285, gKartWario286, gKartWario287, gKartWario288
|
||||
|
||||
glabel gKartMarioTable0
|
||||
.word gKartMarioGroup8, gKartMarioGroup7, gKartMarioGroup6, gKartMarioGroup5
|
||||
.word gKartMarioGroup4, gKartMarioGroup3, gKartMarioGroup2, gKartMarioGroup1
|
||||
.word gKartMarioGroup0
|
||||
#glabel gKartMarioTable0
|
||||
#.word gKartMarioGroup8, gKartMarioGroup7, gKartMarioGroup6, gKartMarioGroup5
|
||||
#.word gKartMarioGroup4, gKartMarioGroup3, gKartMarioGroup2, gKartMarioGroup1
|
||||
#.word gKartMarioGroup0
|
||||
|
||||
glabel gKartLuigiTable0
|
||||
.word gKartLuigiGroup8, gKartLuigiGroup7, gKartLuigiGroup6, gKartLuigiGroup5
|
||||
.word gKartLuigiGroup4, gKartLuigiGroup3, gKartLuigiGroup2, gKartLuigiGroup1
|
||||
.word gKartLuigiGroup0
|
||||
#glabel gKartLuigiTable0
|
||||
#.word gKartLuigiGroup8, gKartLuigiGroup7, gKartLuigiGroup6, gKartLuigiGroup5
|
||||
#.word gKartLuigiGroup4, gKartLuigiGroup3, gKartLuigiGroup2, gKartLuigiGroup1
|
||||
#.word gKartLuigiGroup0
|
||||
|
||||
glabel gKartYoshiTable0
|
||||
.word gKartYoshiGroup8, gKartYoshiGroup7, gKartYoshiGroup6, gKartYoshiGroup5
|
||||
.word gKartYoshiGroup4, gKartYoshiGroup3, gKartYoshiGroup2, gKartYoshiGroup1
|
||||
.word gKartYoshiGroup0
|
||||
#glabel gKartYoshiTable0
|
||||
#.word gKartYoshiGroup8, gKartYoshiGroup7, gKartYoshiGroup6, gKartYoshiGroup5
|
||||
#.word gKartYoshiGroup4, gKartYoshiGroup3, gKartYoshiGroup2, gKartYoshiGroup1
|
||||
#.word gKartYoshiGroup0
|
||||
|
||||
glabel gKartToadTable0
|
||||
.word gKartToadGroup8, gKartToadGroup7, gKartToadGroup6, gKartToadGroup5
|
||||
.word gKartToadGroup4, gKartToadGroup3, gKartToadGroup2, gKartToadGroup1
|
||||
.word gKartToadGroup0
|
||||
#glabel gKartToadTable0
|
||||
#.word gKartToadGroup8, gKartToadGroup7, gKartToadGroup6, gKartToadGroup5
|
||||
#.word gKartToadGroup4, gKartToadGroup3, gKartToadGroup2, gKartToadGroup1
|
||||
#.word gKartToadGroup0
|
||||
|
||||
glabel gKartDKTable0
|
||||
.word gKartDKGroup8, gKartDKGroup7, gKartDKGroup6, gKartDKGroup5
|
||||
.word gKartDKGroup4, gKartDKGroup3, gKartDKGroup2, gKartDKGroup1
|
||||
.word gKartDKGroup0
|
||||
#glabel gKartDKTable0
|
||||
#.word gKartDKGroup8, gKartDKGroup7, gKartDKGroup6, gKartDKGroup5
|
||||
#.word gKartDKGroup4, gKartDKGroup3, gKartDKGroup2, gKartDKGroup1
|
||||
#.word gKartDKGroup0
|
||||
|
||||
glabel gKartWarioTable0
|
||||
.word gKartWarioGroup8, gKartWarioGroup7, gKartWarioGroup6, gKartWarioGroup5
|
||||
.word gKartWarioGroup4, gKartWarioGroup3, gKartWarioGroup2, gKartWarioGroup1
|
||||
.word gKartWarioGroup0
|
||||
#glabel gKartWarioTable0
|
||||
#.word gKartWarioGroup8, gKartWarioGroup7, gKartWarioGroup6, gKartWarioGroup5
|
||||
#.word gKartWarioGroup4, gKartWarioGroup3, gKartWarioGroup2, gKartWarioGroup1
|
||||
#.word gKartWarioGroup0
|
||||
|
||||
glabel gKartPeachTable0
|
||||
.word gKartPeachGroup8, gKartPeachGroup7, gKartPeachGroup6, gKartPeachGroup5
|
||||
.word gKartPeachGroup4, gKartPeachGroup3, gKartPeachGroup2, gKartPeachGroup1
|
||||
.word gKartPeachGroup0
|
||||
#glabel gKartPeachTable0
|
||||
#.word gKartPeachGroup8, gKartPeachGroup7, gKartPeachGroup6, gKartPeachGroup5
|
||||
#.word gKartPeachGroup4, gKartPeachGroup3, gKartPeachGroup2, gKartPeachGroup1
|
||||
#.word gKartPeachGroup0
|
||||
|
||||
glabel gKartBowserTable0
|
||||
.word gKartBowserGroup8, gKartBowserGroup7, gKartBowserGroup6, gKartBowserGroup5
|
||||
.word gKartBowserGroup4, gKartBowserGroup3, gKartBowserGroup2, gKartBowserGroup1
|
||||
.word gKartBowserGroup0
|
||||
#glabel gKartBowserTable0
|
||||
#.word gKartBowserGroup8, gKartBowserGroup7, gKartBowserGroup6, gKartBowserGroup5
|
||||
#.word gKartBowserGroup4, gKartBowserGroup3, gKartBowserGroup2, gKartBowserGroup1
|
||||
#.word gKartBowserGroup0
|
||||
|
||||
glabel gKartMarioTable1
|
||||
.word gKartMarioGroup17, gKartMarioGroup16, gKartMarioGroup15, gKartMarioGroup14
|
||||
.word gKartMarioGroup13, gKartMarioGroup12, gKartMarioGroup11, gKartMarioGroup10
|
||||
.word gKartMarioGroup9
|
||||
#glabel gKartMarioTable1
|
||||
#.word gKartMarioGroup17, gKartMarioGroup16, gKartMarioGroup15, gKartMarioGroup14
|
||||
#.word gKartMarioGroup13, gKartMarioGroup12, gKartMarioGroup11, gKartMarioGroup10
|
||||
#.word gKartMarioGroup9
|
||||
|
||||
glabel gKartLuigiTable1
|
||||
.word gKartLuigiGroup17, gKartLuigiGroup16, gKartLuigiGroup15, gKartLuigiGroup14
|
||||
.word gKartLuigiGroup13, gKartLuigiGroup12, gKartLuigiGroup11, gKartLuigiGroup10
|
||||
.word gKartLuigiGroup9
|
||||
#glabel gKartLuigiTable1
|
||||
#.word gKartLuigiGroup17, gKartLuigiGroup16, gKartLuigiGroup15, gKartLuigiGroup14
|
||||
#.word gKartLuigiGroup13, gKartLuigiGroup12, gKartLuigiGroup11, gKartLuigiGroup10
|
||||
#.word gKartLuigiGroup9
|
||||
|
||||
glabel gKartYoshiTable1
|
||||
.word gKartYoshiGroup17, gKartYoshiGroup16, gKartYoshiGroup15, gKartYoshiGroup14
|
||||
.word gKartYoshiGroup13, gKartYoshiGroup12, gKartYoshiGroup11, gKartYoshiGroup10
|
||||
.word gKartYoshiGroup9
|
||||
#glabel gKartYoshiTable1
|
||||
#.word gKartYoshiGroup17, gKartYoshiGroup16, gKartYoshiGroup15, gKartYoshiGroup14
|
||||
#.word gKartYoshiGroup13, gKartYoshiGroup12, gKartYoshiGroup11, gKartYoshiGroup10
|
||||
#.word gKartYoshiGroup9
|
||||
|
||||
glabel gKartToadTable1
|
||||
.word gKartToadGroup17, gKartToadGroup16, gKartToadGroup15, gKartToadGroup14
|
||||
.word gKartToadGroup13, gKartToadGroup12, gKartToadGroup11, gKartToadGroup10
|
||||
.word gKartToadGroup9
|
||||
#glabel gKartToadTable1
|
||||
#.word gKartToadGroup17, gKartToadGroup16, gKartToadGroup15, gKartToadGroup14
|
||||
#.word gKartToadGroup13, gKartToadGroup12, gKartToadGroup11, gKartToadGroup10
|
||||
#.word gKartToadGroup9
|
||||
|
||||
glabel gKartDKTable1
|
||||
.word gKartDKGroup17, gKartDKGroup16, gKartDKGroup15, gKartDKGroup14
|
||||
.word gKartDKGroup13, gKartDKGroup12, gKartDKGroup11, gKartDKGroup10
|
||||
.word gKartDKGroup9
|
||||
#glabel gKartDKTable1
|
||||
#.word gKartDKGroup17, gKartDKGroup16, gKartDKGroup15, gKartDKGroup14
|
||||
#.word gKartDKGroup13, gKartDKGroup12, gKartDKGroup11, gKartDKGroup10
|
||||
#.word gKartDKGroup9
|
||||
|
||||
glabel gKartWarioTable1
|
||||
.word gKartWarioGroup17, gKartWarioGroup16, gKartWarioGroup15, gKartWarioGroup14
|
||||
.word gKartWarioGroup13, gKartWarioGroup12, gKartWarioGroup11, gKartWarioGroup10
|
||||
.word gKartWarioGroup9
|
||||
#glabel gKartWarioTable1
|
||||
#.word gKartWarioGroup17, gKartWarioGroup16, gKartWarioGroup15, gKartWarioGroup14
|
||||
#.word gKartWarioGroup13, gKartWarioGroup12, gKartWarioGroup11, gKartWarioGroup10
|
||||
#.word gKartWarioGroup9
|
||||
|
||||
glabel gKartPeachTable1
|
||||
.word gKartPeachGroup17, gKartPeachGroup16, gKartPeachGroup15, gKartPeachGroup14
|
||||
.word gKartPeachGroup13, gKartPeachGroup12, gKartPeachGroup11, gKartPeachGroup10
|
||||
.word gKartPeachGroup9
|
||||
#glabel gKartPeachTable1
|
||||
#.word gKartPeachGroup17, gKartPeachGroup16, gKartPeachGroup15, gKartPeachGroup14
|
||||
#.word gKartPeachGroup13, gKartPeachGroup12, gKartPeachGroup11, gKartPeachGroup10
|
||||
#.word gKartPeachGroup9
|
||||
|
||||
glabel gKartBowserTable1
|
||||
.word gKartBowserGroup17, gKartBowserGroup16, gKartBowserGroup15, gKartBowserGroup14
|
||||
.word gKartBowserGroup13, gKartBowserGroup12, gKartBowserGroup11, gKartBowserGroup10
|
||||
.word gKartBowserGroup9
|
||||
#glabel gKartBowserTable1
|
||||
#.word gKartBowserGroup17, gKartBowserGroup16, gKartBowserGroup15, gKartBowserGroup14
|
||||
#.word gKartBowserGroup13, gKartBowserGroup12, gKartBowserGroup11, gKartBowserGroup10
|
||||
#.word gKartBowserGroup9
|
||||
|
||||
glabel gKartTextureTable0
|
||||
.word gKartMarioTable0
|
||||
.word gKartLuigiTable0
|
||||
.word gKartYoshiTable0
|
||||
.word gKartToadTable0
|
||||
.word gKartDKTable0
|
||||
.word gKartWarioTable0
|
||||
.word gKartPeachTable0
|
||||
.word gKartBowserTable0
|
||||
#glabel gKartTextureTable0
|
||||
#.word gKartMarioTable0
|
||||
#.word gKartLuigiTable0
|
||||
#.word gKartYoshiTable0
|
||||
#.word gKartToadTable0
|
||||
#.word gKartDKTable0
|
||||
#.word gKartWarioTable0
|
||||
#.word gKartPeachTable0
|
||||
#.word gKartBowserTable0
|
||||
|
||||
glabel gKartTextureTable1
|
||||
.word gKartMarioTable1
|
||||
.word gKartLuigiTable1
|
||||
.word gKartYoshiTable1
|
||||
.word gKartToadTable1
|
||||
.word gKartDKTable1
|
||||
.word gKartWarioTable1
|
||||
.word gKartPeachTable1
|
||||
.word gKartBowserTable1
|
||||
|
||||
glabel gKartMarioGroup18
|
||||
.word gKartMario289, gKartMario290, gKartMario291, gKartMario292
|
||||
.word gKartMario293, gKartMario294, gKartMario295, gKartMario296
|
||||
.word gKartMario297, gKartMario298, gKartMario299, gKartMario300
|
||||
.word gKartMario301, gKartMario302, gKartMario303, gKartMario304
|
||||
.word gKartMario305, gKartMario306, gKartMario307, gKartMario308
|
||||
.word gKartMario309, gKartMario310, gKartMario311, gKartMario312
|
||||
.word gKartMario313, gKartMario314, gKartMario315, gKartMario316
|
||||
.word gKartMario317, gKartMario318, gKartMario319, gKartMario320
|
||||
|
||||
glabel gKartLuigiGroup18
|
||||
.word gKartLuigi289, gKartLuigi290, gKartLuigi291, gKartLuigi292
|
||||
.word gKartLuigi293, gKartLuigi294, gKartLuigi295, gKartLuigi296
|
||||
.word gKartLuigi297, gKartLuigi298, gKartLuigi299, gKartLuigi300
|
||||
.word gKartLuigi301, gKartLuigi302, gKartLuigi303, gKartLuigi304
|
||||
.word gKartLuigi305, gKartLuigi306, gKartLuigi307, gKartLuigi308
|
||||
.word gKartLuigi309, gKartLuigi310, gKartLuigi311, gKartLuigi312
|
||||
.word gKartLuigi313, gKartLuigi314, gKartLuigi315, gKartLuigi316
|
||||
.word gKartLuigi317, gKartLuigi318, gKartLuigi319, gKartLuigi320
|
||||
|
||||
glabel gKartBowserGroup18
|
||||
.word gKartBowser289, gKartBowser290, gKartBowser291, gKartBowser292
|
||||
.word gKartBowser293, gKartBowser294, gKartBowser295, gKartBowser296
|
||||
.word gKartBowser297, gKartBowser298, gKartBowser299, gKartBowser300
|
||||
.word gKartBowser301, gKartBowser302, gKartBowser303, gKartBowser304
|
||||
.word gKartBowser305, gKartBowser306, gKartBowser307, gKartBowser308
|
||||
.word gKartBowser309, gKartBowser310, gKartBowser311, gKartBowser312
|
||||
.word gKartBowser313, gKartBowser314, gKartBowser315, gKartBowser316
|
||||
.word gKartBowser317, gKartBowser318, gKartBowser319, gKartBowser320
|
||||
|
||||
glabel gKartToadGroup18
|
||||
.word gKartToad289, gKartToad290, gKartToad291, gKartToad292
|
||||
.word gKartToad293, gKartToad294, gKartToad295, gKartToad296
|
||||
.word gKartToad297, gKartToad298, gKartToad299, gKartToad300
|
||||
.word gKartToad301, gKartToad302, gKartToad303, gKartToad304
|
||||
.word gKartToad305, gKartToad306, gKartToad307, gKartToad308
|
||||
.word gKartToad309, gKartToad310, gKartToad311, gKartToad312
|
||||
.word gKartToad313, gKartToad314, gKartToad315, gKartToad316
|
||||
.word gKartToad317, gKartToad318, gKartToad319, gKartToad320
|
||||
|
||||
glabel gKartYoshiGroup18
|
||||
.word gKartYoshi289, gKartYoshi290, gKartYoshi291, gKartYoshi292
|
||||
.word gKartYoshi293, gKartYoshi294, gKartYoshi295, gKartYoshi296
|
||||
.word gKartYoshi297, gKartYoshi298, gKartYoshi299, gKartYoshi300
|
||||
.word gKartYoshi301, gKartYoshi302, gKartYoshi303, gKartYoshi304
|
||||
.word gKartYoshi305, gKartYoshi306, gKartYoshi307, gKartYoshi308
|
||||
.word gKartYoshi309, gKartYoshi310, gKartYoshi311, gKartYoshi312
|
||||
.word gKartYoshi313, gKartYoshi314, gKartYoshi315, gKartYoshi316
|
||||
.word gKartYoshi317, gKartYoshi318, gKartYoshi319, gKartYoshi320
|
||||
|
||||
glabel gKartDKGroup18
|
||||
.word gKartDK289, gKartDK290, gKartDK291, gKartDK292
|
||||
.word gKartDK293, gKartDK294, gKartDK295, gKartDK296
|
||||
.word gKartDK297, gKartDK298, gKartDK299, gKartDK300
|
||||
.word gKartDK301, gKartDK302, gKartDK303, gKartDK304
|
||||
.word gKartDK305, gKartDK306, gKartDK307, gKartDK308
|
||||
.word gKartDK309, gKartDK310, gKartDK311, gKartDK312
|
||||
.word gKartDK313, gKartDK314, gKartDK315, gKartDK316
|
||||
.word gKartDK317, gKartDK318, gKartDK319, gKartDK320
|
||||
|
||||
glabel gKartPeachGroup18
|
||||
.word gKartPeach289, gKartPeach290, gKartPeach291, gKartPeach292
|
||||
.word gKartPeach293, gKartPeach294, gKartPeach295, gKartPeach296
|
||||
.word gKartPeach297, gKartPeach298, gKartPeach299, gKartPeach300
|
||||
.word gKartPeach301, gKartPeach302, gKartPeach303, gKartPeach304
|
||||
.word gKartPeach305, gKartPeach306, gKartPeach307, gKartPeach308
|
||||
.word gKartPeach309, gKartPeach310, gKartPeach311, gKartPeach312
|
||||
.word gKartPeach313, gKartPeach314, gKartPeach315, gKartPeach316
|
||||
.word gKartPeach317, gKartPeach318, gKartPeach319, gKartPeach320
|
||||
|
||||
glabel gKartWarioGroup18
|
||||
.word gKartWario289, gKartWario290, gKartWario291, gKartWario292
|
||||
.word gKartWario293, gKartWario294, gKartWario295, gKartWario296
|
||||
.word gKartWario297, gKartWario298, gKartWario299, gKartWario300
|
||||
.word gKartWario301, gKartWario302, gKartWario303, gKartWario304
|
||||
.word gKartWario305, gKartWario306, gKartWario307, gKartWario308
|
||||
.word gKartWario309, gKartWario310, gKartWario311, gKartWario312
|
||||
.word gKartWario313, gKartWario314, gKartWario315, gKartWario316
|
||||
.word gKartWario317, gKartWario318, gKartWario319, gKartWario320
|
||||
|
||||
glabel gKartTextureGroup18s
|
||||
.word gKartMarioGroup18
|
||||
.word gKartLuigiGroup18
|
||||
.word gKartYoshiGroup18
|
||||
.word gKartToadGroup18
|
||||
.word gKartDKGroup18
|
||||
.word gKartWarioGroup18
|
||||
.word gKartPeachGroup18
|
||||
.word gKartBowserGroup18
|
||||
|
||||
glabel gKartPalettes
|
||||
.word gKartMarioPalette
|
||||
.word gKartLuigiPalette
|
||||
.word gKartYoshiPalette
|
||||
.word gKartToadPalette
|
||||
.word gKartDKPalette
|
||||
.word gKartWarioPalette
|
||||
.word gKartPeachPalette
|
||||
.word gKartBowserPalette
|
||||
#glabel gKartTextureTable1
|
||||
#.word gKartMarioTable1
|
||||
#.word gKartLuigiTable1
|
||||
#.word gKartYoshiTable1
|
||||
#.word gKartToadTable1
|
||||
#.word gKartDKTable1
|
||||
#.word gKartWarioTable1
|
||||
#.word gKartPeachTable1
|
||||
#.word gKartBowserTable1
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
# Mario Kart 64 (U) disassembly and split file
|
||||
# generated by n64split v0.4a - N64 ROM splitter
|
||||
|
||||
.include "macros.inc"
|
||||
|
||||
.section .data
|
||||
|
||||
glabel gKartMarioGroup18
|
||||
.word gKartMario289, gKartMario290, gKartMario291, gKartMario292
|
||||
.word gKartMario293, gKartMario294, gKartMario295, gKartMario296
|
||||
.word gKartMario297, gKartMario298, gKartMario299, gKartMario300
|
||||
.word gKartMario301, gKartMario302, gKartMario303, gKartMario304
|
||||
.word gKartMario305, gKartMario306, gKartMario307, gKartMario308
|
||||
.word gKartMario309, gKartMario310, gKartMario311, gKartMario312
|
||||
.word gKartMario313, gKartMario314, gKartMario315, gKartMario316
|
||||
.word gKartMario317, gKartMario318, gKartMario319, gKartMario320
|
||||
|
||||
glabel gKartLuigiGroup18
|
||||
.word gKartLuigi289, gKartLuigi290, gKartLuigi291, gKartLuigi292
|
||||
.word gKartLuigi293, gKartLuigi294, gKartLuigi295, gKartLuigi296
|
||||
.word gKartLuigi297, gKartLuigi298, gKartLuigi299, gKartLuigi300
|
||||
.word gKartLuigi301, gKartLuigi302, gKartLuigi303, gKartLuigi304
|
||||
.word gKartLuigi305, gKartLuigi306, gKartLuigi307, gKartLuigi308
|
||||
.word gKartLuigi309, gKartLuigi310, gKartLuigi311, gKartLuigi312
|
||||
.word gKartLuigi313, gKartLuigi314, gKartLuigi315, gKartLuigi316
|
||||
.word gKartLuigi317, gKartLuigi318, gKartLuigi319, gKartLuigi320
|
||||
|
||||
glabel gKartBowserGroup18
|
||||
.word gKartBowser289, gKartBowser290, gKartBowser291, gKartBowser292
|
||||
.word gKartBowser293, gKartBowser294, gKartBowser295, gKartBowser296
|
||||
.word gKartBowser297, gKartBowser298, gKartBowser299, gKartBowser300
|
||||
.word gKartBowser301, gKartBowser302, gKartBowser303, gKartBowser304
|
||||
.word gKartBowser305, gKartBowser306, gKartBowser307, gKartBowser308
|
||||
.word gKartBowser309, gKartBowser310, gKartBowser311, gKartBowser312
|
||||
.word gKartBowser313, gKartBowser314, gKartBowser315, gKartBowser316
|
||||
.word gKartBowser317, gKartBowser318, gKartBowser319, gKartBowser320
|
||||
|
||||
glabel gKartToadGroup18
|
||||
.word gKartToad289, gKartToad290, gKartToad291, gKartToad292
|
||||
.word gKartToad293, gKartToad294, gKartToad295, gKartToad296
|
||||
.word gKartToad297, gKartToad298, gKartToad299, gKartToad300
|
||||
.word gKartToad301, gKartToad302, gKartToad303, gKartToad304
|
||||
.word gKartToad305, gKartToad306, gKartToad307, gKartToad308
|
||||
.word gKartToad309, gKartToad310, gKartToad311, gKartToad312
|
||||
.word gKartToad313, gKartToad314, gKartToad315, gKartToad316
|
||||
.word gKartToad317, gKartToad318, gKartToad319, gKartToad320
|
||||
|
||||
glabel gKartYoshiGroup18
|
||||
.word gKartYoshi289, gKartYoshi290, gKartYoshi291, gKartYoshi292
|
||||
.word gKartYoshi293, gKartYoshi294, gKartYoshi295, gKartYoshi296
|
||||
.word gKartYoshi297, gKartYoshi298, gKartYoshi299, gKartYoshi300
|
||||
.word gKartYoshi301, gKartYoshi302, gKartYoshi303, gKartYoshi304
|
||||
.word gKartYoshi305, gKartYoshi306, gKartYoshi307, gKartYoshi308
|
||||
.word gKartYoshi309, gKartYoshi310, gKartYoshi311, gKartYoshi312
|
||||
.word gKartYoshi313, gKartYoshi314, gKartYoshi315, gKartYoshi316
|
||||
.word gKartYoshi317, gKartYoshi318, gKartYoshi319, gKartYoshi320
|
||||
|
||||
glabel gKartDKGroup18
|
||||
.word gKartDK289, gKartDK290, gKartDK291, gKartDK292
|
||||
.word gKartDK293, gKartDK294, gKartDK295, gKartDK296
|
||||
.word gKartDK297, gKartDK298, gKartDK299, gKartDK300
|
||||
.word gKartDK301, gKartDK302, gKartDK303, gKartDK304
|
||||
.word gKartDK305, gKartDK306, gKartDK307, gKartDK308
|
||||
.word gKartDK309, gKartDK310, gKartDK311, gKartDK312
|
||||
.word gKartDK313, gKartDK314, gKartDK315, gKartDK316
|
||||
.word gKartDK317, gKartDK318, gKartDK319, gKartDK320
|
||||
|
||||
glabel gKartPeachGroup18
|
||||
.word gKartPeach289, gKartPeach290, gKartPeach291, gKartPeach292
|
||||
.word gKartPeach293, gKartPeach294, gKartPeach295, gKartPeach296
|
||||
.word gKartPeach297, gKartPeach298, gKartPeach299, gKartPeach300
|
||||
.word gKartPeach301, gKartPeach302, gKartPeach303, gKartPeach304
|
||||
.word gKartPeach305, gKartPeach306, gKartPeach307, gKartPeach308
|
||||
.word gKartPeach309, gKartPeach310, gKartPeach311, gKartPeach312
|
||||
.word gKartPeach313, gKartPeach314, gKartPeach315, gKartPeach316
|
||||
.word gKartPeach317, gKartPeach318, gKartPeach319, gKartPeach320
|
||||
|
||||
glabel gKartWarioGroup18
|
||||
.word gKartWario289, gKartWario290, gKartWario291, gKartWario292
|
||||
.word gKartWario293, gKartWario294, gKartWario295, gKartWario296
|
||||
.word gKartWario297, gKartWario298, gKartWario299, gKartWario300
|
||||
.word gKartWario301, gKartWario302, gKartWario303, gKartWario304
|
||||
.word gKartWario305, gKartWario306, gKartWario307, gKartWario308
|
||||
.word gKartWario309, gKartWario310, gKartWario311, gKartWario312
|
||||
.word gKartWario313, gKartWario314, gKartWario315, gKartWario316
|
||||
.word gKartWario317, gKartWario318, gKartWario319, gKartWario320
|
||||
|
||||
glabel gKartTextureGroup18s
|
||||
.word gKartMarioGroup18
|
||||
.word gKartLuigiGroup18
|
||||
.word gKartYoshiGroup18
|
||||
.word gKartToadGroup18
|
||||
.word gKartDKGroup18
|
||||
.word gKartWarioGroup18
|
||||
.word gKartPeachGroup18
|
||||
.word gKartBowserGroup18
|
||||
|
||||
glabel gKartPalettes
|
||||
.word gKartMarioPalette
|
||||
.word gKartLuigiPalette
|
||||
.word gKartYoshiPalette
|
||||
.word gKartToadPalette
|
||||
.word gKartDKPalette
|
||||
.word gKartWarioPalette
|
||||
.word gKartPeachPalette
|
||||
.word gKartBowserPalette
|
||||
+6
-766
@@ -2683,770 +2683,10 @@ glabel D_800E9300
|
||||
|
||||
.balign 0x10
|
||||
|
||||
glabel D_800E9310
|
||||
.asciiz "Romcopy %x -> %x ,size %x\n"
|
||||
.balign 4
|
||||
#glabel D_800E9310
|
||||
#.asciiz "Romcopy %x -> %x ,size %x\n"
|
||||
#.balign 4
|
||||
|
||||
glabel D_800E932C
|
||||
.asciiz "Romcopyend\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9338
|
||||
.asciiz "CAUTION:WAVE CACHE FULL %d"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9354
|
||||
.asciiz "LOAD Rom :%x -> Ram :%x Len:%x\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9378
|
||||
.asciiz "BASE %x %x\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9384
|
||||
.asciiz "LOAD %x %x %x\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9394
|
||||
.asciiz "INSTTOP %x\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E93A4
|
||||
.asciiz "INSTMAP[0] %x\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E93B4
|
||||
.asciiz "already flags %d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E93C8
|
||||
.asciiz "already flags %d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E93DC
|
||||
.asciiz "ERR:SLOW BANK DMA BUSY\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E93F4
|
||||
.asciiz "ERR:SLOW DMA BUSY\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9408
|
||||
.asciiz "Check %d bank %d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E941C
|
||||
.asciiz "Cache Check\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E942C
|
||||
.asciiz "NO BANK ERROR\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E943C
|
||||
.asciiz "BANK %d LOADING START\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9454
|
||||
.asciiz "BANK %d LOAD MISS (NO MEMORY)!\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9474
|
||||
.asciiz "BANK %d ALREADY CACHED\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E948C
|
||||
.asciiz "BANK LOAD MISS! FOR %d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E94A4
|
||||
.asciiz "Seq %d Loading Start\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E94BC
|
||||
.asciiz "Heap Overflow Error\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E94D4
|
||||
.asciiz "SEQ %d ALREADY CACHED\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E94EC
|
||||
.asciiz "Ok,one bank slow load Start \n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E950C
|
||||
.asciiz "Sorry,too many %d bank is none.fast load Start \n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9540
|
||||
.asciiz "Seq %d:Default Load Id is %d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9560
|
||||
.asciiz "Seq Loading Start\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9574
|
||||
.asciiz "Error:Before Sequence-SlowDma remain.\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E959C
|
||||
.asciiz " Cancel Seq Start.\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E95B8
|
||||
.asciiz "SEQ %d ALREADY CACHED\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E95D0
|
||||
.asciiz "Clear Workarea %x -%x size %x \n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E95F0
|
||||
.asciiz "AudioHeap is %x\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9604
|
||||
.asciiz "Heap reset.Synth Change %x \n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9624
|
||||
.asciiz "Heap %x %x %x\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9634
|
||||
.asciiz "Main Heap Initialize.\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E964C
|
||||
.asciiz "---------- Init Completed. ------------\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9678
|
||||
.asciiz " Syndrv :[%6d]\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E968C
|
||||
.asciiz " Seqdrv :[%6d]\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E96A0
|
||||
.asciiz " audiodata :[%6d]\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E96B4
|
||||
.asciiz "---------------------------------------\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E96E0
|
||||
.asciiz "Audio: setvol: volume minus %f\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9700
|
||||
.asciiz "Audio: setvol: volume overflow %f\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9724
|
||||
.asciiz "Audio: setpitch: pitch minus %f\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9748
|
||||
.asciiz "Audio: voiceman: No bank error %d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E976C
|
||||
.asciiz "Audio: voiceman: progNo. overflow %d,%d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9798
|
||||
.asciiz "Audio: voiceman: progNo. undefined %d,%d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E97C4
|
||||
.asciiz "Audio: voiceman: No bank error %d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E97E8
|
||||
.asciiz "Audio: voiceman: Percussion Overflow %d,%d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9814
|
||||
.asciiz "Audio: voiceman: Percussion table pointer (bank %d) is irregular.\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9858
|
||||
.asciiz "Audio: voiceman: Percpointer NULL %d,%d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9884
|
||||
.asciiz "--4 %x\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E988C
|
||||
.asciiz "Stoped Voice\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E989C
|
||||
.asciiz "CAUTION:SUB IS SEPARATED FROM GROUP"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E98C0
|
||||
.asciiz "Error:Wait Track disappear\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E98DC
|
||||
.asciiz "Slow Release Batting\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E98F4
|
||||
.byte 0x40, 0x20, 0x10, 0x08
|
||||
|
||||
glabel D_800E98F8
|
||||
.asciiz "Audio:Wavemem: Bad voiceno (%d)\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E991C
|
||||
.asciiz "Audio: C-Alloc : Dealloc voice is NULL\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9944
|
||||
.asciiz "Alloc Error:Dim voice-Alloc %d"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9964
|
||||
.asciiz "Error:Same List Add\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E997C
|
||||
.asciiz "Already Cut\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E998C
|
||||
.asciiz "Audio: C-Alloc : lowerPrio is NULL\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E99B0
|
||||
.asciiz "Sub Limited Warning: Drop Voice"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E99D0
|
||||
.asciiz "Warning: Drop Voice"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E99E4
|
||||
.asciiz "Warning: Drop Voice"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E99F8
|
||||
.asciiz "Warning: Drop Voice"
|
||||
.balign 4
|
||||
|
||||
.balign 0x10
|
||||
|
||||
glabel D_800E9A10
|
||||
.asciiz "Env-Clear 0\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9A20
|
||||
.asciiz "Audio:Envp: overflow %f\n"
|
||||
.balign 4
|
||||
|
||||
.balign 0x10
|
||||
|
||||
glabel D_800E9A40
|
||||
.asciiz "Audio:Track:Warning: No Free Notetrack\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9A68
|
||||
.asciiz "SUBTRACK DIM\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9A78
|
||||
.asciiz "Audio:Track: Warning :SUBTRACK had been stolen by other Group.\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9AB8
|
||||
.asciiz "SEQID %d,BANKID %d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9ACC
|
||||
.asciiz "ERR:SUBTRACK %d NOT ALLOCATED\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9AEC
|
||||
.asciiz "Error:Same List Add\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9B04
|
||||
.asciiz "Macro Level Over Error!\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9B20
|
||||
.asciiz "Macro Level Over Error!\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9B3C
|
||||
.asciiz "WARNING: NPRG: cannot change %d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9B60
|
||||
.asciiz "Audio:Track:NOTE:UNDEFINED NOTE COM. %x\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9B8C
|
||||
.asciiz "Audio: Note:Velocity Error %d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9BAC
|
||||
.asciiz "Error: Subtrack no prg.\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9BC8
|
||||
.asciiz "ERR %x\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9BD0
|
||||
.asciiz "Error: Your assignchannel is stolen.\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9BF8
|
||||
.asciiz "Audio:Track :Call Macro Level Over Error!\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9C24
|
||||
.asciiz "Audio:Track :Loops Macro Level Over Error!\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9C50
|
||||
.asciiz "SUB:ERR:BANK %d NOT CACHED.\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9C70
|
||||
.asciiz "SUB:ERR:BANK %d NOT CACHED.\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9C90
|
||||
.asciiz "Audio:Track: CTBLCALL Macro Level Over Error!\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9CC0
|
||||
.asciiz "[%2x] \n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9CC8
|
||||
.asciiz "Err :Sub %x ,address %x:Undefined SubTrack Function %x"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9D00
|
||||
.asciiz "Disappear Sequence or Bank %d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9D20
|
||||
.asciiz "Macro Level Over Error!\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9D3C
|
||||
.asciiz "Macro Level Over Error!\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9D58
|
||||
.asciiz "Group:Undefine upper C0h command (%x)\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9D80
|
||||
.asciiz "Group:Undefined Command\n"
|
||||
.balign 4
|
||||
|
||||
.balign 0x10
|
||||
|
||||
glabel D_800E9DA0
|
||||
.byte 0x00
|
||||
|
||||
.balign 4
|
||||
|
||||
# TODO: unused?
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800E9DB4
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800E9DC4
|
||||
.float 1.0, 1.0, 1.0, 1.0
|
||||
|
||||
glabel D_800E9DD4
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
|
||||
glabel D_800E9DE4
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
|
||||
glabel D_800E9DF4
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
|
||||
glabel D_800E9E14
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800E9E24
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800E9E34
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800E9E54
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800E9E64
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800E9E74
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800E9E84
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800E9E94
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800E9EA4
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800E9EB4
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
|
||||
glabel D_800E9EC4
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
|
||||
glabel D_800E9ED4
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
|
||||
glabel D_800E9EE4
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
|
||||
glabel D_800E9EF4
|
||||
.float 1.0, 1.0, 1.0, 1.0
|
||||
|
||||
glabel D_800E9F04
|
||||
.float 1.0, 1.0, 1.0, 1.0
|
||||
|
||||
glabel D_800E9F14
|
||||
.float 1.0, 1.0, 1.0, 1.0
|
||||
|
||||
glabel D_800E9F24
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
glabel D_800E9F2C
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
glabel D_800E9F34
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
|
||||
glabel D_800E9F54
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
|
||||
glabel D_800E9F74
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
glabel D_800E9F78
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
glabel D_800E9F7C
|
||||
.float 0.0, 0.0, 0.0, 1.0
|
||||
|
||||
glabel D_800E9F8C
|
||||
.float 1.0
|
||||
|
||||
glabel D_800E9F90
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
glabel D_800E9F94
|
||||
.float 3800.0, 3.4
|
||||
.float 0.4, -1.0, 0.4, 1100.0
|
||||
.float 630.0, 3600.0, 1.0, 0.0
|
||||
.float 0.0, 0.0, 1.0, 1.0
|
||||
.float 0.0, 3800.0, 3.4, 0.4
|
||||
.float -1.0, 0.4, 1100.0, 630.0
|
||||
.float 3600.0, 1.0, 0.0, 0.0
|
||||
.float 0.0, 1.0, 1.0, 0.0
|
||||
.float 3800.0, 3.4, 0.4, -1.0
|
||||
.float 0.4, 1100.0, 630.0, 3600.0
|
||||
.float 1.0, 0.0, 0.0, 0.0
|
||||
.float 1.0, 1.0, 0.0, 3800.0
|
||||
.float 3.4, 0.4, -1.0, 0.4
|
||||
.float 1100.0, 630.0, 3600.0, 1.0
|
||||
|
||||
.macro Entry800EA06C f0, f1, f2, b0
|
||||
.float \f0, \f1, \f2
|
||||
.byte \b0, 0x00, 0x00, 0x00
|
||||
.endm
|
||||
|
||||
glabel D_800EA06C
|
||||
Entry800EA06C 0.0, 1.0, 1.0, 0x0
|
||||
Entry800EA06C 0.0, 1.0, 1.0, 0x0
|
||||
Entry800EA06C 0.0, 1.0, 1.0, 0x0
|
||||
Entry800EA06C 0.0, 1.0, 1.0, 0x0
|
||||
Entry800EA06C 0.0, 1.0, 1.0, 0x0
|
||||
Entry800EA06C 0.0, 1.0, 1.0, 0x0
|
||||
Entry800EA06C 0.0, 1.0, 1.0, 0x0
|
||||
Entry800EA06C 0.0, 1.0, 1.0, 0x0
|
||||
|
||||
glabel D_800EA0EC
|
||||
.byte 0x00
|
||||
glabel D_800EA0ED
|
||||
.byte 0x00
|
||||
glabel D_800EA0EE
|
||||
.byte 0x00
|
||||
glabel D_800EA0EF
|
||||
.byte 0x00
|
||||
|
||||
glabel D_800EA0F0
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
glabel D_800EA0F4
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.word 0x00000000, 0x00000000, 0x3f800000
|
||||
|
||||
glabel D_800EA104
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA108
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA10C
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA110
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
|
||||
glabel D_800EA120
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
|
||||
glabel D_800EA130
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
|
||||
glabel D_800EA150
|
||||
.float 1.4
|
||||
|
||||
glabel D_800EA154
|
||||
.byte 0x02, 0x02, 0x58, 0x5a, 0x03, 0x30, 0x58, 0x30
|
||||
|
||||
glabel D_800EA15C
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA160
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA164
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA168
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA16C
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA170
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA174
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA178
|
||||
.word 0x3f800000
|
||||
|
||||
glabel D_800EA17C
|
||||
.word 0x3f59999a
|
||||
|
||||
glabel D_800EA180
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA184
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA188
|
||||
.byte 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x06, 0x02, 0x02, 0x02, 0x02, 0x01, 0x08, 0x02, 0x02, 0x00
|
||||
.byte 0x01, 0x01, 0x08, 0x02, 0x02, 0x00, 0x01, 0x01
|
||||
|
||||
glabel D_800EA1A0
|
||||
.byte 0x04, 0x01, 0x01, 0x02, 0x02, 0x01, 0x03, 0x01
|
||||
.byte 0x01, 0x02, 0x02, 0x01, 0x03, 0x01, 0x01, 0x00, 0x01, 0x01, 0x03, 0x01, 0x01, 0x00, 0x01, 0x01
|
||||
|
||||
glabel D_800EA1B8
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA1BC
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA1C0
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA1C4
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA1C8
|
||||
.word 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800EA1D4
|
||||
.word 0x3f800000, 0x00000000
|
||||
|
||||
glabel D_800EA1DC
|
||||
.word 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800EA1E4
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA1E8
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA1EC
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA1F0
|
||||
.byte 0x00, 0x01, 0x02, 0x03
|
||||
|
||||
glabel D_800EA1F4
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.asciiz "Error : Queue is not empty ( %x ) \n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "specchg error\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "***** CAM MAX %d *****\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800EA244
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.asciiz "entryout !!! %d\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "AFTER GOAL VOICE FLAME %d\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "*** Pause On ***\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "*** Pause Off ***\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "CALLED!! Na_ChangeSoundMode player %d\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "CALLED!! Na_ChangeSoundMode spec %d\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "Interfaced Spec Change player %d\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "Interfaced Spec Change spec %d\n"
|
||||
.balign 4
|
||||
|
||||
.word 0xff000000, 0xff000000, 0x00000000
|
||||
|
||||
.asciiz "FX MIX %d\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "************** Seq Fadeout ***************\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "SEQ FADE OUT TIME %d\n"
|
||||
.balign 4
|
||||
|
||||
.word 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800EA3A0
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
glabel D_800EA3A4
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
glabel D_800EA3A8
|
||||
.word D_801937C0
|
||||
|
||||
glabel D_800EA3AC
|
||||
.word D_801937D8
|
||||
|
||||
glabel D_800EA3B0
|
||||
.word D_801937F0
|
||||
|
||||
glabel D_800EA3B4
|
||||
.word D_80193808
|
||||
|
||||
.asciiz "DAC:Lost 1 Frame.\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "DMA: Request queue over.( %d )\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "DMA [ %d lines] TIMEOUT\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "Warning: WaveDmaQ contains %d msgs.\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "Audio:now-max tasklen is %d / %d\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "Audio:Warning:ABI Tasklist length over (%d)\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800EA484
|
||||
.word 0x00000080
|
||||
|
||||
.asciiz "AudioSend: %d -> %d (%d)\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800EA4A4
|
||||
.word 0x00000000
|
||||
|
||||
.asciiz "Undefined Port Command %d\n"
|
||||
.balign 4
|
||||
|
||||
.word 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
.balign 4
|
||||
glabel D_800EA4D0
|
||||
.word 0x01284fff
|
||||
|
||||
glabel D_800EA4D4
|
||||
.word 0x01145fff
|
||||
|
||||
glabel D_800EA4D8
|
||||
.word 0x000068b0, 0x01180100, D_800EA4D0, 0x7fff0000
|
||||
.word 0x00002a00, 0x00004600, 0x00000000, 0x00005800
|
||||
.word 0x00002800, 0x00000000, 0x000068b0, 0x01140100
|
||||
.word D_800EA4D0, 0x7fff0000, 0x00002a00, 0x00004600
|
||||
.word 0x00000000, 0x00005800, 0x00002800, 0x00000000
|
||||
.word 0x000068b0, 0x011c0100, D_800EA4D0, 0x7fff0000
|
||||
.word 0x00002a00, 0x00004600, 0x00000000, 0x00005800
|
||||
.word 0x00002800, 0x00000000, 0x000068b0, 0x011c0100
|
||||
.word D_800EA4D0, 0x7fff0000, 0x00002a00, 0x00004600
|
||||
.word 0x00000000, 0x00005800, 0x00002800, 0x00000000
|
||||
.word 0x000068b0, 0x01100100, D_800EA4D0, 0x7fff0000
|
||||
.word 0x00002a00, 0x00004600, 0x00000000, 0x00004800
|
||||
.word 0x00002000, 0x00000000, 0x000068b0, 0x01100100
|
||||
.word D_800EA4D4, 0x7fff0000, 0x00002a00, 0x00004600
|
||||
.word 0x00000000, 0x00004800, 0x00002000, 0x00000000
|
||||
.word 0x1c000000
|
||||
|
||||
glabel D_800EA5CC
|
||||
.hword 0x0030, 0x0000
|
||||
|
||||
glabel D_800EA5D0
|
||||
.word 0x00048c00
|
||||
|
||||
glabel D_800EA5D4
|
||||
.word 0x00002600
|
||||
|
||||
glabel D_800EA5D8
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA5DC
|
||||
.word 0x00000000
|
||||
#glabel D_800E932C
|
||||
#.asciiz "Romcopyend\n"
|
||||
#.balign 4
|
||||
|
||||
@@ -0,0 +1,699 @@
|
||||
.include "macros.inc"
|
||||
|
||||
.section .rodata
|
||||
|
||||
#glabel D_800E94A4
|
||||
#.asciiz "Seq %d Loading Start\n"
|
||||
#.balign 4
|
||||
|
||||
#glabel D_800E94BC
|
||||
#.asciiz "Heap Overflow Error\n"
|
||||
#.balign 4
|
||||
|
||||
#glabel D_800E94D4
|
||||
#.asciiz "SEQ %d ALREADY CACHED\n"
|
||||
#.balign 4
|
||||
|
||||
#glabel D_800E94EC
|
||||
#.asciiz "Ok,one bank slow load Start \n"
|
||||
#.balign 4
|
||||
|
||||
#glabel D_800E950C
|
||||
#.asciiz "Sorry,too many %d bank is none.fast load Start \n"
|
||||
#.balign 4
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
glabel D_800E9540
|
||||
.asciiz "Seq %d:Default Load Id is %d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9560
|
||||
.asciiz "Seq Loading Start\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9574
|
||||
.asciiz "Error:Before Sequence-SlowDma remain.\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E959C
|
||||
.asciiz " Cancel Seq Start.\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E95B8
|
||||
.asciiz "SEQ %d ALREADY CACHED\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E95D0
|
||||
.asciiz "Clear Workarea %x -%x size %x \n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E95F0
|
||||
.asciiz "AudioHeap is %x\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9604
|
||||
.asciiz "Heap reset.Synth Change %x \n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9624
|
||||
.asciiz "Heap %x %x %x\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9634
|
||||
.asciiz "Main Heap Initialize.\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E964C
|
||||
.asciiz "---------- Init Completed. ------------\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9678
|
||||
.asciiz " Syndrv :[%6d]\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E968C
|
||||
.asciiz " Seqdrv :[%6d]\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E96A0
|
||||
.asciiz " audiodata :[%6d]\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E96B4
|
||||
.asciiz "---------------------------------------\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E96E0
|
||||
.asciiz "Audio: setvol: volume minus %f\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9700
|
||||
.asciiz "Audio: setvol: volume overflow %f\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9724
|
||||
.asciiz "Audio: setpitch: pitch minus %f\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9748
|
||||
.asciiz "Audio: voiceman: No bank error %d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E976C
|
||||
.asciiz "Audio: voiceman: progNo. overflow %d,%d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9798
|
||||
.asciiz "Audio: voiceman: progNo. undefined %d,%d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E97C4
|
||||
.asciiz "Audio: voiceman: No bank error %d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E97E8
|
||||
.asciiz "Audio: voiceman: Percussion Overflow %d,%d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9814
|
||||
.asciiz "Audio: voiceman: Percussion table pointer (bank %d) is irregular.\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9858
|
||||
.asciiz "Audio: voiceman: Percpointer NULL %d,%d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9884
|
||||
.asciiz "--4 %x\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E988C
|
||||
.asciiz "Stoped Voice\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E989C
|
||||
.asciiz "CAUTION:SUB IS SEPARATED FROM GROUP"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E98C0
|
||||
.asciiz "Error:Wait Track disappear\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E98DC
|
||||
.asciiz "Slow Release Batting\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E98F4
|
||||
.byte 0x40, 0x20, 0x10, 0x08
|
||||
|
||||
glabel D_800E98F8
|
||||
.asciiz "Audio:Wavemem: Bad voiceno (%d)\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E991C
|
||||
.asciiz "Audio: C-Alloc : Dealloc voice is NULL\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9944
|
||||
.asciiz "Alloc Error:Dim voice-Alloc %d"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9964
|
||||
.asciiz "Error:Same List Add\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E997C
|
||||
.asciiz "Already Cut\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E998C
|
||||
.asciiz "Audio: C-Alloc : lowerPrio is NULL\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E99B0
|
||||
.asciiz "Sub Limited Warning: Drop Voice"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E99D0
|
||||
.asciiz "Warning: Drop Voice"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E99E4
|
||||
.asciiz "Warning: Drop Voice"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E99F8
|
||||
.asciiz "Warning: Drop Voice"
|
||||
.balign 4
|
||||
|
||||
.balign 0x10
|
||||
|
||||
glabel D_800E9A10
|
||||
.asciiz "Env-Clear 0\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9A20
|
||||
.asciiz "Audio:Envp: overflow %f\n"
|
||||
.balign 4
|
||||
|
||||
.balign 0x10
|
||||
|
||||
glabel D_800E9A40
|
||||
.asciiz "Audio:Track:Warning: No Free Notetrack\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9A68
|
||||
.asciiz "SUBTRACK DIM\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9A78
|
||||
.asciiz "Audio:Track: Warning :SUBTRACK had been stolen by other Group.\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9AB8
|
||||
.asciiz "SEQID %d,BANKID %d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9ACC
|
||||
.asciiz "ERR:SUBTRACK %d NOT ALLOCATED\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9AEC
|
||||
.asciiz "Error:Same List Add\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9B04
|
||||
.asciiz "Macro Level Over Error!\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9B20
|
||||
.asciiz "Macro Level Over Error!\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9B3C
|
||||
.asciiz "WARNING: NPRG: cannot change %d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9B60
|
||||
.asciiz "Audio:Track:NOTE:UNDEFINED NOTE COM. %x\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9B8C
|
||||
.asciiz "Audio: Note:Velocity Error %d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9BAC
|
||||
.asciiz "Error: Subtrack no prg.\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9BC8
|
||||
.asciiz "ERR %x\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9BD0
|
||||
.asciiz "Error: Your assignchannel is stolen.\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9BF8
|
||||
.asciiz "Audio:Track :Call Macro Level Over Error!\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9C24
|
||||
.asciiz "Audio:Track :Loops Macro Level Over Error!\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9C50
|
||||
.asciiz "SUB:ERR:BANK %d NOT CACHED.\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9C70
|
||||
.asciiz "SUB:ERR:BANK %d NOT CACHED.\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9C90
|
||||
.asciiz "Audio:Track: CTBLCALL Macro Level Over Error!\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9CC0
|
||||
.asciiz "[%2x] \n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9CC8
|
||||
.asciiz "Err :Sub %x ,address %x:Undefined SubTrack Function %x"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9D00
|
||||
.asciiz "Disappear Sequence or Bank %d\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9D20
|
||||
.asciiz "Macro Level Over Error!\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9D3C
|
||||
.asciiz "Macro Level Over Error!\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9D58
|
||||
.asciiz "Group:Undefine upper C0h command (%x)\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800E9D80
|
||||
.asciiz "Group:Undefined Command\n"
|
||||
.balign 4
|
||||
|
||||
.balign 0x10
|
||||
|
||||
glabel D_800E9DA0
|
||||
.byte 0x00
|
||||
|
||||
.balign 4
|
||||
|
||||
# TODO: unused?
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800E9DB4
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800E9DC4
|
||||
.float 1.0, 1.0, 1.0, 1.0
|
||||
|
||||
glabel D_800E9DD4
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
|
||||
glabel D_800E9DE4
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
|
||||
glabel D_800E9DF4
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
|
||||
glabel D_800E9E14
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800E9E24
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800E9E34
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800E9E54
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800E9E64
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800E9E74
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800E9E84
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800E9E94
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800E9EA4
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800E9EB4
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
|
||||
glabel D_800E9EC4
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
|
||||
glabel D_800E9ED4
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
|
||||
glabel D_800E9EE4
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
|
||||
glabel D_800E9EF4
|
||||
.float 1.0, 1.0, 1.0, 1.0
|
||||
|
||||
glabel D_800E9F04
|
||||
.float 1.0, 1.0, 1.0, 1.0
|
||||
|
||||
glabel D_800E9F14
|
||||
.float 1.0, 1.0, 1.0, 1.0
|
||||
|
||||
glabel D_800E9F24
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
glabel D_800E9F2C
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
glabel D_800E9F34
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
|
||||
glabel D_800E9F54
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
|
||||
glabel D_800E9F74
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
glabel D_800E9F78
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
glabel D_800E9F7C
|
||||
.float 0.0, 0.0, 0.0, 1.0
|
||||
|
||||
glabel D_800E9F8C
|
||||
.float 1.0
|
||||
|
||||
glabel D_800E9F90
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
glabel D_800E9F94
|
||||
.float 3800.0, 3.4
|
||||
.float 0.4, -1.0, 0.4, 1100.0
|
||||
.float 630.0, 3600.0, 1.0, 0.0
|
||||
.float 0.0, 0.0, 1.0, 1.0
|
||||
.float 0.0, 3800.0, 3.4, 0.4
|
||||
.float -1.0, 0.4, 1100.0, 630.0
|
||||
.float 3600.0, 1.0, 0.0, 0.0
|
||||
.float 0.0, 1.0, 1.0, 0.0
|
||||
.float 3800.0, 3.4, 0.4, -1.0
|
||||
.float 0.4, 1100.0, 630.0, 3600.0
|
||||
.float 1.0, 0.0, 0.0, 0.0
|
||||
.float 1.0, 1.0, 0.0, 3800.0
|
||||
.float 3.4, 0.4, -1.0, 0.4
|
||||
.float 1100.0, 630.0, 3600.0, 1.0
|
||||
|
||||
.macro Entry800EA06C f0, f1, f2, b0
|
||||
.float \f0, \f1, \f2
|
||||
.byte \b0, 0x00, 0x00, 0x00
|
||||
.endm
|
||||
|
||||
glabel D_800EA06C
|
||||
Entry800EA06C 0.0, 1.0, 1.0, 0x0
|
||||
Entry800EA06C 0.0, 1.0, 1.0, 0x0
|
||||
Entry800EA06C 0.0, 1.0, 1.0, 0x0
|
||||
Entry800EA06C 0.0, 1.0, 1.0, 0x0
|
||||
Entry800EA06C 0.0, 1.0, 1.0, 0x0
|
||||
Entry800EA06C 0.0, 1.0, 1.0, 0x0
|
||||
Entry800EA06C 0.0, 1.0, 1.0, 0x0
|
||||
Entry800EA06C 0.0, 1.0, 1.0, 0x0
|
||||
|
||||
glabel D_800EA0EC
|
||||
.byte 0x00
|
||||
glabel D_800EA0ED
|
||||
.byte 0x00
|
||||
glabel D_800EA0EE
|
||||
.byte 0x00
|
||||
glabel D_800EA0EF
|
||||
.byte 0x00
|
||||
|
||||
glabel D_800EA0F0
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
glabel D_800EA0F4
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.word 0x00000000, 0x00000000, 0x3f800000
|
||||
|
||||
glabel D_800EA104
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA108
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA10C
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA110
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
|
||||
glabel D_800EA120
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
|
||||
glabel D_800EA130
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
.float 0.0, 0.0, 0.0, 0.0
|
||||
|
||||
glabel D_800EA150
|
||||
.float 1.4
|
||||
|
||||
glabel D_800EA154
|
||||
.byte 0x02, 0x02, 0x58, 0x5a, 0x03, 0x30, 0x58, 0x30
|
||||
|
||||
glabel D_800EA15C
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA160
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA164
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA168
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA16C
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA170
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA174
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA178
|
||||
.word 0x3f800000
|
||||
|
||||
glabel D_800EA17C
|
||||
.word 0x3f59999a
|
||||
|
||||
glabel D_800EA180
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA184
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA188
|
||||
.byte 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x06, 0x02, 0x02, 0x02, 0x02, 0x01, 0x08, 0x02, 0x02, 0x00
|
||||
.byte 0x01, 0x01, 0x08, 0x02, 0x02, 0x00, 0x01, 0x01
|
||||
|
||||
glabel D_800EA1A0
|
||||
.byte 0x04, 0x01, 0x01, 0x02, 0x02, 0x01, 0x03, 0x01
|
||||
.byte 0x01, 0x02, 0x02, 0x01, 0x03, 0x01, 0x01, 0x00, 0x01, 0x01, 0x03, 0x01, 0x01, 0x00, 0x01, 0x01
|
||||
|
||||
glabel D_800EA1B8
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA1BC
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA1C0
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA1C4
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA1C8
|
||||
.word 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800EA1D4
|
||||
.word 0x3f800000, 0x00000000
|
||||
|
||||
glabel D_800EA1DC
|
||||
.word 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800EA1E4
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA1E8
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA1EC
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA1F0
|
||||
.byte 0x00, 0x01, 0x02, 0x03
|
||||
|
||||
glabel D_800EA1F4
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.asciiz "Error : Queue is not empty ( %x ) \n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "specchg error\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "***** CAM MAX %d *****\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800EA244
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.asciiz "entryout !!! %d\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "AFTER GOAL VOICE FLAME %d\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "*** Pause On ***\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "*** Pause Off ***\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "CALLED!! Na_ChangeSoundMode player %d\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "CALLED!! Na_ChangeSoundMode spec %d\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "Interfaced Spec Change player %d\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "Interfaced Spec Change spec %d\n"
|
||||
.balign 4
|
||||
|
||||
.word 0xff000000, 0xff000000, 0x00000000
|
||||
|
||||
.asciiz "FX MIX %d\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "************** Seq Fadeout ***************\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "SEQ FADE OUT TIME %d\n"
|
||||
.balign 4
|
||||
|
||||
.word 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
glabel D_800EA3A0
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
glabel D_800EA3A4
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
glabel D_800EA3A8
|
||||
.word D_801937C0
|
||||
|
||||
glabel D_800EA3AC
|
||||
.word D_801937D8
|
||||
|
||||
glabel D_800EA3B0
|
||||
.word D_801937F0
|
||||
|
||||
glabel D_800EA3B4
|
||||
.word D_80193808
|
||||
|
||||
.asciiz "DAC:Lost 1 Frame.\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "DMA: Request queue over.( %d )\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "DMA [ %d lines] TIMEOUT\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "Warning: WaveDmaQ contains %d msgs.\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "Audio:now-max tasklen is %d / %d\n"
|
||||
.balign 4
|
||||
|
||||
.asciiz "Audio:Warning:ABI Tasklist length over (%d)\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800EA484
|
||||
.word 0x00000080
|
||||
|
||||
.asciiz "AudioSend: %d -> %d (%d)\n"
|
||||
.balign 4
|
||||
|
||||
glabel D_800EA4A4
|
||||
.word 0x00000000
|
||||
|
||||
.asciiz "Undefined Port Command %d\n"
|
||||
.balign 4
|
||||
|
||||
.word 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
.balign 4
|
||||
glabel D_800EA4D0
|
||||
.word 0x01284fff
|
||||
|
||||
glabel D_800EA4D4
|
||||
.word 0x01145fff
|
||||
|
||||
glabel D_800EA4D8
|
||||
.word 0x000068b0, 0x01180100, D_800EA4D0, 0x7fff0000
|
||||
.word 0x00002a00, 0x00004600, 0x00000000, 0x00005800
|
||||
.word 0x00002800, 0x00000000, 0x000068b0, 0x01140100
|
||||
.word D_800EA4D0, 0x7fff0000, 0x00002a00, 0x00004600
|
||||
.word 0x00000000, 0x00005800, 0x00002800, 0x00000000
|
||||
.word 0x000068b0, 0x011c0100, D_800EA4D0, 0x7fff0000
|
||||
.word 0x00002a00, 0x00004600, 0x00000000, 0x00005800
|
||||
.word 0x00002800, 0x00000000, 0x000068b0, 0x011c0100
|
||||
.word D_800EA4D0, 0x7fff0000, 0x00002a00, 0x00004600
|
||||
.word 0x00000000, 0x00005800, 0x00002800, 0x00000000
|
||||
.word 0x000068b0, 0x01100100, D_800EA4D0, 0x7fff0000
|
||||
.word 0x00002a00, 0x00004600, 0x00000000, 0x00004800
|
||||
.word 0x00002000, 0x00000000, 0x000068b0, 0x01100100
|
||||
.word D_800EA4D4, 0x7fff0000, 0x00002a00, 0x00004600
|
||||
.word 0x00000000, 0x00004800, 0x00002000, 0x00000000
|
||||
.word 0x1c000000
|
||||
|
||||
glabel D_800EA5CC
|
||||
.hword 0x0030, 0x0000
|
||||
|
||||
glabel D_800EA5D0
|
||||
.word 0x00048c00
|
||||
|
||||
glabel D_800EA5D4
|
||||
.word 0x00002600
|
||||
|
||||
glabel D_800EA5D8
|
||||
.word 0x00000000
|
||||
|
||||
glabel D_800EA5DC
|
||||
.word 0x00000000
|
||||
@@ -37,6 +37,7 @@ typedef s32 intptr_t;
|
||||
typedef s32 ptrdiff_t;
|
||||
#else
|
||||
#include <stddef.h>
|
||||
typedef ptrdiff_t ssize_t;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -387,7 +387,7 @@ typedef struct {
|
||||
/* 0x023A */ s16 unk_23A;
|
||||
/* 0x023C */ f32 unk_23C;
|
||||
/* 0x0240 */ s32 unk_240;
|
||||
/* 0x0244 */ u16 unk_244[4];
|
||||
/* 0x0244 */ u16 unk_244[4]; // [0] Active texture group
|
||||
/* 0x0244 */ u16 unk_24C[4];
|
||||
/* 0x0254 */ u16 characterId;
|
||||
/* 0x0256 */ s16 unk_256;
|
||||
|
||||
@@ -224,8 +224,12 @@ SECTIONS
|
||||
BUILD_DIR/data/data_0DD0A0_1.o(.data);
|
||||
BUILD_DIR/src/code_8001C4D0.o(.data);
|
||||
BUILD_DIR/data/data_0DD0A0_1_1.o(.data);
|
||||
BUILD_DIR/src/code_80027040.o(.data);
|
||||
BUILD_DIR/data/data_0DD0A0_1_2.o(.data);
|
||||
BUILD_DIR/src/kart_attributes.inc.o(.data);
|
||||
BUILD_DIR/data/data_0DD0A0_2.o(.rodata);
|
||||
BUILD_DIR/src/audio/load.o(.rodata*);
|
||||
BUILD_DIR/data/data_0DD0A0_2_1_0.o(.rodata);
|
||||
BUILD_DIR/src/os/osInitialize.o(.data*);
|
||||
BUILD_DIR/src/os/osCreateViManager.o(.data);
|
||||
BUILD_DIR/src/os/osViTable.o(.data);
|
||||
|
||||
@@ -3,6 +3,13 @@
|
||||
|
||||
#include "internal.h"
|
||||
|
||||
#define AUDIO_LOCK_UNINITIALIZED 0
|
||||
#define AUDIO_LOCK_NOT_LOADING 0x76557364
|
||||
#define AUDIO_LOCK_LOADING 0x19710515
|
||||
|
||||
extern struct AdsrEnvelope gDefaultEnvelope[3];
|
||||
|
||||
// number of DMAs performed during this frame
|
||||
extern s32 gCurrAudioFrameDmaCount;
|
||||
|
||||
#endif
|
||||
|
||||
+2
-2
@@ -314,7 +314,7 @@ GLOBAL_ASM("asm/non_matchings/audio/effects/func_800BE5BC.s")
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
|
||||
extern ? D_803B7088;
|
||||
extern ? gAudioBufferParameters;
|
||||
|
||||
f32 func_800BE5E0(void *arg0) {
|
||||
f32 temp_f0;
|
||||
@@ -352,7 +352,7 @@ loop_6:
|
||||
arg0->unk1 = 0;
|
||||
} else {
|
||||
if (temp_a2 >= 4) {
|
||||
arg0->unk4 = ((temp_a2 * D_803B7088.unkC) / D_803B7088.unk0) / 4;
|
||||
arg0->unk4 = ((temp_a2 * gAudioBufferParameters.unkC) / gAudioBufferParameters.unk0) / 4;
|
||||
}
|
||||
phi_a2 = arg0->unk4;
|
||||
if (arg0->unk4 == 0) {
|
||||
|
||||
+78
-75
@@ -1,5 +1,8 @@
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include "heap.h"
|
||||
|
||||
extern struct SoundAllocPool gNotesAndBuffersPool;
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
@@ -61,7 +64,7 @@ GLOBAL_ASM("asm/non_matchings/audio/heap/func_800B8DE0.s")
|
||||
? func_800BF004(? *, void *); // extern
|
||||
extern s32 D_803B1508;
|
||||
extern ? D_803B5FC8;
|
||||
extern s32 D_803B70B0;
|
||||
extern s32 gMaxSimultaneousNotes;
|
||||
|
||||
void func_800B8EA8(s32 arg0) {
|
||||
s32 temp_s2;
|
||||
@@ -73,7 +76,7 @@ void func_800B8EA8(s32 arg0) {
|
||||
s32 phi_s2;
|
||||
s32 phi_v0;
|
||||
|
||||
temp_v0 = D_803B70B0;
|
||||
temp_v0 = gMaxSimultaneousNotes;
|
||||
phi_s2 = 0;
|
||||
phi_v0 = temp_v0;
|
||||
if (temp_v0 > 0) {
|
||||
@@ -90,7 +93,7 @@ void func_800B8EA8(s32 arg0) {
|
||||
func_800BCB48(temp_s0);
|
||||
func_800BD6F4(temp_s0);
|
||||
func_800BF004(&D_803B5FC8, temp_s0);
|
||||
phi_v0 = D_803B70B0;
|
||||
phi_v0 = gMaxSimultaneousNotes;
|
||||
}
|
||||
temp_s2 = phi_s2 + 1;
|
||||
phi_s1 += 0xC0;
|
||||
@@ -127,7 +130,7 @@ GLOBAL_ASM("asm/non_matchings/audio/heap/func_800B8F8C.s")
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
u32 func_800B8FFC(void *arg0, s32 arg1) {
|
||||
u32 soundAlloc(void *arg0, s32 arg1) {
|
||||
s32 temp_t6;
|
||||
s8 *temp_a1;
|
||||
u32 temp_a2;
|
||||
@@ -153,7 +156,7 @@ u32 func_800B8FFC(void *arg0, s32 arg1) {
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/heap/func_800B8FFC.s")
|
||||
GLOBAL_ASM("asm/non_matchings/audio/heap/soundAlloc.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
@@ -222,16 +225,16 @@ GLOBAL_ASM("asm/non_matchings/audio/heap/func_800B90F0.s")
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
s32 func_800B8FFC(? *, s32); // extern
|
||||
s32 soundAlloc(? *, s32); // extern
|
||||
? func_800B907C(? *, s32, s32); // extern
|
||||
extern ? D_803AFBC8;
|
||||
extern ? D_803AFBE8;
|
||||
extern ? gNotesAndBuffersPool;
|
||||
extern ? D_803AFC18;
|
||||
|
||||
void func_800B914C(void *arg0) {
|
||||
D_803AFBC8.unk4 = D_803AFBC8.unk0;
|
||||
func_800B907C(&D_803AFBE8, func_800B8FFC(&D_803AFBC8, arg0->unk0), arg0->unk0);
|
||||
func_800B907C(&D_803AFC18, func_800B8FFC(&D_803AFBC8, arg0->unkC), arg0->unkC);
|
||||
func_800B907C(&gNotesAndBuffersPool, soundAlloc(&D_803AFBC8, arg0->unk0), arg0->unk0);
|
||||
func_800B907C(&D_803AFC18, soundAlloc(&D_803AFBC8, arg0->unkC), arg0->unkC);
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/heap/func_800B914C.s")
|
||||
@@ -239,7 +242,7 @@ GLOBAL_ASM("asm/non_matchings/audio/heap/func_800B914C.s")
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
s32 func_800B8FFC(? *, s32); // extern
|
||||
s32 soundAlloc(? *, s32); // extern
|
||||
? func_800B907C(? *, s32, s32); // extern
|
||||
extern ? D_803AFC18;
|
||||
extern ? D_803AFC28;
|
||||
@@ -247,8 +250,8 @@ extern ? D_803AFC38;
|
||||
|
||||
void func_800B91C8(void *arg0) {
|
||||
D_803AFC18.unk4 = D_803AFC18.unk0;
|
||||
func_800B907C(&D_803AFC28, func_800B8FFC(&D_803AFC18, arg0->unk0), arg0->unk0);
|
||||
func_800B907C(&D_803AFC38, func_800B8FFC(&D_803AFC18, arg0->unk4), arg0->unk4);
|
||||
func_800B907C(&D_803AFC28, soundAlloc(&D_803AFC18, arg0->unk0), arg0->unk0);
|
||||
func_800B907C(&D_803AFC38, soundAlloc(&D_803AFC18, arg0->unk4), arg0->unk4);
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/heap/func_800B91C8.s")
|
||||
@@ -256,7 +259,7 @@ GLOBAL_ASM("asm/non_matchings/audio/heap/func_800B91C8.s")
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
s32 func_800B8FFC(? *, s32); // extern
|
||||
s32 soundAlloc(? *, s32); // extern
|
||||
? func_800B907C(? *, s32, s32); // extern
|
||||
? func_800B909C(? *); // extern
|
||||
extern ? D_803AFC28;
|
||||
@@ -269,9 +272,9 @@ extern ? D_803AFFEC;
|
||||
|
||||
void func_800B9244(void *arg0) {
|
||||
D_803AFC28.unk4 = D_803AFC28.unk0;
|
||||
func_800B907C(&D_803AFC4C, func_800B8FFC(&D_803AFC28, arg0->unk0), arg0->unk0);
|
||||
func_800B907C(&D_803AFE1C, func_800B8FFC(&D_803AFC28, arg0->unk4), arg0->unk4);
|
||||
func_800B907C(&D_803AFFEC, func_800B8FFC(&D_803AFC28, arg0->unk8), arg0->unk8);
|
||||
func_800B907C(&D_803AFC4C, soundAlloc(&D_803AFC28, arg0->unk0), arg0->unk0);
|
||||
func_800B907C(&D_803AFE1C, soundAlloc(&D_803AFC28, arg0->unk4), arg0->unk4);
|
||||
func_800B907C(&D_803AFFEC, soundAlloc(&D_803AFC28, arg0->unk8), arg0->unk8);
|
||||
func_800B909C(&D_803AFC48);
|
||||
func_800B909C(&D_803AFE18);
|
||||
func_800B909C(&D_803AFFE8);
|
||||
@@ -282,7 +285,7 @@ GLOBAL_ASM("asm/non_matchings/audio/heap/func_800B9244.s")
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
s32 func_800B8FFC(? *, s32); // extern
|
||||
s32 soundAlloc(? *, s32); // extern
|
||||
? func_800B907C(? *, s32, s32); // extern
|
||||
? func_800B90B0(? *); // extern
|
||||
extern ? D_803AFC38;
|
||||
@@ -295,9 +298,9 @@ extern ? D_803B0180;
|
||||
|
||||
void func_800B9300(void *arg0) {
|
||||
D_803AFC38.unk4 = D_803AFC38.unk0;
|
||||
func_800B907C(&D_803AFDE0, func_800B8FFC(&D_803AFC38, arg0->unk0), arg0->unk0);
|
||||
func_800B907C(&D_803AFFB0, func_800B8FFC(&D_803AFC38, arg0->unk4), arg0->unk4);
|
||||
func_800B907C(&D_803B0180, func_800B8FFC(&D_803AFC38, arg0->unk8), arg0->unk8);
|
||||
func_800B907C(&D_803AFDE0, soundAlloc(&D_803AFC38, arg0->unk0), arg0->unk0);
|
||||
func_800B907C(&D_803AFFB0, soundAlloc(&D_803AFC38, arg0->unk4), arg0->unk4);
|
||||
func_800B907C(&D_803B0180, soundAlloc(&D_803AFC38, arg0->unk8), arg0->unk8);
|
||||
func_800B90B0(&D_803AFDDC);
|
||||
func_800B90B0(&D_803AFFAC);
|
||||
func_800B90B0(&D_803B017C);
|
||||
@@ -310,7 +313,7 @@ GLOBAL_ASM("asm/non_matchings/audio/heap/func_800B9300.s")
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_800B8EA8(s16, s32, s16, s32 *); // extern
|
||||
? func_800B8F8C(s16, s32); // extern
|
||||
s32 func_800B8FFC(s32, s32); // extern
|
||||
s32 soundAlloc(s32, s32); // extern
|
||||
extern ? D_803AFC48;
|
||||
extern ? D_803AFE18;
|
||||
extern ? D_803AFFE8;
|
||||
@@ -320,7 +323,7 @@ extern ? D_803B0400;
|
||||
extern void *D_803B1508;
|
||||
extern ? D_803B1510;
|
||||
extern ? D_803B1A30;
|
||||
extern s32 D_803B70B0;
|
||||
extern s32 gMaxSimultaneousNotes;
|
||||
|
||||
u32 func_800B93BC(s32 *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) {
|
||||
? *sp34;
|
||||
@@ -426,7 +429,7 @@ loop_1:
|
||||
phi_t2_2 = phi_t2;
|
||||
if (sp33 == 1) {
|
||||
if (phi_t1 == 4) {
|
||||
temp_a1 = D_803B70B0;
|
||||
temp_a1 = gMaxSimultaneousNotes;
|
||||
phi_v1 = 0;
|
||||
phi_v1_2 = 0;
|
||||
if (temp_a1 > 0) {
|
||||
@@ -452,7 +455,7 @@ loop_18:
|
||||
}
|
||||
}
|
||||
if (phi_t2 == 4) {
|
||||
temp_a1_2 = D_803B70B0;
|
||||
temp_a1_2 = gMaxSimultaneousNotes;
|
||||
phi_v1_3 = 0;
|
||||
phi_v1_4 = 0;
|
||||
if (temp_a1_2 > 0) {
|
||||
@@ -546,7 +549,7 @@ loop_54:
|
||||
}
|
||||
if (sp20 == 1) {
|
||||
if (phi_t1_2 == 2) {
|
||||
temp_a1_3 = D_803B70B0;
|
||||
temp_a1_3 = gMaxSimultaneousNotes;
|
||||
phi_v1_5 = 0;
|
||||
phi_v1_6 = 0;
|
||||
if (temp_a1_3 > 0) {
|
||||
@@ -576,7 +579,7 @@ block_68:
|
||||
phi_a2 = phi_a2_2;
|
||||
phi_a2 = phi_a2_2;
|
||||
if (phi_t2_2 == 2) {
|
||||
temp_a1_4 = D_803B70B0;
|
||||
temp_a1_4 = gMaxSimultaneousNotes;
|
||||
phi_v1_7 = 0;
|
||||
phi_v1_8 = 0;
|
||||
if (temp_a1_4 > 0) {
|
||||
@@ -717,7 +720,7 @@ block_99:
|
||||
}
|
||||
arg4 = arg4;
|
||||
arg3 = phi_a3;
|
||||
temp_v0_9 = func_800B8FFC(arg0 + 4, arg1 * arg2);
|
||||
temp_v0_9 = soundAlloc(arg0 + 4, arg1 * arg2);
|
||||
(arg0 + (*arg0 * 0xC))->unk14 = temp_v0_9;
|
||||
if (temp_v0_9 == 0) {
|
||||
if ((arg3 != 0) && (arg3 != 1)) {
|
||||
@@ -855,7 +858,7 @@ GLOBAL_ASM("asm/non_matchings/audio/heap/func_800B9FB8.s")
|
||||
? func_800BEF2C(? *); /* extern */
|
||||
extern ? D_803B1510;
|
||||
extern ? D_803B1A30;
|
||||
extern ? D_803B7088;
|
||||
extern ? gAudioBufferParameters;
|
||||
|
||||
s32 func_800BA00C(void) {
|
||||
? *temp_s0;
|
||||
@@ -894,7 +897,7 @@ s32 func_800BA00C(void) {
|
||||
D_803B0504 = temp_v0 - 1;
|
||||
func_800B9FB8();
|
||||
} else {
|
||||
temp_a2 = D_803B70B0;
|
||||
temp_a2 = gMaxSimultaneousNotes;
|
||||
phi_v1 = 0;
|
||||
phi_a0 = 0;
|
||||
phi_a2 = temp_a2;
|
||||
@@ -904,10 +907,10 @@ s32 func_800BA00C(void) {
|
||||
temp_v0_2 = D_803B1508 + phi_v1;
|
||||
phi_a0 = temp_a0;
|
||||
if (((temp_v0_2->unkB0 >> 0x1F) != 0) && (temp_v0_2->unk59 != 0)) {
|
||||
temp_v0_2->unk68 = D_803B7088.unk18;
|
||||
temp_v0_2->unk68 = gAudioBufferParameters.unk18;
|
||||
temp_v0_3 = D_803B1508 + phi_v1;
|
||||
temp_v0_3->unk58 = temp_v0_3->unk58 | 0x10;
|
||||
phi_a2 = D_803B70B0;
|
||||
phi_a2 = gMaxSimultaneousNotes;
|
||||
}
|
||||
phi_v1 += 0xC0;
|
||||
} while (temp_a0 < phi_a2);
|
||||
@@ -967,7 +970,7 @@ GLOBAL_ASM("asm/non_matchings/audio/heap/func_800BA00C.s")
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_800B8DE0(); // extern
|
||||
s32 func_800B8FFC(? *, s32); // extern
|
||||
s32 soundAlloc(? *, s32); // extern
|
||||
? func_800B914C(? *, s16, s16, u16); // extern
|
||||
? func_800B91C8(? *); // extern
|
||||
? func_800B9244(? *); // extern
|
||||
@@ -985,17 +988,17 @@ extern u16 D_803AFBC0;
|
||||
extern u8 D_803AFBC3;
|
||||
extern s32 D_803AFBC4;
|
||||
extern s32 D_803AFBD0;
|
||||
extern ? D_803AFBE8;
|
||||
extern ? gNotesAndBuffersPool;
|
||||
extern ? D_803B0348;
|
||||
extern ? D_803B0358;
|
||||
extern ? D_803B0360;
|
||||
extern ? D_803B0370;
|
||||
extern u8 D_803B0501;
|
||||
extern s32 D_803B1508;
|
||||
extern s32 D_803B6E58;
|
||||
extern ? D_803B7088;
|
||||
extern s32 gSampleDmaNumListItems;
|
||||
extern ? gAudioBufferParameters;
|
||||
extern s32 D_803B70AC;
|
||||
extern s32 D_803B70B0;
|
||||
extern s32 gMaxSimultaneousNotes;
|
||||
extern s16 D_803B70B4;
|
||||
extern ? D_803B70C8;
|
||||
extern ? D_803B70D0;
|
||||
@@ -1034,36 +1037,36 @@ void func_800BA250(void) {
|
||||
s32 phi_s1;
|
||||
|
||||
temp_s6 = (D_803B0501 * 0x28) + &D_800EA4D8;
|
||||
D_803B6E58 = 0;
|
||||
gSampleDmaNumListItems = 0;
|
||||
temp_t9 = temp_s6->unk0;
|
||||
D_803B7088.unk2 = temp_t9;
|
||||
D_803B7088.unk4 = osAiSetFrequency(temp_t9 & 0xFFFF);
|
||||
temp_a3 = D_803B7088.unk2;
|
||||
D_803B7088.unk6 = ((temp_a3 / D_803B717C) + 0xF) & 0xFFF0;
|
||||
temp_v1 = D_803B7088.unk6;
|
||||
gAudioBufferParameters.unk2 = temp_t9;
|
||||
gAudioBufferParameters.unk4 = osAiSetFrequency(temp_t9 & 0xFFFF);
|
||||
temp_a3 = gAudioBufferParameters.unk2;
|
||||
gAudioBufferParameters.unk6 = ((temp_a3 / D_803B717C) + 0xF) & 0xFFF0;
|
||||
temp_v1 = gAudioBufferParameters.unk6;
|
||||
temp_t0 = temp_v1 + 0x10;
|
||||
D_803B7088.unkA = temp_v1 - 0x10;
|
||||
D_803B7088.unk8 = temp_t0;
|
||||
D_803B7088.unkC = (temp_t0 / 0xC0) + 1;
|
||||
temp_a2 = D_803B7088.unkC;
|
||||
D_803B7088.unkE = (temp_v1 / temp_a2) & 0xFFF8;
|
||||
temp_t1 = D_803B7088.unkE;
|
||||
gAudioBufferParameters.unkA = temp_v1 - 0x10;
|
||||
gAudioBufferParameters.unk8 = temp_t0;
|
||||
gAudioBufferParameters.unkC = (temp_t0 / 0xC0) + 1;
|
||||
temp_a2 = gAudioBufferParameters.unkC;
|
||||
gAudioBufferParameters.unkE = (temp_v1 / temp_a2) & 0xFFF8;
|
||||
temp_t1 = gAudioBufferParameters.unkE;
|
||||
temp_f0 = temp_a2;
|
||||
D_803B7088.unk10 = temp_t1 + 8;
|
||||
D_803B7088.unk12 = temp_t1 - 8;
|
||||
D_803B7088.unk14 = 32000.0f / temp_a3;
|
||||
D_803B7088.unk1C = D_800F2E98 / temp_f0;
|
||||
D_803B7088.unk18 = 1.0f / temp_f0;
|
||||
D_803B70B0 = temp_s6->unk5;
|
||||
gAudioBufferParameters.unk10 = temp_t1 + 8;
|
||||
gAudioBufferParameters.unk12 = temp_t1 - 8;
|
||||
gAudioBufferParameters.unk14 = 32000.0f / temp_a3;
|
||||
gAudioBufferParameters.unk1C = D_800F2E98 / temp_f0;
|
||||
gAudioBufferParameters.unk18 = 1.0f / temp_f0;
|
||||
gMaxSimultaneousNotes = temp_s6->unk5;
|
||||
D_803AFBC0 = temp_s6->unkC;
|
||||
D_803B70B4 = ((temp_f0 * D_800F2E9C) / D_800EA5CC) / D_803B7178;
|
||||
D_803B7088.unk0 = temp_s6->unk4;
|
||||
temp_a1 = D_803B7088.unk0;
|
||||
D_803B7088.unk6 = temp_v1 * temp_a1;
|
||||
D_803B7088.unk8 = D_803B7088.unk8 * temp_a1;
|
||||
D_803B7088.unkA = D_803B7088.unkA * temp_a1;
|
||||
D_803B7088.unkC = temp_a2 * temp_a1;
|
||||
D_803B70AC = (D_803B70B0 * 0x14 * D_803B7088.unkC) + (temp_s6->unk6 << 5) + 0x1E0;
|
||||
gAudioBufferParameters.unk0 = temp_s6->unk4;
|
||||
temp_a1 = gAudioBufferParameters.unk0;
|
||||
gAudioBufferParameters.unk6 = temp_v1 * temp_a1;
|
||||
gAudioBufferParameters.unk8 = gAudioBufferParameters.unk8 * temp_a1;
|
||||
gAudioBufferParameters.unkA = gAudioBufferParameters.unkA * temp_a1;
|
||||
gAudioBufferParameters.unkC = temp_a2 * temp_a1;
|
||||
D_803B70AC = (gMaxSimultaneousNotes * 0x14 * gAudioBufferParameters.unkC) + (temp_s6->unk6 << 5) + 0x1E0;
|
||||
temp_s0 = temp_s6->unk10 + temp_s6->unk14 + temp_s6->unk18;
|
||||
temp_s1 = temp_s6->unk1C + temp_s6->unk20 + temp_s6->unk24;
|
||||
temp_t2 = temp_s0 + temp_s1;
|
||||
@@ -1082,14 +1085,14 @@ void func_800BA250(void) {
|
||||
D_803B0370.unk8 = temp_s6->unk24;
|
||||
func_800B9300(&D_803B0370);
|
||||
func_800B8DE0();
|
||||
D_803B1508 = func_800B8FFC(&D_803AFBE8, D_803B70B0 * 0xC0);
|
||||
D_803B1508 = soundAlloc(&gNotesAndBuffersPool, gMaxSimultaneousNotes * 0xC0);
|
||||
func_800BDD34();
|
||||
func_800BD368();
|
||||
D_803AFBC4 = func_800B8FFC(&D_803AFBE8, D_803B7088.unkC * D_803B70B0 * 0x10);
|
||||
D_803AFBC4 = soundAlloc(&gNotesAndBuffersPool, gAudioBufferParameters.unkC * gMaxSimultaneousNotes * 0x10);
|
||||
phi_s0 = &D_803B70C8;
|
||||
do {
|
||||
temp_s0_2 = phi_s0 + 4;
|
||||
temp_s0_2->unk-4 = func_800B8FFC(&D_803AFBE8, D_803B70AC * 8);
|
||||
temp_s0_2->unk-4 = soundAlloc(&gNotesAndBuffersPool, D_803B70AC * 8);
|
||||
phi_s0 = temp_s0_2;
|
||||
} while (temp_s0_2 != &D_803B70D0);
|
||||
phi_s2 = &D_803AF790;
|
||||
@@ -1109,9 +1112,9 @@ void func_800BA250(void) {
|
||||
phi_s2_2->unk4 = temp_v0->unk0;
|
||||
phi_s2_2->unk1 = 8;
|
||||
phi_s2_2->unk8 = temp_v0->unk2;
|
||||
phi_s2_2->unk18 = func_800B8FFC(&D_803AFBE8, (temp_t7 & 0xFFFF) * 2);
|
||||
phi_s2_2->unk18 = soundAlloc(&gNotesAndBuffersPool, (temp_t7 & 0xFFFF) * 2);
|
||||
temp_v1_2 = phi_s2_2->unk4;
|
||||
phi_s2_2->unk1C = func_800B8FFC(&D_803AFBE8, phi_s2_2->unk6 * 2);
|
||||
phi_s2_2->unk1C = soundAlloc(&gNotesAndBuffersPool, phi_s2_2->unk6 * 2);
|
||||
phi_s2_2->unkC = 0;
|
||||
phi_s2_2->unk10 = 0;
|
||||
phi_s2_2->unk3 = 0;
|
||||
@@ -1120,26 +1123,26 @@ void func_800BA250(void) {
|
||||
if (temp_v1_2 != 1) {
|
||||
phi_s2_2->unk0 = 1;
|
||||
phi_s2_2->unkA = 0x8000 / temp_v1_2;
|
||||
phi_s2_2->unk20 = func_800B8FFC(&D_803AFBE8, 0x20);
|
||||
phi_s2_2->unk24 = func_800B8FFC(&D_803AFBE8, 0x20);
|
||||
phi_s2_2->unk28 = func_800B8FFC(&D_803AFBE8, 0x20);
|
||||
phi_s2_2->unk2C = func_800B8FFC(&D_803AFBE8, 0x20);
|
||||
phi_s2_2->unk20 = soundAlloc(&gNotesAndBuffersPool, 0x20);
|
||||
phi_s2_2->unk24 = soundAlloc(&gNotesAndBuffersPool, 0x20);
|
||||
phi_s2_2->unk28 = soundAlloc(&gNotesAndBuffersPool, 0x20);
|
||||
phi_s2_2->unk2C = soundAlloc(&gNotesAndBuffersPool, 0x20);
|
||||
phi_s1 = 0;
|
||||
if (D_803B7088.unkC > 0) {
|
||||
if (gAudioBufferParameters.unkC > 0) {
|
||||
phi_s0_2 = phi_s2_2;
|
||||
do {
|
||||
temp_v0_2 = func_800B8FFC(&D_803AFBE8, 0x300);
|
||||
temp_v0_2 = soundAlloc(&gNotesAndBuffersPool, 0x300);
|
||||
temp_t6 = temp_v0_2 + 0x180;
|
||||
phi_s0_2->unk34 = temp_v0_2;
|
||||
phi_s0_2->unk38 = temp_t6;
|
||||
temp_v0_3 = func_800B8FFC(&D_803AFBE8, 0x300);
|
||||
temp_v0_3 = soundAlloc(&gNotesAndBuffersPool, 0x300);
|
||||
temp_t8 = temp_v0_3 + 0x180;
|
||||
phi_s0_2->unk98 = temp_v0_3;
|
||||
phi_s0_2->unk9C = temp_t8;
|
||||
temp_s1_2 = phi_s1 + 1;
|
||||
phi_s0_2 += 0x14;
|
||||
phi_s1 = temp_s1_2;
|
||||
} while (temp_s1_2 < D_803B7088.unkC);
|
||||
} while (temp_s1_2 < gAudioBufferParameters.unkC);
|
||||
}
|
||||
}
|
||||
temp_s5 = phi_s5 + 1;
|
||||
@@ -1147,7 +1150,7 @@ void func_800BA250(void) {
|
||||
phi_s2_2 += 0x108;
|
||||
} while (temp_s5 < D_803AFBC3);
|
||||
}
|
||||
func_800BB030(D_803B70B0);
|
||||
func_800BB030(gMaxSimultaneousNotes);
|
||||
osWritebackDCacheAll();
|
||||
}
|
||||
#else
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
#ifndef AUDIO_HEAP_H
|
||||
#define AUDIO_HEAP_H
|
||||
|
||||
#include <PR/ultratypes.h>
|
||||
|
||||
#include "internal.h"
|
||||
|
||||
#define SOUND_LOAD_STATUS_NOT_LOADED 0
|
||||
#define SOUND_LOAD_STATUS_IN_PROGRESS 1
|
||||
#define SOUND_LOAD_STATUS_COMPLETE 2
|
||||
#define SOUND_LOAD_STATUS_DISCARDABLE 3
|
||||
#define SOUND_LOAD_STATUS_4 4
|
||||
#define SOUND_LOAD_STATUS_5 5
|
||||
|
||||
#define IS_BANK_LOAD_COMPLETE(bankId) (gBankLoadStatus[bankId] >= SOUND_LOAD_STATUS_COMPLETE)
|
||||
#define IS_SEQ_LOAD_COMPLETE(seqId) (gSeqLoadStatus[seqId] >= SOUND_LOAD_STATUS_COMPLETE)
|
||||
|
||||
struct SoundAllocPool {
|
||||
u8 *start;
|
||||
u8 *cur;
|
||||
u32 size;
|
||||
s32 numAllocatedEntries;
|
||||
}; // size = 0x10
|
||||
|
||||
extern struct SoundAllocPool gNotesAndBuffersPool;
|
||||
|
||||
#endif // AUDIO_HEAP_H
|
||||
@@ -3,11 +3,57 @@
|
||||
|
||||
#include <PR/ultratypes.h>
|
||||
|
||||
|
||||
// No-op printf macro which leaves string literals in rodata in IDO. IDO
|
||||
// doesn't support variadic macros, so instead we let the parameter list
|
||||
// expand to a no-op comma expression. Another possibility is that it might
|
||||
// have expanded to something with "if (0)". See also goddard/gd_main.h.
|
||||
// On US/JP, -sopt optimizes away these except for external.c.
|
||||
#ifdef __sgi
|
||||
#define stubbed_printf
|
||||
#else
|
||||
#define stubbed_printf(...)
|
||||
#endif
|
||||
|
||||
#define stubbed_printf_0(msg) stubbed_printf(msg)
|
||||
#define stubbed_printf_1(msg, a) stubbed_printf(msg, a)
|
||||
#define stubbed_printf_2(msg, a, b) stubbed_printf(msg, a, b)
|
||||
#define stubbed_printf_3(msg, a, b, c) stubbed_printf(msg, a, b, c)
|
||||
|
||||
|
||||
struct AdsrEnvelope {
|
||||
s16 delay;
|
||||
s16 arg;
|
||||
}; // size = 0x4
|
||||
|
||||
struct AdpcmLoop {
|
||||
u32 start;
|
||||
u32 end;
|
||||
u32 count;
|
||||
u32 pad;
|
||||
s16 state[16]; // only exists if count != 0. 8-byte aligned
|
||||
};
|
||||
|
||||
struct AdpcmBook {
|
||||
s32 order;
|
||||
s32 npredictors;
|
||||
s16 book[1]; // size 8 * order * npredictors. 8-byte aligned
|
||||
};
|
||||
|
||||
struct AudioBankSample {
|
||||
u8 unused;
|
||||
u8 loaded;
|
||||
u8 *sampleAddr;
|
||||
struct AdpcmLoop *loop;
|
||||
struct AdpcmBook *book;
|
||||
u32 sampleSize; // never read. either 0 or 1 mod 9, depending on padding
|
||||
};
|
||||
|
||||
struct AudioBankSound {
|
||||
struct AudioBankSample *sample;
|
||||
f32 tuning; // frequency scale factor
|
||||
}; // size = 0x8
|
||||
|
||||
struct NoteSub
|
||||
{
|
||||
/*0x00*/ volatile u8 enabled : 1;
|
||||
@@ -35,4 +81,33 @@ struct NoteSub
|
||||
} sound;
|
||||
};
|
||||
|
||||
struct AudioSessionSettings {
|
||||
/*0x00*/ u32 frequency;
|
||||
/*0x04*/ u8 maxSimultaneousNotes;
|
||||
/*0x05*/ u8 reverbDownsampleRate; // always 1
|
||||
/*0x06*/ u16 reverbWindowSize;
|
||||
/*0x08*/ u16 reverbGain;
|
||||
/*0x0A*/ u16 volume;
|
||||
/*0x0C*/ u32 persistentSeqMem;
|
||||
/*0x10*/ u32 persistentBankMem;
|
||||
/*0x14*/ u32 temporarySeqMem;
|
||||
/*0x18*/ u32 temporaryBankMem;
|
||||
}; // size = 0x1C
|
||||
|
||||
struct AudioBufferParametersEU {
|
||||
/*0x00*/ s16 presetUnk4; // audio frames per vsync?
|
||||
/*0x02*/ u16 frequency;
|
||||
/*0x04*/ u16 aiFrequency; // ?16
|
||||
/*0x06*/ s16 samplesPerFrameTarget;
|
||||
/*0x08*/ s16 maxAiBufferLength;
|
||||
/*0x0A*/ s16 minAiBufferLength;
|
||||
/*0x0C*/ s16 updatesPerFrame;
|
||||
/*0x0E*/ s16 samplesPerUpdate;
|
||||
/*0x10*/ s16 samplesPerUpdateMax;
|
||||
/*0x12*/ s16 samplesPerUpdateMin;
|
||||
/*0x14*/ f32 resampleRate; // contains 32000.0f / frequency
|
||||
/*0x18*/ f32 updatesPerFrameInv; // 1.0f / updatesPerFrame
|
||||
/*0x1C*/ f32 unkUpdatesPerFrameScaled; // 3.0f / (1280.0f * updatesPerFrame)
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
+343
-370
@@ -1,145 +1,248 @@
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include "load.h"
|
||||
#include "data.h"
|
||||
#include "heap.h"
|
||||
#include "internal.h"
|
||||
|
||||
#define ALIGN16(val) (((val) + 0xF) & ~0xF)
|
||||
struct SharedDma {
|
||||
/*0x0*/ u8 *buffer; // target, points to pre-allocated buffer
|
||||
/*0x4*/ uintptr_t source; // device address
|
||||
/*0x8*/ u16 sizeUnused; // set to bufSize, never read
|
||||
/*0xA*/ u16 bufSize; // size of buffer
|
||||
/*0xC*/ u8 unused2; // set to 0, never read
|
||||
/*0xD*/ u8 reuseIndex; // position in sSampleDmaReuseQueue1/2, if ttl == 0
|
||||
/*0xE*/ u8 ttl; // duration after which the DMA can be discarded
|
||||
}; // size = 0x10
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? osPiStartDma(? *, ?, ?, s32, void *, u32, OSMesgQueue *); // extern
|
||||
extern OSMesgQueue D_803B6720;
|
||||
extern ? D_803B6740;
|
||||
extern OSIoMesg D_803B6740;
|
||||
|
||||
void func_800BAA80(s32 arg0, void *arg1, u32 arg2) {
|
||||
osInvalDCache(arg1, arg2);
|
||||
osPiStartDma(&D_803B6740, 1, 0, arg0, arg1, arg2, &D_803B6720);
|
||||
osRecvMesg(&D_803B6720, NULL, 1);
|
||||
extern OSMesgQueue gCurrAudioFrameDmaQueue; // gCurrAudioFrameDmaQueue
|
||||
extern OSMesg gCurrAudioFrameDmaMesgBufs[AUDIO_FRAME_DMA_QUEUE_SIZE]; // gCurrAudioFrameDmaMesgBufs
|
||||
extern OSIoMesg gCurrAudioFrameDmaIoMesgBufs[AUDIO_FRAME_DMA_QUEUE_SIZE]; // gCurrAudioFrameDmaIoMesgBufs
|
||||
|
||||
extern struct SharedDma sSampleDmas[0x60]; // sSampleDmas
|
||||
extern u32 gSampleDmaNumListItems; // gSampleDmaNumListItems
|
||||
extern u32 sSampleDmaListSize1; // sSampleDmaListSize1
|
||||
extern s32 D_803B6E60; // sUnused80226B40
|
||||
|
||||
extern u8 sSampleDmaReuseQueue1[256]; // sSampleDmaReuseQueue1
|
||||
extern u8 sSampleDmaReuseQueue2[256]; // sSampleDmaReuseQueue2
|
||||
extern u8 sSampleDmaReuseQueueTail1; // sSampleDmaReuseQueueTail1
|
||||
extern u8 sSampleDmaReuseQueueTail2; // sSampleDmaReuseQueueTail2
|
||||
extern u8 sSampleDmaReuseQueueHead1; // sSampleDmaReuseQueueHead1
|
||||
extern u8 sSampleDmaReuseQueueHead2; // sSampleDmaReuseQueueHead2
|
||||
|
||||
|
||||
|
||||
extern void *soundAlloc(struct SoundAllocPool *pool, u32 size);
|
||||
|
||||
/**
|
||||
* Performs an immediate DMA copy
|
||||
*/
|
||||
// audio_dma_copy_immediate
|
||||
void audio_dma_copy_immediate(uintptr_t devAddr, void *vAddr, size_t nbytes) {
|
||||
stubbed_printf_3("Romcopy %x -> %x ,size %x\n", devAddr, vAddr, nbytes);
|
||||
osInvalDCache(vAddr, nbytes);
|
||||
osPiStartDma(&D_803B6740, OS_MESG_PRI_HIGH, OS_READ, devAddr, vAddr, nbytes, &D_803B6720);
|
||||
osRecvMesg(&D_803B6720, NULL, OS_MESG_BLOCK);
|
||||
stubbed_printf_0("Romcopyend\n");
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/load/func_800BAA80.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? osPiStartDma(s32, ?, ?, s32, void *, u32, s32); // extern
|
||||
const char audioString34[] = "CAUTION:WAVE CACHE FULL %d";
|
||||
const char audioString35[] = "LOAD Rom :%x -> Ram :%x Len:%x\n";
|
||||
const char audioString36[] = "BASE %x %x\n";
|
||||
const char audioString37[] = "LOAD %x %x %x\n";
|
||||
const char audioString38[] = "INSTTOP %x\n";
|
||||
const char audioString39[] = "INSTMAP[0] %x\n";
|
||||
const char audioString40[] = "already flags %d\n";
|
||||
const char audioString41[] = "already flags %d\n";
|
||||
const char audioString42[] = "ERR:SLOW BANK DMA BUSY\n";
|
||||
const char audioString43[] = "ERR:SLOW DMA BUSY\n";
|
||||
const char audioString44[] = "Check %d bank %d\n";
|
||||
const char audioString45[] = "Cache Check\n";
|
||||
const char audioString46[] = "NO BANK ERROR\n";
|
||||
const char audioString47[] = "BANK %d LOADING START\n";
|
||||
const char audioString48[] = "BANK %d LOAD MISS (NO MEMORY)!\n";
|
||||
const char audioString49[] = "BANK %d ALREADY CACHED\n";
|
||||
const char audioString50[] = "BANK LOAD MISS! FOR %d\n";
|
||||
|
||||
void func_800BAAF8(s32 arg0, void *arg1, u32 arg2, s32 arg3, s32 arg4) {
|
||||
osInvalDCache(arg1, arg2);
|
||||
osPiStartDma(arg4, 0, 0, arg0, arg1, arg2, arg3);
|
||||
|
||||
const char audioString51[] = "Seq %d Loading Start\n";
|
||||
|
||||
const char audioString52[] = "Heap Overflow Error\n";
|
||||
|
||||
const char asdf[] = "SEQ %d ALREADY CACHED\n";
|
||||
const char fdsa[] = "Ok,one bank slow load Start \n";
|
||||
const char af[] = "Sorry,too many %d bank is none.fast load Start \n";
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Performs an asynchronus (normal priority) DMA copy
|
||||
*/
|
||||
//audio_dma_copy_async
|
||||
void func_800BAAF8(uintptr_t devAddr, void *vAddr, size_t nbytes, OSMesgQueue *queue, OSIoMesg *mesg) {
|
||||
osInvalDCache(vAddr, nbytes);
|
||||
osPiStartDma(mesg, OS_MESG_PRI_NORMAL, OS_READ, devAddr, vAddr, nbytes, queue);
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/load/func_800BAAF8.s")
|
||||
#endif
|
||||
//#else
|
||||
//GLOBAL_ASM("asm/non_matchings/audio/load/func_800BAAF8.s")
|
||||
//#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? osPiStartDma(s32, ?, ?, s32, void *, u32, s32); // extern
|
||||
//? osPiStartDma(s32, ?, ?, s32, void *, u32, s32); // extern
|
||||
|
||||
void func_800BAB58(s32 *arg0, void **arg1, s32 *arg2, s32 arg3, s32 arg4) {
|
||||
s32 temp_v0;
|
||||
u32 phi_s0;
|
||||
|
||||
temp_v0 = *arg2;
|
||||
phi_s0 = temp_v0;
|
||||
if (temp_v0 >= 0x1000) {
|
||||
phi_s0 = 0x1000;
|
||||
}
|
||||
*arg2 = temp_v0 - phi_s0;
|
||||
osInvalDCache(*arg1, phi_s0);
|
||||
osPiStartDma(arg4, 0, 0, *arg0, *arg1, phi_s0, arg3);
|
||||
*arg0 = *arg0 + phi_s0;
|
||||
*arg1 = *arg1 + phi_s0;
|
||||
/**
|
||||
* Performs a partial asynchronous (normal priority) DMA copy. This is limited
|
||||
* to 0x1000 bytes transfer at once.
|
||||
*/
|
||||
// audio_dma_partial_copy_async
|
||||
void func_800BAB58(uintptr_t *devAddr, u8 **vAddr, ssize_t *remaining, OSMesgQueue *queue, OSIoMesg *mesg) {
|
||||
ssize_t transfer = (*remaining >= 0x1000 ? 0x1000 : *remaining);
|
||||
*remaining -= transfer;
|
||||
osInvalDCache(*vAddr, transfer);
|
||||
osPiStartDma(mesg, OS_MESG_PRI_NORMAL, OS_READ, *devAddr, *vAddr, transfer, queue);
|
||||
*devAddr += transfer;
|
||||
*vAddr += transfer;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/load/func_800BAB58.s")
|
||||
#endif
|
||||
//#else
|
||||
//GLOBAL_ASM("asm/non_matchings/audio/load/func_800BAB58.s")
|
||||
//#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
extern ? D_803B6758;
|
||||
extern u32 D_803B6E58;
|
||||
extern u32 D_803B6E5C;
|
||||
extern s32 D_803B6E60;
|
||||
extern ? D_803B6E68;
|
||||
extern ? D_803B6F68;
|
||||
extern u8 D_803B706A;
|
||||
extern u8 D_803B706B;
|
||||
// decrease_sample_dma_ttls
|
||||
|
||||
void func_800BAC04(void) {
|
||||
u32 temp_v0;
|
||||
u32 temp_v0_2;
|
||||
u8 temp_t4;
|
||||
u8 temp_t6;
|
||||
u8 temp_t6_2;
|
||||
u8 temp_t8;
|
||||
u8 temp_v1;
|
||||
u8 temp_v1_2;
|
||||
u8 temp_v1_3;
|
||||
u8 temp_v1_4;
|
||||
? *phi_a0;
|
||||
s8 phi_v0;
|
||||
void *phi_a0_2;
|
||||
s8 phi_v0_2;
|
||||
void func_800BAC04() {
|
||||
u32 i;
|
||||
|
||||
phi_a0 = &D_803B6758;
|
||||
phi_v0 = 0;
|
||||
if (D_803B6E5C != 0) {
|
||||
do {
|
||||
temp_v1 = phi_a0->unkE;
|
||||
temp_t6 = temp_v1 - 1;
|
||||
if (temp_v1 != 0) {
|
||||
phi_a0->unkE = temp_t6;
|
||||
if ((temp_t6 & 0xFF) == 0) {
|
||||
temp_v1_2 = D_803B706A;
|
||||
temp_t8 = D_803B706A;
|
||||
*(&D_803B6E68 + temp_v1_2) = phi_v0;
|
||||
D_803B706A = temp_v1_2 + 1;
|
||||
phi_a0->unkD = temp_t8;
|
||||
}
|
||||
for (i = 0; i < sSampleDmaListSize1; i++) {
|
||||
struct SharedDma *temp = &sSampleDmas[i];
|
||||
if (temp->ttl != 0) {
|
||||
temp->ttl--;
|
||||
if (temp->ttl == 0) {
|
||||
temp->reuseIndex = sSampleDmaReuseQueueHead1;
|
||||
sSampleDmaReuseQueue1[sSampleDmaReuseQueueHead1++] = (u8) i;
|
||||
}
|
||||
temp_v0 = phi_v0 + 1;
|
||||
phi_a0 += 0x10;
|
||||
phi_v0 = temp_v0;
|
||||
} while (temp_v0 < D_803B6E5C);
|
||||
}
|
||||
}
|
||||
phi_v0_2 = D_803B6E5C;
|
||||
if (D_803B6E5C < D_803B6E58) {
|
||||
phi_a0_2 = (D_803B6E5C * 0x10) + &D_803B6758;
|
||||
do {
|
||||
temp_v1_3 = phi_a0_2->unkE;
|
||||
temp_t4 = temp_v1_3 - 1;
|
||||
if (temp_v1_3 != 0) {
|
||||
phi_a0_2->unkE = temp_t4;
|
||||
if ((temp_t4 & 0xFF) == 0) {
|
||||
temp_v1_4 = D_803B706B;
|
||||
temp_t6_2 = D_803B706B;
|
||||
*(&D_803B6F68 + temp_v1_4) = phi_v0_2;
|
||||
D_803B706B = temp_v1_4 + 1;
|
||||
phi_a0_2->unkD = temp_t6_2;
|
||||
}
|
||||
|
||||
for (i = sSampleDmaListSize1; i < gSampleDmaNumListItems; i++) {
|
||||
struct SharedDma *temp = &sSampleDmas[i];
|
||||
if (temp->ttl != 0) {
|
||||
temp->ttl--;
|
||||
if (temp->ttl == 0) {
|
||||
temp->reuseIndex = sSampleDmaReuseQueueHead2;
|
||||
sSampleDmaReuseQueue2[sSampleDmaReuseQueueHead2++] = (u8) i;
|
||||
}
|
||||
temp_v0_2 = phi_v0_2 + 1;
|
||||
phi_a0_2 += 0x10;
|
||||
phi_v0_2 = temp_v0_2;
|
||||
} while (temp_v0_2 < D_803B6E58);
|
||||
}
|
||||
}
|
||||
|
||||
D_803B6E60 = 0;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/load/func_800BAC04.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
// dma_sample_data 3000 score diff
|
||||
void *func_800BAD0C(uintptr_t devAddr, u32 size, s32 arg2, u8 *dmaIndexRef) {
|
||||
s32 hasDma = FALSE;
|
||||
struct SharedDma *dma;
|
||||
uintptr_t dmaDevAddr;
|
||||
u32 transfer;
|
||||
u32 i;
|
||||
u32 dmaIndex;
|
||||
ssize_t bufferPos;
|
||||
UNUSED u32 pad;
|
||||
|
||||
if (arg2 != 0 || *dmaIndexRef >= sSampleDmaListSize1) {
|
||||
for (i = sSampleDmaListSize1; i < gSampleDmaNumListItems; i++) {
|
||||
dma = &sSampleDmas[i];
|
||||
bufferPos = devAddr - dma->source;
|
||||
if (0 <= bufferPos && (size_t) bufferPos <= dma->bufSize - size) {
|
||||
// We already have a DMA request for this memory range.
|
||||
if (dma->ttl == 0 && sSampleDmaReuseQueueTail2 != sSampleDmaReuseQueueHead2) {
|
||||
// Move the DMA out of the reuse queue, by swapping it with the
|
||||
// tail, and then incrementing the tail.
|
||||
if (dma->reuseIndex != sSampleDmaReuseQueueTail2) {
|
||||
sSampleDmaReuseQueue2[dma->reuseIndex] =
|
||||
sSampleDmaReuseQueue2[sSampleDmaReuseQueueTail2];
|
||||
sSampleDmas[sSampleDmaReuseQueue2[sSampleDmaReuseQueueTail2]].reuseIndex =
|
||||
dma->reuseIndex;
|
||||
}
|
||||
sSampleDmaReuseQueueTail2++;
|
||||
}
|
||||
dma->ttl = 60;
|
||||
*dmaIndexRef = (u8) i;
|
||||
return &dma->buffer[(devAddr - dma->source)];
|
||||
}
|
||||
}
|
||||
|
||||
if (sSampleDmaReuseQueueTail2 != sSampleDmaReuseQueueHead2 && arg2 != 0) {
|
||||
// Allocate a DMA from reuse queue 2. This queue can be empty, since
|
||||
// TTL 60 is pretty large.
|
||||
dmaIndex = sSampleDmaReuseQueue2[sSampleDmaReuseQueueTail2];
|
||||
sSampleDmaReuseQueueTail2++;
|
||||
dma = sSampleDmas + dmaIndex;
|
||||
hasDma = TRUE;
|
||||
}
|
||||
} else {
|
||||
dma = sSampleDmas;
|
||||
dma += *dmaIndexRef;
|
||||
bufferPos = devAddr - dma->source;
|
||||
if (0 <= bufferPos && (size_t) bufferPos <= dma->bufSize - size) {
|
||||
// We already have DMA for this memory range.
|
||||
if (dma->ttl == 0) {
|
||||
// Move the DMA out of the reuse queue, by swapping it with the
|
||||
// tail, and then incrementing the tail.
|
||||
if (dma->reuseIndex != sSampleDmaReuseQueueTail1) {
|
||||
if (1) {
|
||||
}
|
||||
sSampleDmaReuseQueue1[dma->reuseIndex] =
|
||||
sSampleDmaReuseQueue1[sSampleDmaReuseQueueTail1];
|
||||
sSampleDmas[sSampleDmaReuseQueue1[sSampleDmaReuseQueueTail1]].reuseIndex =
|
||||
dma->reuseIndex;
|
||||
}
|
||||
sSampleDmaReuseQueueTail1++;
|
||||
}
|
||||
dma->ttl = 2;
|
||||
return dma->buffer + (devAddr - dma->source);
|
||||
}
|
||||
}
|
||||
|
||||
if (!hasDma) {
|
||||
// Allocate a DMA from reuse queue 1. This queue will hopefully never
|
||||
// be empty, since TTL 2 is so small.
|
||||
dmaIndex = sSampleDmaReuseQueue1[sSampleDmaReuseQueueTail1++];
|
||||
dma = sSampleDmas + dmaIndex;
|
||||
hasDma = TRUE;
|
||||
}
|
||||
|
||||
transfer = dma->bufSize;
|
||||
dmaDevAddr = devAddr & ~0xF;
|
||||
dma->ttl = 2;
|
||||
dma->source = dmaDevAddr;
|
||||
dma->sizeUnused = transfer;
|
||||
osPiStartDma(&gCurrAudioFrameDmaIoMesgBufs[gCurrAudioFrameDmaCount++], OS_MESG_PRI_NORMAL,
|
||||
OS_READ, dmaDevAddr, dma->buffer, transfer, &gCurrAudioFrameDmaQueue);
|
||||
*dmaIndexRef = dmaIndex;
|
||||
return (devAddr - dmaDevAddr) + dma->buffer;
|
||||
}
|
||||
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? osPiStartDma(void *, ?, ?, s32, s32, s32, ? *); // extern
|
||||
extern ? D_803B6008;
|
||||
extern ? D_803B6120;
|
||||
extern ? D_803B6758;
|
||||
extern u32 D_803B6E58;
|
||||
extern u32 D_803B6E5C;
|
||||
extern ? D_803B6E68;
|
||||
extern ? D_803B6F68;
|
||||
extern u8 D_803B7068;
|
||||
extern u8 D_803B7069;
|
||||
extern u8 D_803B706B;
|
||||
extern s32 D_803B70BC;
|
||||
extern ? gCurrAudioFrameDmaQueue;
|
||||
extern ? gCurrAudioFrameDmaIoMesgBufs;
|
||||
extern ? sSampleDmas;
|
||||
extern u32 gSampleDmaNumListItems;
|
||||
extern u32 sSampleDmaListSize1;
|
||||
extern ? sSampleDmaReuseQueue1;
|
||||
extern ? sSampleDmaReuseQueue2;
|
||||
extern u8 sSampleDmaReuseQueueTail1;
|
||||
extern u8 sSampleDmaReuseQueueTail2;
|
||||
extern u8 sSampleDmaReuseQueueHead2;
|
||||
extern s32 gCurrAudioFrameDmaCount;
|
||||
|
||||
s32 func_800BAD0C(s32 arg0, s32 arg1, s32 arg2, u8 *arg3) {
|
||||
void *sp40;
|
||||
@@ -178,25 +281,25 @@ s32 func_800BAD0C(s32 arg0, s32 arg1, s32 arg2, u8 *arg3) {
|
||||
|
||||
phi_t3 = 0;
|
||||
phi_t3 = 0;
|
||||
if ((arg2 != 0) || (temp_a1 = D_803B6E5C, temp_v0 = *arg3, phi_v1 = 0, ((temp_v0 < temp_a1) == 0))) {
|
||||
temp_a1_2 = D_803B6E58;
|
||||
temp_v1_3 = D_803B6E5C;
|
||||
if ((arg2 != 0) || (temp_a1 = sSampleDmaListSize1, temp_v0 = *arg3, phi_v1 = 0, ((temp_v0 < temp_a1) == 0))) {
|
||||
temp_a1_2 = gSampleDmaNumListItems;
|
||||
temp_v1_3 = sSampleDmaListSize1;
|
||||
phi_v1_2 = temp_v1_3;
|
||||
if (temp_v1_3 < temp_a1_2) {
|
||||
phi_a0 = (temp_v1_3 * 0x10) + &D_803B6758;
|
||||
phi_a0 = (temp_v1_3 * 0x10) + &sSampleDmas;
|
||||
loop_4:
|
||||
temp_v0_4 = arg0 - phi_a0->unk4;
|
||||
if ((temp_v0_4 >= 0) && ((phi_a0->unkA - arg1) >= temp_v0_4)) {
|
||||
if (phi_a0->unkE == 0) {
|
||||
temp_a1_3 = D_803B7069;
|
||||
if (D_803B706B != temp_a1_3) {
|
||||
temp_a1_3 = sSampleDmaReuseQueueTail2;
|
||||
if (sSampleDmaReuseQueueHead2 != temp_a1_3) {
|
||||
temp_a3 = phi_a0->unkD;
|
||||
temp_v0_5 = &D_803B6F68 + temp_a1_3;
|
||||
temp_v0_5 = &sSampleDmaReuseQueue2 + temp_a1_3;
|
||||
if (temp_a1_3 != temp_a3) {
|
||||
*(&D_803B6F68 + temp_a3) = *temp_v0_5;
|
||||
(&D_803B6758 + (*temp_v0_5 * 0x10))->unkD = phi_a0->unkD;
|
||||
*(&sSampleDmaReuseQueue2 + temp_a3) = *temp_v0_5;
|
||||
(&sSampleDmas + (*temp_v0_5 * 0x10))->unkD = phi_a0->unkD;
|
||||
}
|
||||
D_803B7069 = temp_a1_3 + 1;
|
||||
sSampleDmaReuseQueueTail2 = temp_a1_3 + 1;
|
||||
}
|
||||
}
|
||||
phi_a0->unkE = 0x3C;
|
||||
@@ -213,18 +316,18 @@ loop_4:
|
||||
goto loop_4;
|
||||
}
|
||||
block_14:
|
||||
temp_a1_4 = D_803B7069;
|
||||
temp_a1_4 = sSampleDmaReuseQueueTail2;
|
||||
phi_t0_2 = sp40;
|
||||
if ((D_803B706B != temp_a1_4) && (arg2 != 0)) {
|
||||
temp_t2 = *(&D_803B6F68 + temp_a1_4);
|
||||
D_803B7069 = temp_a1_4 + 1;
|
||||
if ((sSampleDmaReuseQueueHead2 != temp_a1_4) && (arg2 != 0)) {
|
||||
temp_t2 = *(&sSampleDmaReuseQueue2 + temp_a1_4);
|
||||
sSampleDmaReuseQueueTail2 = temp_a1_4 + 1;
|
||||
sp30 = temp_t2;
|
||||
phi_t3 = 1;
|
||||
phi_t0_2 = &D_803B6758 + (temp_t2 * 0x10);
|
||||
phi_t0_2 = &sSampleDmas + (temp_t2 * 0x10);
|
||||
}
|
||||
goto block_27;
|
||||
}
|
||||
temp_t0 = &D_803B6758 + (temp_v0 * 0x10);
|
||||
temp_t0 = &sSampleDmas + (temp_v0 * 0x10);
|
||||
phi_t0 = temp_t0;
|
||||
phi_t0_2 = temp_t0;
|
||||
if (temp_a1 != 0) {
|
||||
@@ -234,19 +337,19 @@ loop_19:
|
||||
phi_v1 = temp_v1;
|
||||
if ((temp_v0_2 >= 0) && ((phi_t0->unkA - arg1) >= temp_v0_2)) {
|
||||
if (phi_t0->unkE == 0) {
|
||||
temp_v1_2 = D_803B7068;
|
||||
temp_v1_2 = sSampleDmaReuseQueueTail1;
|
||||
temp_a0 = phi_t0->unkD;
|
||||
temp_v0_3 = &D_803B6E68 + temp_v1_2;
|
||||
temp_v0_3 = &sSampleDmaReuseQueue1 + temp_v1_2;
|
||||
if (temp_v1_2 != temp_a0) {
|
||||
*(&D_803B6E68 + temp_a0) = *temp_v0_3;
|
||||
(&D_803B6758 + (*temp_v0_3 * 0x10))->unkD = phi_t0->unkD;
|
||||
*(&sSampleDmaReuseQueue1 + temp_a0) = *temp_v0_3;
|
||||
(&sSampleDmas + (*temp_v0_3 * 0x10))->unkD = phi_t0->unkD;
|
||||
}
|
||||
D_803B7068 = temp_v1_2 + 1;
|
||||
sSampleDmaReuseQueueTail1 = temp_v1_2 + 1;
|
||||
}
|
||||
phi_t0->unkE = 2;
|
||||
return (phi_t0->unk0 + arg0) - phi_t0->unk4;
|
||||
}
|
||||
temp_t0_2 = &D_803B6758 + (phi_v1 * 0x10);
|
||||
temp_t0_2 = &sSampleDmas + (phi_v1 * 0x10);
|
||||
phi_t0 = temp_t0_2;
|
||||
phi_t0_2 = temp_t0_2;
|
||||
if (temp_v1 >= temp_a1) {
|
||||
@@ -257,10 +360,10 @@ loop_19:
|
||||
block_27:
|
||||
phi_t2 = sp30;
|
||||
if (phi_t3 == 0) {
|
||||
temp_v1_5 = D_803B7068;
|
||||
temp_t2_2 = *(&D_803B6E68 + temp_v1_5);
|
||||
D_803B7068 = temp_v1_5 + 1;
|
||||
phi_t0_2 = &D_803B6758 + (temp_t2_2 * 0x10);
|
||||
temp_v1_5 = sSampleDmaReuseQueueTail1;
|
||||
temp_t2_2 = *(&sSampleDmaReuseQueue1 + temp_v1_5);
|
||||
sSampleDmaReuseQueueTail1 = temp_v1_5 + 1;
|
||||
phi_t0_2 = &sSampleDmas + (temp_t2_2 * 0x10);
|
||||
phi_t2 = temp_t2_2;
|
||||
}
|
||||
temp_v0_6 = phi_t0_2->unkA;
|
||||
@@ -268,12 +371,12 @@ block_27:
|
||||
phi_t0_2->unkE = 2;
|
||||
phi_t0_2->unk4 = temp_s0;
|
||||
phi_t0_2->unk8 = temp_v0_6;
|
||||
temp_v1_6 = D_803B70BC;
|
||||
temp_v1_6 = gCurrAudioFrameDmaCount;
|
||||
temp_t9 = temp_v1_6 * 0x18;
|
||||
D_803B70BC = temp_v1_6 + 1;
|
||||
gCurrAudioFrameDmaCount = temp_v1_6 + 1;
|
||||
sp30 = phi_t2;
|
||||
sp40 = phi_t0_2;
|
||||
osPiStartDma(temp_t9 + &D_803B6120, 0, 0, temp_s0, phi_t0_2->unk0, temp_v0_6, &D_803B6008);
|
||||
sp40 = phi_t0_2;./
|
||||
osPiStartDma(temp_t9 + &gCurrAudioFrameDmaIoMesgBufs, 0, 0, temp_s0, phi_t0_2->unk0, temp_v0_6, &gCurrAudioFrameDmaQueue);
|
||||
*arg3 = phi_t2;
|
||||
return (arg0 - temp_s0) + phi_t0_2->unk0;
|
||||
}
|
||||
@@ -281,223 +384,95 @@ block_27:
|
||||
GLOBAL_ASM("asm/non_matchings/audio/load/func_800BAD0C.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
s32 func_800B8FFC(? *, s32, u32); // extern
|
||||
extern ? D_803BFBE8;
|
||||
extern ? D_803B6758;
|
||||
extern u32 D_803B6E58;
|
||||
extern u32 D_803B6E5C;
|
||||
extern s8 D_803B6E68;
|
||||
extern ? D_803B6F68;
|
||||
extern s8 D_803B7068;
|
||||
extern s8 D_803B7069;
|
||||
extern s8 D_803B706A;
|
||||
extern s8 D_803B706B;
|
||||
extern s16 D_803B7088;
|
||||
extern s32 D_803B70A8;
|
||||
extern s32 D_803B70B0;
|
||||
|
||||
void func_800BB030(s32 arg0, u32 arg2) {
|
||||
s32 temp_a1;
|
||||
s32 temp_a1_2;
|
||||
s32 temp_s0;
|
||||
s32 temp_s0_3;
|
||||
s32 temp_v0;
|
||||
s32 temp_v0_3;
|
||||
s8 temp_v0_4;
|
||||
u32 temp_a1_3;
|
||||
u32 temp_a2;
|
||||
u32 temp_a2_2;
|
||||
u32 temp_a2_3;
|
||||
u32 temp_s0_2;
|
||||
u32 temp_s0_4;
|
||||
u32 temp_v0_2;
|
||||
u32 temp_v0_5;
|
||||
void *temp_v1;
|
||||
void *temp_v1_2;
|
||||
s32 phi_a1;
|
||||
u32 phi_a2;
|
||||
s32 phi_s0;
|
||||
s8 phi_s0_2;
|
||||
s8 *phi_v0;
|
||||
? *phi_v1;
|
||||
void *phi_v0_2;
|
||||
s32 phi_a1_2;
|
||||
s32 phi_s0_3;
|
||||
u32 phi_a2_2;
|
||||
s8 phi_s0_4;
|
||||
s8 *phi_a0;
|
||||
s8 phi_v0_3;
|
||||
void *phi_v1_2;
|
||||
s32 phi_a3;
|
||||
void *phi_v0_4;
|
||||
u32 phi_a2_3;
|
||||
extern u32 D_803B70A8; // sDmaBufSize
|
||||
extern s32 gMaxSimultaneousNotes; // gMaxSimultaneousNotes
|
||||
extern struct AudioBufferParametersEU gAudioBufferParameters; // gAudioBufferParameters
|
||||
//extern struct SoundAllocPool gNotesAndBuffersPool; // remove when possible. This is in heap.h
|
||||
// init_sample_dma_buffers
|
||||
void func_800BB030(UNUSED s32 arg0) {
|
||||
s32 i;
|
||||
#define j i
|
||||
|
||||
D_803B70A8 = 0x5A0;
|
||||
phi_a1 = 0x5A0;
|
||||
phi_a2 = arg2;
|
||||
phi_s0 = 0;
|
||||
phi_s0_3 = 0;
|
||||
if ((D_803B70B0 * 3 * D_803B7088) > 0) {
|
||||
loop_1:
|
||||
temp_v0 = func_800B8FFC(&D_803BFBE8, phi_a1, phi_a2);
|
||||
temp_a2 = D_803B6E58;
|
||||
temp_v1 = &D_803B6758 + (temp_a2 * 0x10);
|
||||
temp_v1->unk0 = temp_v0;
|
||||
phi_a2 = temp_a2;
|
||||
if (temp_v0 == 0) {
|
||||
|
||||
} else {
|
||||
temp_a1 = D_803B70A8;
|
||||
temp_s0 = phi_s0 + 1;
|
||||
temp_v1->unk4 = 0;
|
||||
temp_v1->unk8 = 0;
|
||||
temp_v1->unkC = 0;
|
||||
temp_v1->unkE = 0;
|
||||
D_803B6E58 = temp_a2 + 1;
|
||||
temp_v1->unkA = temp_a1;
|
||||
phi_a1 = temp_a1;
|
||||
phi_s0 = temp_s0;
|
||||
if (temp_s0 >= (D_803B70B0 * 3 * D_803B7088)) {
|
||||
|
||||
} else {
|
||||
goto loop_1;
|
||||
}
|
||||
for (i = 0; i < gMaxSimultaneousNotes * 3 * gAudioBufferParameters.presetUnk4; i++)
|
||||
{
|
||||
sSampleDmas[gSampleDmaNumListItems].buffer = soundAlloc(&gNotesAndBuffersPool, D_803B70A8);
|
||||
if (sSampleDmas[gSampleDmaNumListItems].buffer == NULL) {
|
||||
break;
|
||||
}
|
||||
sSampleDmas[gSampleDmaNumListItems].bufSize = D_803B70A8;
|
||||
sSampleDmas[gSampleDmaNumListItems].source = 0;
|
||||
sSampleDmas[gSampleDmaNumListItems].sizeUnused = 0;
|
||||
sSampleDmas[gSampleDmaNumListItems].unused2 = 0;
|
||||
sSampleDmas[gSampleDmaNumListItems].ttl = 0;
|
||||
gSampleDmaNumListItems++;
|
||||
}
|
||||
temp_a2_2 = D_803B6E58;
|
||||
phi_s0_2 = 0;
|
||||
phi_a2_2 = temp_a2_2;
|
||||
if (temp_a2_2 != 0) {
|
||||
phi_v0 = &D_803B6E68;
|
||||
phi_v1 = &D_803B6758;
|
||||
do {
|
||||
*phi_v0 = phi_s0_2;
|
||||
phi_v1->unkD = phi_s0_2;
|
||||
temp_s0_2 = phi_s0_2 + 1;
|
||||
phi_s0_2 = temp_s0_2;
|
||||
phi_v0 += 1;
|
||||
phi_v1 += 0x10;
|
||||
} while (temp_s0_2 < temp_a2_2);
|
||||
|
||||
for (i = 0; (u32) i < gSampleDmaNumListItems; i++) {
|
||||
sSampleDmaReuseQueue1[i] = (u8) i;
|
||||
sSampleDmas[i].reuseIndex = (u8) i;
|
||||
}
|
||||
phi_a3 = temp_a2_2;
|
||||
if (temp_a2_2 < 0x100) {
|
||||
phi_v0_2 = temp_a2_2 + &D_803B6E68;
|
||||
do {
|
||||
temp_v0_2 = phi_v0_2 + 1;
|
||||
temp_v0_2->unk-1 = 0;
|
||||
phi_v0_2 = temp_v0_2;
|
||||
} while (temp_v0_2 < &D_803B6F68);
|
||||
|
||||
for (j = gSampleDmaNumListItems; j < 0x100; j++) {
|
||||
sSampleDmaReuseQueue1[j] = 0;
|
||||
}
|
||||
D_803B7068 = 0;
|
||||
D_803B706A = temp_a2_2;
|
||||
D_803B6E5C = temp_a2_2;
|
||||
|
||||
sSampleDmaReuseQueueTail1 = 0;
|
||||
sSampleDmaReuseQueueHead1 = (u8) gSampleDmaNumListItems;
|
||||
sSampleDmaListSize1 = gSampleDmaNumListItems;
|
||||
|
||||
D_803B70A8 = 0x180;
|
||||
if (D_803B70B0 > 0) {
|
||||
phi_a1_2 = 0x180;
|
||||
loop_13:
|
||||
temp_v0_3 = func_800B8FFC(&D_803BFBE8, phi_a1_2, D_803B6E58);
|
||||
temp_a2_3 = D_803B6E58;
|
||||
temp_s0_3 = phi_s0_3 + 1;
|
||||
temp_v1_2 = &D_803B6758 + (temp_a2_3 * 0x10);
|
||||
temp_v1_2->unk0 = temp_v0_3;
|
||||
phi_s0_3 = temp_s0_3;
|
||||
phi_a2_3 = temp_a2_3;
|
||||
if (temp_v0_3 == 0) {
|
||||
|
||||
} else {
|
||||
temp_a1_2 = D_803B70A8;
|
||||
temp_v1_2->unk4 = 0;
|
||||
temp_v1_2->unk8 = 0;
|
||||
temp_v1_2->unkC = 0;
|
||||
temp_v1_2->unkE = 0;
|
||||
D_803B6E58 = temp_a2_3 + 1;
|
||||
temp_v1_2->unkA = temp_a1_2;
|
||||
phi_a1_2 = temp_a1_2;
|
||||
if (temp_s0_3 >= D_803B70B0) {
|
||||
phi_a2_3 = D_803B6E58;
|
||||
} else {
|
||||
goto loop_13;
|
||||
}
|
||||
for (i = 0; i < gMaxSimultaneousNotes; i++) {
|
||||
sSampleDmas[gSampleDmaNumListItems].buffer = soundAlloc(&gNotesAndBuffersPool, D_803B70A8);
|
||||
if (sSampleDmas[gSampleDmaNumListItems].buffer == NULL) {
|
||||
break;
|
||||
}
|
||||
phi_a2_2 = phi_a2_3;
|
||||
phi_a3 = phi_a2_3;
|
||||
sSampleDmas[gSampleDmaNumListItems].bufSize = D_803B70A8;
|
||||
sSampleDmas[gSampleDmaNumListItems].source = 0;
|
||||
sSampleDmas[gSampleDmaNumListItems].sizeUnused = 0;
|
||||
sSampleDmas[gSampleDmaNumListItems].unused2 = 0;
|
||||
sSampleDmas[gSampleDmaNumListItems].ttl = 0;
|
||||
gSampleDmaNumListItems++;
|
||||
}
|
||||
temp_a1_3 = D_803B6E5C;
|
||||
phi_s0_4 = temp_a1_3;
|
||||
if (temp_a1_3 < phi_a2_2) {
|
||||
temp_v0_4 = temp_a1_3 * 0;
|
||||
phi_a0 = temp_v0_4 + &D_803B6F68;
|
||||
phi_v0_3 = temp_v0_4;
|
||||
phi_v1_2 = (temp_a1_3 * 0x10) + &D_803B6758;
|
||||
do {
|
||||
*phi_a0 = phi_s0_4;
|
||||
temp_s0_4 = phi_s0_4 + 1;
|
||||
phi_v1_2->unkD = phi_v0_3;
|
||||
phi_s0_4 = temp_s0_4;
|
||||
phi_a0 += 1;
|
||||
phi_v0_3 += 1;
|
||||
phi_v1_2 += 0x10;
|
||||
} while (temp_s0_4 < phi_a2_2);
|
||||
|
||||
for (i = sSampleDmaListSize1; (u32) i < gSampleDmaNumListItems; i++) {
|
||||
sSampleDmaReuseQueue2[i - sSampleDmaListSize1] = (u8) i;
|
||||
sSampleDmas[i].reuseIndex = (u8)(i - sSampleDmaListSize1);
|
||||
}
|
||||
if (phi_a3 < 0x100) {
|
||||
phi_v0_4 = phi_a3 + &D_803B6F68;
|
||||
do {
|
||||
temp_v0_5 = phi_v0_4 + 1;
|
||||
temp_v0_5->unk-1 = temp_a1_3;
|
||||
phi_v0_4 = temp_v0_5;
|
||||
} while (temp_v0_5 < &D_803B7068);
|
||||
|
||||
// This probably meant to touch the range size1..size2 as well... but it
|
||||
// doesn't matter, since these values are never read anyway.
|
||||
for (j = gSampleDmaNumListItems; j < 0x100; j++) {
|
||||
sSampleDmaReuseQueue2[j] = sSampleDmaListSize1;
|
||||
}
|
||||
D_803B7069 = 0;
|
||||
D_803B706B = phi_a2_2 - temp_a1_3;
|
||||
|
||||
sSampleDmaReuseQueueTail2 = 0;
|
||||
sSampleDmaReuseQueueHead2 = gSampleDmaNumListItems - sSampleDmaListSize1;
|
||||
#undef j
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/load/func_800BB030.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
s32 func_800B8FFC(? *, s32, void *); // extern
|
||||
? func_800BAA80(s32, s32, s32, void *); // extern
|
||||
extern ? D_803BFBE8;
|
||||
// Similar to patch_sound, but not really
|
||||
s32 func_800BB304(struct AudioBankSample *sample) {
|
||||
//struct AudioBankSample *sample = sound->sample;
|
||||
UNUSED u8 *mem;
|
||||
|
||||
void func_800BB304(void *arg0) {
|
||||
s32 sp1C;
|
||||
s32 temp_a0;
|
||||
s32 temp_a1;
|
||||
s32 temp_a1_2;
|
||||
s32 temp_a2;
|
||||
s32 temp_v0;
|
||||
void *temp_a3;
|
||||
void *temp_a3_2;
|
||||
|
||||
temp_a3 = arg0;
|
||||
if (arg0 == 0) {
|
||||
return;
|
||||
if (sample == (void *)NULL) {
|
||||
return -1;
|
||||
}
|
||||
if (temp_a3->unk1 == 1) {
|
||||
temp_a1 = temp_a3->unk10;
|
||||
arg0 = temp_a3;
|
||||
temp_v0 = func_800B8FFC(&D_803BFBE8, temp_a1, temp_a3);
|
||||
temp_a3_2 = arg0;
|
||||
temp_a1_2 = temp_v0;
|
||||
if (temp_v0 == 0) {
|
||||
return;
|
||||
|
||||
if (sample->loaded == 1) {
|
||||
//temp_a1 = sound->sampleAddr // unk10;
|
||||
mem = soundAlloc(&gNotesAndBuffersPool, sample->sampleSize);
|
||||
//temp_a1_2 = temp_v0;
|
||||
if (mem == (void *)NULL) {
|
||||
return -1;
|
||||
}
|
||||
temp_a0 = temp_a3_2->unk4;
|
||||
temp_a2 = temp_a3_2->unk10;
|
||||
arg0 = temp_a3_2;
|
||||
sp1C = temp_a1_2;
|
||||
func_800BAA80(temp_a0, temp_a1_2, temp_a2, temp_a3_2);
|
||||
arg0->unk1 = 0x81;
|
||||
arg0->unk4 = temp_a1_2;
|
||||
// Duplicate return node #6. Try simplifying control flow for better match
|
||||
audio_dma_copy_immediate((uintptr_t)sample->sampleAddr, mem, sample->sampleSize);
|
||||
sample->loaded = 0x81;
|
||||
sample->sampleAddr = mem; // sound->unk4
|
||||
}
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/load/func_800BB304.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
@@ -574,9 +549,9 @@ GLOBAL_ASM("asm/non_matchings/audio/load/func_800BB43C.s")
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
s32 func_800B8FFC(? *, s32, s32); // extern
|
||||
? func_800BAA80(s32, s32, s32, s32); // extern
|
||||
extern ? D_803BFBE8;
|
||||
s32 soundAlloc(? *, s32, s32); // extern
|
||||
? audio_dma_copy_immediate(s32, s32, s32, s32); // extern
|
||||
extern ? gNotesAndBuffersPool;
|
||||
|
||||
void func_800BB484(void **arg0, s32 arg1, s32 arg2) {
|
||||
void *sp2C;
|
||||
@@ -604,14 +579,14 @@ void func_800BB484(void **arg0, s32 arg1, s32 arg2) {
|
||||
temp_a3_2 = temp_a3->unk4 + arg2;
|
||||
sp28 = temp_a3_2;
|
||||
sp2C = temp_a3;
|
||||
temp_v0_2 = func_800B8FFC(&D_803BFBE8, temp_a3->unk10, temp_a3_2);
|
||||
temp_v0_2 = soundAlloc(&gNotesAndBuffersPool, temp_a3->unk10, temp_a3_2);
|
||||
if (temp_v0_2 == 0) {
|
||||
temp_a3->unk4 = temp_a3_2;
|
||||
temp_a3->unk1 = 1;
|
||||
} else {
|
||||
sp24 = temp_v0_2;
|
||||
sp2C = temp_a3;
|
||||
func_800BAA80(temp_a3_2, temp_v0_2, temp_a3->unk10, temp_a3_2);
|
||||
audio_dma_copy_immediate(temp_a3_2, temp_v0_2, temp_a3->unk10, temp_a3_2);
|
||||
temp_a3->unk1 = 0x81;
|
||||
temp_a3->unk4 = temp_v0_2;
|
||||
}
|
||||
@@ -723,10 +698,12 @@ void func_800BB624(void **arg0, ? arg1, s32 arg2, s32 arg3) {
|
||||
GLOBAL_ASM("asm/non_matchings/audio/load/func_800BB624.s")
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
s32 func_800B93BC(? *, ?, s32, ?, s32); // extern
|
||||
? func_800BAA80(s32, s32, s32); // extern
|
||||
? audio_dma_copy_immediate(s32, s32, s32); // extern
|
||||
? func_800BB584(s32); // extern
|
||||
extern ? D_803AFE18;
|
||||
extern ? D_803B03C0;
|
||||
@@ -751,7 +728,7 @@ s32 func_800BB780(s32 arg0, ? arg1) {
|
||||
return 0;
|
||||
}
|
||||
sp2C = temp_v0_2;
|
||||
func_800BAA80(sp28 + 0x10, temp_v0_2, temp_a2);
|
||||
audio_dma_copy_immediate(sp28 + 0x10, temp_v0_2, temp_a2);
|
||||
(D_803B7080 + (arg0 * 0xC))->unk4 = sp2C + 4;
|
||||
func_800BB584(arg0);
|
||||
temp_v0_3 = arg0 + &D_803B03C0;
|
||||
@@ -819,7 +796,7 @@ GLOBAL_ASM("asm/non_matchings/audio/load/func_800BB864.s")
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
s32 func_800B93BC(? *, ?, s32, ?, s32); // extern
|
||||
? func_800BAA80(s32, s32, s32); // extern
|
||||
? audio_dma_copy_immediate(s32, s32, s32); // extern
|
||||
extern ? D_803AFC48;
|
||||
extern ? D_803B0400;
|
||||
extern s32 D_803B706C;
|
||||
@@ -842,7 +819,7 @@ s32 func_800BB99C(s32 arg0, ? arg1) {
|
||||
return 0;
|
||||
}
|
||||
sp28 = temp_v0;
|
||||
func_800BAA80(sp24, temp_v0, sp2C);
|
||||
audio_dma_copy_immediate(sp24, temp_v0, sp2C);
|
||||
temp_v0_3 = arg0 + &D_803B0400;
|
||||
if (*temp_v0_3 != 5) {
|
||||
*temp_v0_3 = 2;
|
||||
@@ -856,7 +833,7 @@ GLOBAL_ASM("asm/non_matchings/audio/load/func_800BB99C.s")
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
s32 func_800B93BC(? *, ?, s32, ?, s32); // extern
|
||||
? func_800BAA80(s32, s32, s32); // extern
|
||||
? audio_dma_copy_immediate(s32, s32, s32); // extern
|
||||
? func_800BAAF8(s32, s32, s32, OSMesgQueue *, void *); // extern
|
||||
extern ? D_803AFC48;
|
||||
extern ? D_803B0400;
|
||||
@@ -882,13 +859,13 @@ s32 func_800BBA50(s32 arg0, ? arg1, u8 *arg2) {
|
||||
return 0;
|
||||
}
|
||||
if (temp_s0 < 0x41) {
|
||||
func_800BAA80(sp3C, temp_v0, temp_s0);
|
||||
audio_dma_copy_immediate(sp3C, temp_v0, temp_s0);
|
||||
temp_v0_3 = arg0 + &D_803B0400;
|
||||
if (*temp_v0_3 != 5) {
|
||||
*temp_v0_3 = 2;
|
||||
}
|
||||
} else {
|
||||
func_800BAA80(sp3C, temp_v0, 0x40);
|
||||
audio_dma_copy_immediate(sp3C, temp_v0, 0x40);
|
||||
temp_a3 = arg2 + 0xD4;
|
||||
sp34 = temp_a3;
|
||||
osCreateMesgQueue(temp_a3, arg2 + 0xEC, 1);
|
||||
@@ -1064,24 +1041,20 @@ block_11:
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/load/func_800BBDDC.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_800BBF44(); // extern
|
||||
extern s32 D_800EA5DC;
|
||||
|
||||
void func_800BBEF0(s32 arg2) {
|
||||
if (arg2 == 0) {
|
||||
D_800EA5DC = 0x19710515;
|
||||
extern volatile s32 D_800EA5DC;
|
||||
//load_sequence_internal
|
||||
void func_800BBF44(u32 player, u32 seqId, s32 loadAsync);
|
||||
//load_sequence
|
||||
void func_800BBEF0(u32 player, u32 seqId, s32 loadAsync) {
|
||||
if (!loadAsync) {
|
||||
D_800EA5DC = AUDIO_LOCK_LOADING; // gAudioLoadLock
|
||||
}
|
||||
func_800BBF44();
|
||||
if (arg2 == 0) {
|
||||
D_800EA5DC = 0x76557364;
|
||||
func_800BBF44(player, seqId, loadAsync);
|
||||
if (!loadAsync) {
|
||||
D_800EA5DC = AUDIO_LOCK_NOT_LOADING;
|
||||
}
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/load/func_800BBEF0.s")
|
||||
#endif
|
||||
//GLOBAL_ASM("asm/non_matchings/audio/load/func_800BBEF0.s")
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
#ifndef AUDIO_LOAD_H
|
||||
#define AUDIO_LOAD_H
|
||||
|
||||
#include <PR/ultratypes.h>
|
||||
#include "internal.h"
|
||||
|
||||
#define AUDIO_FRAME_DMA_QUEUE_SIZE 0x40
|
||||
|
||||
#define PRELOAD_BANKS 2
|
||||
#define PRELOAD_SEQUENCE 1
|
||||
|
||||
#endif // AUDIO_LOAD_H
|
||||
+13
-13
@@ -292,7 +292,7 @@ f32 func_800BE5E0(void *); // extern
|
||||
? func_800BEBA4(void *, u32); // extern
|
||||
? func_800BF004(s32, void *); // extern
|
||||
extern s32 D_803B1508;
|
||||
extern s32 D_803B70B0;
|
||||
extern s32 gMaxSimultaneousNotes;
|
||||
|
||||
void func_800BCBC4(void) {
|
||||
u8 sp4B;
|
||||
@@ -327,7 +327,7 @@ void func_800BCBC4(void) {
|
||||
s32 phi_v0_2;
|
||||
s32 phi_v1;
|
||||
|
||||
temp_v1 = D_803B70B0;
|
||||
temp_v1 = gMaxSimultaneousNotes;
|
||||
phi_v1 = temp_v1;
|
||||
if (temp_v1 > 0) {
|
||||
phi_s5 = 0;
|
||||
@@ -347,7 +347,7 @@ void func_800BCBC4(void) {
|
||||
if (temp_v0 == 0) {
|
||||
func_800BEBA4(temp_a0, temp_a1);
|
||||
temp_s1_2->unk0 = 1;
|
||||
temp_v1_2 = D_803B70B0;
|
||||
temp_v1_2 = gMaxSimultaneousNotes;
|
||||
phi_v0_2 = temp_v1_2 * 3;
|
||||
phi_v1 = temp_v1_2;
|
||||
} else {
|
||||
@@ -436,7 +436,7 @@ block_27:
|
||||
phi_s3->unk1 = ((phi_s2 * 4) & 0x1C) | (phi_s3->unk1 & 0xFFE3);
|
||||
}
|
||||
}
|
||||
temp_v1_3 = D_803B70B0;
|
||||
temp_v1_3 = gMaxSimultaneousNotes;
|
||||
phi_v0_2 = temp_v1_3 * 3;
|
||||
phi_v1 = temp_v1_3;
|
||||
}
|
||||
@@ -670,7 +670,7 @@ GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BD318.s")
|
||||
? func_800BF004(? *, s32); // extern
|
||||
extern s32 D_803B1508;
|
||||
extern ? D_803B5FC8;
|
||||
extern s32 D_803B70B0;
|
||||
extern s32 gMaxSimultaneousNotes;
|
||||
|
||||
void func_800BD368(void) {
|
||||
s32 temp_s1;
|
||||
@@ -681,7 +681,7 @@ void func_800BD368(void) {
|
||||
func_800BD318(&D_803B5FC8);
|
||||
phi_s0 = 0;
|
||||
phi_s1 = 0;
|
||||
if (D_803B70B0 > 0) {
|
||||
if (gMaxSimultaneousNotes > 0) {
|
||||
do {
|
||||
temp_v0 = D_803B1508;
|
||||
(temp_v0 + phi_s0)->unk8 = phi_s0 + temp_v0;
|
||||
@@ -690,7 +690,7 @@ void func_800BD368(void) {
|
||||
temp_s1 = phi_s1 + 1;
|
||||
phi_s0 += 0xC0;
|
||||
phi_s1 = temp_s1;
|
||||
} while (temp_s1 < D_803B70B0);
|
||||
} while (temp_s1 < gMaxSimultaneousNotes);
|
||||
}
|
||||
}
|
||||
#else
|
||||
@@ -1186,10 +1186,10 @@ GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BDA44.s")
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
s32 func_800B8FFC(? *, ?); // extern
|
||||
extern ? D_803AFBE8;
|
||||
s32 soundAlloc(? *, ?); // extern
|
||||
extern ? gNotesAndBuffersPool;
|
||||
extern s32 D_803B1508;
|
||||
extern s32 D_803B70B0;
|
||||
extern s32 gMaxSimultaneousNotes;
|
||||
extern ? gZeroNoteSub;
|
||||
|
||||
void func_800BDD34(void) {
|
||||
@@ -1199,7 +1199,7 @@ void func_800BDD34(void) {
|
||||
s32 phi_s1;
|
||||
|
||||
phi_s1 = 0;
|
||||
if (D_803B70B0 > 0) {
|
||||
if (gMaxSimultaneousNotes > 0) {
|
||||
phi_s2 = 0;
|
||||
do {
|
||||
temp_s0 = phi_s2 + D_803B1508;
|
||||
@@ -1219,11 +1219,11 @@ void func_800BDD34(void) {
|
||||
temp_s0->unk80 = 0.0f;
|
||||
temp_s0->unk84 = 0.0f;
|
||||
temp_s0->unkBC = gZeroNoteSub.unkC;
|
||||
temp_s0->unk1C = func_800B8FFC(&D_803AFBE8, 0xA0);
|
||||
temp_s0->unk1C = soundAlloc(&gNotesAndBuffersPool, 0xA0);
|
||||
temp_s1 = phi_s1 + 1;
|
||||
phi_s2 += 0xC0;
|
||||
phi_s1 = temp_s1;
|
||||
} while (temp_s1 < D_803B70B0);
|
||||
} while (temp_s1 < gMaxSimultaneousNotes);
|
||||
}
|
||||
}
|
||||
#else
|
||||
|
||||
+14
-14
@@ -14,10 +14,10 @@ extern OSMesgQueue *D_800EA3B4;
|
||||
extern s32 D_800EA484;
|
||||
extern u8 D_803B0500;
|
||||
extern u8 D_803B0501;
|
||||
extern OSMesgQueue D_803B6008;
|
||||
extern ? D_803B7088;
|
||||
extern OSMesgQueue gCurrAudioFrameDmaQueue;
|
||||
extern ? gAudioBufferParameters;
|
||||
extern s32 D_803B70B8;
|
||||
extern s32 D_803B70BC;
|
||||
extern s32 gCurrAudioFrameDmaCount;
|
||||
extern s32 D_803B70C0;
|
||||
extern s32 D_803B70C4;
|
||||
extern ? D_803B70C8;
|
||||
@@ -64,7 +64,7 @@ void *create_next_audio_frame_task(void) {
|
||||
s32 phi_s1_3;
|
||||
|
||||
D_803B70B8 = D_803B70B8 + 1;
|
||||
if ((D_803B70B8 % D_803B7088.unk0) != 0) {
|
||||
if ((D_803B70B8 % gAudioBufferParameters.unk0) != 0) {
|
||||
return NULL;
|
||||
}
|
||||
osSendMesg(D_800EA3A8, D_803B70B8, 0);
|
||||
@@ -79,7 +79,7 @@ void *create_next_audio_frame_task(void) {
|
||||
if (temp_v1 != 0) {
|
||||
osAiSetNextBuffer(*(&D_803B7180 + (temp_hi * 4)), temp_v1 * 4);
|
||||
}
|
||||
temp_s1 = D_803B70BC;
|
||||
temp_s1 = gCurrAudioFrameDmaCount;
|
||||
phi_s0 = 0;
|
||||
phi_s1 = temp_s1;
|
||||
phi_s0_2 = 0;
|
||||
@@ -88,31 +88,31 @@ void *create_next_audio_frame_task(void) {
|
||||
if (temp_s1 > 0) {
|
||||
do {
|
||||
phi_s1_2 = phi_s1_3;
|
||||
if (osRecvMesg(&D_803B6008, NULL, 0) == 0) {
|
||||
if (osRecvMesg(&gCurrAudioFrameDmaQueue, NULL, 0) == 0) {
|
||||
phi_s1_2 = phi_s1_3 - 1;
|
||||
}
|
||||
temp_s0 = phi_s0 + 1;
|
||||
phi_s0 = temp_s0;
|
||||
phi_s1 = phi_s1_2;
|
||||
phi_s1_3 = phi_s1_2;
|
||||
} while (temp_s0 < D_803B70BC);
|
||||
} while (temp_s0 < gCurrAudioFrameDmaCount);
|
||||
}
|
||||
if ((phi_s1 != 0) && (phi_s1 > 0)) {
|
||||
do {
|
||||
osRecvMesg(&D_803B6008, NULL, 1);
|
||||
osRecvMesg(&gCurrAudioFrameDmaQueue, NULL, 1);
|
||||
temp_s0_2 = phi_s0_2 + 1;
|
||||
phi_s0_2 = temp_s0_2;
|
||||
} while (temp_s0_2 != phi_s1);
|
||||
}
|
||||
temp_s1_2 = D_803B6008.validCount;
|
||||
temp_s1_2 = gCurrAudioFrameDmaQueue.validCount;
|
||||
if ((temp_s1_2 != 0) && (temp_s1_2 > 0)) {
|
||||
do {
|
||||
osRecvMesg(&D_803B6008, NULL, 0);
|
||||
osRecvMesg(&gCurrAudioFrameDmaQueue, NULL, 0);
|
||||
temp_s0_3 = phi_s0_3 + 1;
|
||||
phi_s0_3 = temp_s0_3;
|
||||
} while (temp_s0_3 != temp_s1_2);
|
||||
}
|
||||
D_803B70BC = 0;
|
||||
gCurrAudioFrameDmaCount = 0;
|
||||
func_800BAC04();
|
||||
if (osRecvMesg(D_800EA3B0, &sp58, 0) != -1) {
|
||||
D_803B0501 = sp58;
|
||||
@@ -131,12 +131,12 @@ void *create_next_audio_frame_task(void) {
|
||||
D_803B70D0 = *(&D_803B70C8 + (temp_v0 * 4));
|
||||
sp60 = *temp_a3;
|
||||
temp_s1_3 = (temp_s0_4 * 2) + &D_803B718C;
|
||||
*temp_s1_3 = (((D_803B7088.unk6 - sp74) + 0x40) & 0xFFF0) + 0x10;
|
||||
temp_a0 = D_803B7088.unkA;
|
||||
*temp_s1_3 = (((gAudioBufferParameters.unk6 - sp74) + 0x40) & 0xFFF0) + 0x10;
|
||||
temp_a0 = gAudioBufferParameters.unkA;
|
||||
if (*temp_s1_3 < temp_a0) {
|
||||
*temp_s1_3 = temp_a0;
|
||||
}
|
||||
temp_v0_2 = D_803B7088.unk8;
|
||||
temp_v0_2 = gAudioBufferParameters.unk8;
|
||||
if (temp_v0_2 < *temp_s1_3) {
|
||||
*temp_s1_3 = temp_v0_2;
|
||||
}
|
||||
|
||||
+32
-32
@@ -62,8 +62,8 @@ s8 gUseReverb;
|
||||
s8 gNumSynthesisReverbs;
|
||||
struct NoteSubEu *gNoteSubsEu;
|
||||
|
||||
extern struct Note *D_803B7088;
|
||||
extern s32 D_803B70B0;
|
||||
extern struct Note *gAudioBufferParameters;
|
||||
extern s32 gMaxSimultaneousNotes;
|
||||
|
||||
f32 gLeftVolRampings;
|
||||
//f32 gRightVolRampings[3][1024];
|
||||
@@ -164,9 +164,9 @@ void synthesis_load_note_subs_eu(s32 updateIndex) {
|
||||
struct NoteSubEu *dest;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < D_803B70B0; i++) {
|
||||
src = &D_803B7088[i].noteSubEu;
|
||||
dest = &gNoteSubsEu[D_803B70B0 * updateIndex + i];
|
||||
for (i = 0; i < gMaxSimultaneousNotes; i++) {
|
||||
src = &gAudioBufferParameters[i].noteSubEu;
|
||||
dest = &gNoteSubsEu[gMaxSimultaneousNotes * updateIndex + i];
|
||||
if (src->enabled) {
|
||||
*dest = *src;
|
||||
src->needsInit = FALSE;
|
||||
@@ -183,11 +183,11 @@ void func_800B6FB4(s32 arg0, s32 arg1) {
|
||||
s32 phi_v0;
|
||||
|
||||
temp_v0 = arg0 + 1;
|
||||
if (i = 0; temp_v0 < (s32) D_803B7088.unkC; i++) {
|
||||
if (i = 0; temp_v0 < (s32) gAudioBufferParameters.unkC; i++) {
|
||||
phi_v0 = temp_v0;
|
||||
|
||||
for(i = 0; temp_v0_2 < (s32) D_803B7088.unkC; i++) {
|
||||
dest = &gNoteSubsEu[D_803B70B0 * phi_v0 + (arg1 * 0x10)];
|
||||
for(i = 0; temp_v0_2 < (s32) gAudioBufferParameters.unkC; i++) {
|
||||
dest = &gNoteSubsEu[gMaxSimultaneousNotes * phi_v0 + (arg1 * 0x10)];
|
||||
if ((*dest * 2) >= 0) {
|
||||
temp_v0_2 = phi_v0 + 1;
|
||||
*dest = (s8) ((u8) *dest & 0xFF7F);
|
||||
@@ -205,8 +205,8 @@ GLOBAL_ASM("asm/non_matchings/audio/synthesis/func_800B6F1C.s")
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
Tried to use struct NoteSubEu before it is defined.
|
||||
extern ? D_803B7088;
|
||||
extern s32 D_803B70B0;
|
||||
extern ? gAudioBufferParameters;
|
||||
extern s32 gMaxSimultaneousNotes;
|
||||
extern ? gNoteSubsEu;
|
||||
|
||||
void synthesis_load_note_subs_eu(s32 arg0, s32 arg1) {
|
||||
@@ -217,16 +217,16 @@ void synthesis_load_note_subs_eu(s32 arg0, s32 arg1) {
|
||||
|
||||
temp_v0 = arg0 + 1;
|
||||
phi_v0 = temp_v0;
|
||||
if (temp_v0 < D_803B7088.unkC) {
|
||||
if (temp_v0 < gAudioBufferParameters.unkC) {
|
||||
// Error: Tried to use struct NoteSubEu before it is defined.
|
||||
// At instruction: lui $a1, %hi(gNoteSubsEu)
|
||||
loop_2:
|
||||
temp_a0 = *arg1 + (D_803B70B0 * phi_v0 * 0x10) + (arg1 * 0x10);
|
||||
temp_a0 = *arg1 + (gMaxSimultaneousNotes * phi_v0 * 0x10) + (arg1 * 0x10);
|
||||
if ((*temp_a0 * 2) >= 0) {
|
||||
temp_v0_2 = phi_v0 + 1;
|
||||
*temp_a0 = *temp_a0 & 0xFF7F;
|
||||
phi_v0 = temp_v0_2;
|
||||
if (temp_v0_2 < D_803B7088.unkC) {
|
||||
if (temp_v0_2 < gAudioBufferParameters.unkC) {
|
||||
goto loop_2;
|
||||
}
|
||||
}
|
||||
@@ -239,7 +239,7 @@ GLOBAL_ASM("asm/non_matchings/audio/synthesis/synthesis_load_note_subs_eu.s")
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
Tried to use struct NoteSubEu before it is defined.
|
||||
extern s32 D_803B70B0;
|
||||
extern s32 gMaxSimultaneousNotes;
|
||||
extern ? gNoteSubsEu;
|
||||
|
||||
void func_800B7034(s32 arg0) {
|
||||
@@ -252,13 +252,13 @@ void func_800B7034(s32 arg0) {
|
||||
|
||||
phi_a1 = 0;
|
||||
phi_v0 = 0;
|
||||
if (D_803B70B0 > 0) {
|
||||
if (gMaxSimultaneousNotes > 0) {
|
||||
// Error: Tried to use struct NoteSubEu before it is defined.
|
||||
// At instruction: lui $t2, %hi(gNoteSubsEu)
|
||||
do {
|
||||
temp_a0 = phi_a1 + *MIPS2C_ERROR(Read from unset register $t1);
|
||||
temp_a0_2 = temp_a0 + 0xB0;
|
||||
temp_a2 = (((D_803B70B0 * arg0) + phi_v0) * 0x10) + *MIPS2C_ERROR(Read from unset register $t2);
|
||||
temp_a2 = (((gMaxSimultaneousNotes * arg0) + phi_v0) * 0x10) + *MIPS2C_ERROR(Read from unset register $t2);
|
||||
if ((temp_a0->unkB0 >> 0x1F) != 0) {
|
||||
temp_a2->unk0 = temp_a0_2->unk0;
|
||||
temp_a2->unk4 = temp_a0_2->unk4;
|
||||
@@ -271,7 +271,7 @@ void func_800B7034(s32 arg0) {
|
||||
temp_v0 = phi_v0 + 1;
|
||||
phi_a1 += 0xC0;
|
||||
phi_v0 = temp_v0;
|
||||
} while (temp_v0 < D_803B70B0);
|
||||
} while (temp_v0 < gMaxSimultaneousNotes);
|
||||
}
|
||||
}
|
||||
#else
|
||||
@@ -284,7 +284,7 @@ GLOBAL_ASM("asm/non_matchings/audio/synthesis/func_800B7034.s")
|
||||
void *func_800B775C(s32, s32, void *, s32); // extern
|
||||
? func_800C1138(s32); // extern
|
||||
? prepare_reverb_ring_buffer(s32, s32, s32); // extern
|
||||
extern ? D_803B7088;
|
||||
extern ? gAudioBufferParameters;
|
||||
|
||||
void *func_800B70EC(void *arg0, s32 *arg1, s32 arg2, s32 arg3) {
|
||||
s16 temp_s2;
|
||||
@@ -317,20 +317,20 @@ void *func_800B70EC(void *arg0, s32 *arg1, s32 arg2, s32 arg3) {
|
||||
void *phi_fp_2;
|
||||
s16 phi_s2_3;
|
||||
|
||||
temp_s4 = D_803B7088.unkC;
|
||||
temp_s4 = gAudioBufferParameters.unkC;
|
||||
phi_s4 = temp_s4;
|
||||
phi_s6 = arg3;
|
||||
if (temp_s4 > 0) {
|
||||
do {
|
||||
temp_s0 = phi_s4 - 1;
|
||||
func_800C1138(temp_s0);
|
||||
func_800B7034(D_803B7088.unkC - phi_s4);
|
||||
func_800B7034(gAudioBufferParameters.unkC - phi_s4);
|
||||
phi_s4 = temp_s0;
|
||||
} while (temp_s0 > 0);
|
||||
}
|
||||
arg0->unk0 = 0x7000000;
|
||||
arg0->unk4 = 0;
|
||||
temp_s4_2 = D_803B7088.unkC;
|
||||
temp_s4_2 = gAudioBufferParameters.unkC;
|
||||
temp_fp = arg0 + 8;
|
||||
phi_s4_2 = temp_s4_2;
|
||||
phi_s7 = arg2;
|
||||
@@ -338,7 +338,7 @@ void *func_800B70EC(void *arg0, s32 *arg1, s32 arg2, s32 arg3) {
|
||||
phi_fp_2 = temp_fp;
|
||||
if (temp_s4_2 > 0) {
|
||||
do {
|
||||
temp_s2 = D_803B7088.unkC;
|
||||
temp_s2 = gAudioBufferParameters.unkC;
|
||||
phi_s2 = temp_s2;
|
||||
phi_s1 = 0;
|
||||
phi_s2_2 = temp_s2;
|
||||
@@ -346,15 +346,15 @@ void *func_800B70EC(void *arg0, s32 *arg1, s32 arg2, s32 arg3) {
|
||||
phi_s3 = phi_s6;
|
||||
} else {
|
||||
temp_lo = phi_s6 / phi_s4_2;
|
||||
temp_v1 = D_803B7088.unk10;
|
||||
temp_v1 = gAudioBufferParameters.unk10;
|
||||
if (temp_lo >= temp_v1) {
|
||||
phi_s3 = temp_v1;
|
||||
} else {
|
||||
temp_v1_2 = D_803B7088.unk12;
|
||||
temp_v1_2 = gAudioBufferParameters.unk12;
|
||||
if (temp_v1_2 >= temp_lo) {
|
||||
phi_s3 = temp_v1_2;
|
||||
} else {
|
||||
phi_s3 = D_803B7088.unkE;
|
||||
phi_s3 = gAudioBufferParameters.unkE;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -367,7 +367,7 @@ void *func_800B70EC(void *arg0, s32 *arg1, s32 arg2, s32 arg3) {
|
||||
if (phi_s0->useReverb != 0) {
|
||||
prepare_reverb_ring_buffer(phi_s3, phi_s2 - phi_s4_2, phi_s1);
|
||||
phi_v0 = gNumSynthesisReverbs;
|
||||
phi_s2_3 = D_803B7088.unkC;
|
||||
phi_s2_3 = gAudioBufferParameters.unkC;
|
||||
}
|
||||
temp_s1 = phi_s1 + 1;
|
||||
phi_s0 += 0x108;
|
||||
@@ -553,7 +553,7 @@ void *func_800B7630(void *, s16, s16); // extern
|
||||
void *func_800B7C30(u8, s32, s32, s32, s32, void *, s32); // extern
|
||||
extern ? D_803B03C0;
|
||||
extern s32 D_803B1508;
|
||||
extern s32 D_803B70B0;
|
||||
extern s32 gMaxSimultaneousNotes;
|
||||
extern s32 D_803B7198;
|
||||
extern ? gNoteSubsEu;
|
||||
extern u8 gUseReverb;
|
||||
@@ -627,7 +627,7 @@ void *func_800B775C(s32 arg0, s32 arg1, void *arg2, s16 arg3) {
|
||||
phi_s2_8 = 0;
|
||||
phi_s2_4 = 0;
|
||||
if (temp_t1 == 0) {
|
||||
temp_a0 = D_803B70B0;
|
||||
temp_a0 = gMaxSimultaneousNotes;
|
||||
phi_s1 = 0;
|
||||
if (temp_a0 > 0) {
|
||||
// Error: Tried to use struct NoteSubEu before it is defined.
|
||||
@@ -649,7 +649,7 @@ void *func_800B775C(s32 arg0, s32 arg1, void *arg2, s16 arg3) {
|
||||
} else {
|
||||
phi_s3 = 0;
|
||||
if (temp_t1 > 0) {
|
||||
temp_a0_2 = D_803B70B0;
|
||||
temp_a0_2 = gMaxSimultaneousNotes;
|
||||
do {
|
||||
phi_s1_2 = 0;
|
||||
phi_s2_2 = phi_s2_6;
|
||||
@@ -676,7 +676,7 @@ void *func_800B775C(s32 arg0, s32 arg1, void *arg2, s16 arg3) {
|
||||
phi_s2_8 = phi_s2_10;
|
||||
} while (temp_s3 < temp_t1);
|
||||
}
|
||||
temp_a0_3 = D_803B70B0;
|
||||
temp_a0_3 = gMaxSimultaneousNotes;
|
||||
phi_s1_3 = 0;
|
||||
phi_s2_3 = phi_s2_8;
|
||||
phi_s2_4 = phi_s2_8;
|
||||
@@ -727,7 +727,7 @@ void *func_800B775C(s32 arg0, s32 arg1, void *arg2, s16 arg3) {
|
||||
loop_31:
|
||||
temp_v1 = *phi_s0;
|
||||
temp_t0 = *saved_reg_s6;
|
||||
temp_lo = arg3 * D_803B70B0;
|
||||
temp_lo = arg3 * gMaxSimultaneousNotes;
|
||||
phi_s4_3 = phi_s4_2;
|
||||
phi_s1_8 = phi_s1_5;
|
||||
if (phi_s3_2 == ((temp_t0 + (temp_v1 * 0x10) + (temp_lo * 0x10))->unk1 >> 5)) {
|
||||
@@ -765,7 +765,7 @@ loop_31:
|
||||
do {
|
||||
temp_v1_2 = *phi_s0_2;
|
||||
temp_t0_2 = *saved_reg_s6;
|
||||
temp_lo_2 = arg3 * D_803B70B0;
|
||||
temp_lo_2 = arg3 * gMaxSimultaneousNotes;
|
||||
temp_a1 = (temp_t0_2 + (temp_v1_2 * 0x10) + (temp_lo_2 * 0x10))->unk2;
|
||||
phi_s4_9 = phi_s4_4;
|
||||
if (((*(&D_803B03C0 + temp_a1) < 2) ^ 1) == 1) {
|
||||
|
||||
+339
-116
@@ -7,58 +7,322 @@ extern OSMesgQueue gDmaMesgQueue;
|
||||
extern OSMesg gMainReceivedMesg;
|
||||
|
||||
extern u8 _kart_texturesSegmentRomStart[];
|
||||
extern u32 gKartPalettes[];
|
||||
extern uintptr_t *gKartPalettes[];
|
||||
|
||||
// arrays?
|
||||
extern u32 *D_802F1F80;
|
||||
extern u32 *D_802DFB80;
|
||||
extern u16 D_802F1F80[2][4][2048];
|
||||
extern u8 D_802DFB80[2][2][18688];
|
||||
|
||||
extern s16 D_800DDEB0[];
|
||||
extern u16 D_800DDEB0[];
|
||||
/*
|
||||
u16 D_800DDEB0[] = { // sizes
|
||||
0x06c0, 0x06e0, 0x06e0, 0x0680, 0x07c0, 0x0700, 0x0680, 0x0910
|
||||
};
|
||||
*/
|
||||
extern s32 gActiveScreenMode;
|
||||
|
||||
// Structured like a 3D pointer array
|
||||
extern u32 ***gKartTextureTable0, ***gKartTextureTable1, **gKartTextureGroup18s;
|
||||
extern uintptr_t **gKartTextureGroup18s;
|
||||
|
||||
extern uintptr_t *gKartMarioGroup8[];
|
||||
extern uintptr_t *gKartMarioGroup7[];
|
||||
extern uintptr_t *gKartMarioGroup6[];
|
||||
extern uintptr_t *gKartMarioGroup5[];
|
||||
extern uintptr_t *gKartMarioGroup4[];
|
||||
extern uintptr_t *gKartMarioGroup3[];
|
||||
extern uintptr_t *gKartMarioGroup2[];
|
||||
extern uintptr_t *gKartMarioGroup1[];
|
||||
extern uintptr_t *gKartMarioGroup0[];
|
||||
|
||||
extern uintptr_t *gKartLuigiGroup8[];
|
||||
extern uintptr_t *gKartLuigiGroup7[];
|
||||
extern uintptr_t *gKartLuigiGroup6[];
|
||||
extern uintptr_t *gKartLuigiGroup5[];
|
||||
extern uintptr_t *gKartLuigiGroup4[];
|
||||
extern uintptr_t *gKartLuigiGroup3[];
|
||||
extern uintptr_t *gKartLuigiGroup2[];
|
||||
extern uintptr_t *gKartLuigiGroup1[];
|
||||
extern uintptr_t *gKartLuigiGroup0[];
|
||||
|
||||
extern uintptr_t *gKartYoshiGroup8[];
|
||||
extern uintptr_t *gKartYoshiGroup7[];
|
||||
extern uintptr_t *gKartYoshiGroup6[];
|
||||
extern uintptr_t *gKartYoshiGroup5[];
|
||||
extern uintptr_t *gKartYoshiGroup4[];
|
||||
extern uintptr_t *gKartYoshiGroup3[];
|
||||
extern uintptr_t *gKartYoshiGroup2[];
|
||||
extern uintptr_t *gKartYoshiGroup1[];
|
||||
extern uintptr_t *gKartYoshiGroup0[];
|
||||
|
||||
extern uintptr_t *gKartToadGroup8[];
|
||||
extern uintptr_t *gKartToadGroup7[];
|
||||
extern uintptr_t *gKartToadGroup6[];
|
||||
extern uintptr_t *gKartToadGroup5[];
|
||||
extern uintptr_t *gKartToadGroup4[];
|
||||
extern uintptr_t *gKartToadGroup3[];
|
||||
extern uintptr_t *gKartToadGroup2[];
|
||||
extern uintptr_t *gKartToadGroup1[];
|
||||
extern uintptr_t *gKartToadGroup0[];
|
||||
|
||||
extern uintptr_t *gKartDKGroup8[];
|
||||
extern uintptr_t *gKartDKGroup7[];
|
||||
extern uintptr_t *gKartDKGroup6[];
|
||||
extern uintptr_t *gKartDKGroup5[];
|
||||
extern uintptr_t *gKartDKGroup4[];
|
||||
extern uintptr_t *gKartDKGroup3[];
|
||||
extern uintptr_t *gKartDKGroup2[];
|
||||
extern uintptr_t *gKartDKGroup1[];
|
||||
extern uintptr_t *gKartDKGroup0[];
|
||||
|
||||
extern uintptr_t *gKartWarioGroup8[];
|
||||
extern uintptr_t *gKartWarioGroup7[];
|
||||
extern uintptr_t *gKartWarioGroup6[];
|
||||
extern uintptr_t *gKartWarioGroup5[];
|
||||
extern uintptr_t *gKartWarioGroup4[];
|
||||
extern uintptr_t *gKartWarioGroup3[];
|
||||
extern uintptr_t *gKartWarioGroup2[];
|
||||
extern uintptr_t *gKartWarioGroup1[];
|
||||
extern uintptr_t *gKartWarioGroup0[];
|
||||
|
||||
extern uintptr_t *gKartPeachGroup8[];
|
||||
extern uintptr_t *gKartPeachGroup7[];
|
||||
extern uintptr_t *gKartPeachGroup6[];
|
||||
extern uintptr_t *gKartPeachGroup5[];
|
||||
extern uintptr_t *gKartPeachGroup4[];
|
||||
extern uintptr_t *gKartPeachGroup3[];
|
||||
extern uintptr_t *gKartPeachGroup2[];
|
||||
extern uintptr_t *gKartPeachGroup1[];
|
||||
extern uintptr_t *gKartPeachGroup0[];
|
||||
|
||||
extern uintptr_t *gKartBowserGroup8[];
|
||||
extern uintptr_t *gKartBowserGroup7[];
|
||||
extern uintptr_t *gKartBowserGroup6[];
|
||||
extern uintptr_t *gKartBowserGroup5[];
|
||||
extern uintptr_t *gKartBowserGroup4[];
|
||||
extern uintptr_t *gKartBowserGroup3[];
|
||||
extern uintptr_t *gKartBowserGroup2[];
|
||||
extern uintptr_t *gKartBowserGroup1[];
|
||||
extern uintptr_t *gKartBowserGroup0[];
|
||||
|
||||
extern uintptr_t *gKartMarioGroup17[];
|
||||
extern uintptr_t *gKartMarioGroup16[];
|
||||
extern uintptr_t *gKartMarioGroup15[];
|
||||
extern uintptr_t *gKartMarioGroup14[];
|
||||
extern uintptr_t *gKartMarioGroup13[];
|
||||
extern uintptr_t *gKartMarioGroup12[];
|
||||
extern uintptr_t *gKartMarioGroup11[];
|
||||
extern uintptr_t *gKartMarioGroup10[];
|
||||
extern uintptr_t *gKartMarioGroup9[];
|
||||
|
||||
extern uintptr_t *gKartLuigiGroup17[];
|
||||
extern uintptr_t *gKartLuigiGroup16[];
|
||||
extern uintptr_t *gKartLuigiGroup15[];
|
||||
extern uintptr_t *gKartLuigiGroup14[];
|
||||
extern uintptr_t *gKartLuigiGroup13[];
|
||||
extern uintptr_t *gKartLuigiGroup12[];
|
||||
extern uintptr_t *gKartLuigiGroup11[];
|
||||
extern uintptr_t *gKartLuigiGroup10[];
|
||||
extern uintptr_t *gKartLuigiGroup9[];
|
||||
|
||||
extern uintptr_t *gKartYoshiGroup17[];
|
||||
extern uintptr_t *gKartYoshiGroup16[];
|
||||
extern uintptr_t *gKartYoshiGroup15[];
|
||||
extern uintptr_t *gKartYoshiGroup14[];
|
||||
extern uintptr_t *gKartYoshiGroup13[];
|
||||
extern uintptr_t *gKartYoshiGroup12[];
|
||||
extern uintptr_t *gKartYoshiGroup11[];
|
||||
extern uintptr_t *gKartYoshiGroup10[];
|
||||
extern uintptr_t *gKartYoshiGroup9[];
|
||||
|
||||
extern uintptr_t *gKartToadGroup17[];
|
||||
extern uintptr_t *gKartToadGroup16[];
|
||||
extern uintptr_t *gKartToadGroup15[];
|
||||
extern uintptr_t *gKartToadGroup14[];
|
||||
extern uintptr_t *gKartToadGroup13[];
|
||||
extern uintptr_t *gKartToadGroup12[];
|
||||
extern uintptr_t *gKartToadGroup11[];
|
||||
extern uintptr_t *gKartToadGroup10[];
|
||||
extern uintptr_t *gKartToadGroup9[];
|
||||
|
||||
extern uintptr_t *gKartDKGroup17[];
|
||||
extern uintptr_t *gKartDKGroup16[];
|
||||
extern uintptr_t *gKartDKGroup15[];
|
||||
extern uintptr_t *gKartDKGroup14[];
|
||||
extern uintptr_t *gKartDKGroup13[];
|
||||
extern uintptr_t *gKartDKGroup12[];
|
||||
extern uintptr_t *gKartDKGroup11[];
|
||||
extern uintptr_t *gKartDKGroup10[];
|
||||
extern uintptr_t *gKartDKGroup9[];
|
||||
|
||||
extern uintptr_t *gKartWarioGroup17[];
|
||||
extern uintptr_t *gKartWarioGroup16[];
|
||||
extern uintptr_t *gKartWarioGroup15[];
|
||||
extern uintptr_t *gKartWarioGroup14[];
|
||||
extern uintptr_t *gKartWarioGroup13[];
|
||||
extern uintptr_t *gKartWarioGroup12[];
|
||||
extern uintptr_t *gKartWarioGroup11[];
|
||||
extern uintptr_t *gKartWarioGroup10[];
|
||||
extern uintptr_t *gKartWarioGroup9[];
|
||||
|
||||
extern uintptr_t *gKartPeachGroup17[];
|
||||
extern uintptr_t *gKartPeachGroup16[];
|
||||
extern uintptr_t *gKartPeachGroup15[];
|
||||
extern uintptr_t *gKartPeachGroup14[];
|
||||
extern uintptr_t *gKartPeachGroup13[];
|
||||
extern uintptr_t *gKartPeachGroup12[];
|
||||
extern uintptr_t *gKartPeachGroup11[];
|
||||
extern uintptr_t *gKartPeachGroup10[];
|
||||
extern uintptr_t *gKartPeachGroup9[];
|
||||
|
||||
extern uintptr_t *gKartBowserGroup17[];
|
||||
extern uintptr_t *gKartBowserGroup16[];
|
||||
extern uintptr_t *gKartBowserGroup15[];
|
||||
extern uintptr_t *gKartBowserGroup14[];
|
||||
extern uintptr_t *gKartBowserGroup13[];
|
||||
extern uintptr_t *gKartBowserGroup12[];
|
||||
extern uintptr_t *gKartBowserGroup11[];
|
||||
extern uintptr_t *gKartBowserGroup10[];
|
||||
extern uintptr_t *gKartBowserGroup9[];
|
||||
|
||||
|
||||
|
||||
uintptr_t **gKartMarioTable0[] = {
|
||||
gKartMarioGroup8, gKartMarioGroup7, gKartMarioGroup6,
|
||||
gKartMarioGroup5, gKartMarioGroup4, gKartMarioGroup3,
|
||||
gKartMarioGroup2, gKartMarioGroup1, gKartMarioGroup0,
|
||||
};
|
||||
uintptr_t **gKartLuigiTable0[] = {
|
||||
gKartLuigiGroup8, gKartLuigiGroup7, gKartLuigiGroup6,
|
||||
gKartLuigiGroup5, gKartLuigiGroup4, gKartLuigiGroup3,
|
||||
gKartLuigiGroup2, gKartLuigiGroup1, gKartLuigiGroup0,
|
||||
};
|
||||
uintptr_t **gKartYoshiTable0[] = {
|
||||
gKartYoshiGroup8, gKartYoshiGroup7, gKartYoshiGroup6,
|
||||
gKartYoshiGroup5, gKartYoshiGroup4, gKartYoshiGroup3,
|
||||
gKartYoshiGroup2, gKartYoshiGroup1, gKartYoshiGroup0,
|
||||
};
|
||||
uintptr_t **gKartToadTable0[] = {
|
||||
gKartToadGroup8, gKartToadGroup7, gKartToadGroup6,
|
||||
gKartToadGroup5, gKartToadGroup4, gKartToadGroup3,
|
||||
gKartToadGroup2, gKartToadGroup1, gKartToadGroup0,
|
||||
};
|
||||
uintptr_t **gKartDKTable0[] = {
|
||||
gKartDKGroup8, gKartDKGroup7, gKartDKGroup6,
|
||||
gKartDKGroup5, gKartDKGroup4, gKartDKGroup3,
|
||||
gKartDKGroup2, gKartDKGroup1, gKartDKGroup0,
|
||||
};
|
||||
uintptr_t **gKartWarioTable0[] = {
|
||||
gKartWarioGroup8, gKartWarioGroup7, gKartWarioGroup6,
|
||||
gKartWarioGroup5, gKartWarioGroup4, gKartWarioGroup3,
|
||||
gKartWarioGroup2, gKartWarioGroup1, gKartWarioGroup0,
|
||||
};
|
||||
uintptr_t **gKartPeachTable0[] = {
|
||||
gKartPeachGroup8, gKartPeachGroup7, gKartPeachGroup6,
|
||||
gKartPeachGroup5, gKartPeachGroup4, gKartPeachGroup3,
|
||||
gKartPeachGroup2, gKartPeachGroup1, gKartPeachGroup0,
|
||||
};
|
||||
uintptr_t **gKartBowserTable0[] = {
|
||||
gKartBowserGroup8, gKartBowserGroup7, gKartBowserGroup6,
|
||||
gKartBowserGroup5, gKartBowserGroup4, gKartBowserGroup3,
|
||||
gKartBowserGroup2, gKartBowserGroup1, gKartBowserGroup0,
|
||||
};
|
||||
|
||||
uintptr_t **gKartMarioTable1[] = {
|
||||
gKartMarioGroup17, gKartMarioGroup16, gKartMarioGroup15,
|
||||
gKartMarioGroup14, gKartMarioGroup13, gKartMarioGroup12,
|
||||
gKartMarioGroup11, gKartMarioGroup10, gKartMarioGroup9,
|
||||
};
|
||||
|
||||
uintptr_t **gKartLuigiTable1[] = {
|
||||
gKartLuigiGroup17, gKartLuigiGroup16, gKartLuigiGroup15, gKartLuigiGroup14,
|
||||
gKartLuigiGroup13, gKartLuigiGroup12, gKartLuigiGroup11, gKartLuigiGroup10,
|
||||
gKartLuigiGroup9,
|
||||
};
|
||||
uintptr_t **gKartYoshiTable1[] = {
|
||||
gKartYoshiGroup17, gKartYoshiGroup16, gKartYoshiGroup15, gKartYoshiGroup14,
|
||||
gKartYoshiGroup13, gKartYoshiGroup12, gKartYoshiGroup11, gKartYoshiGroup10,
|
||||
gKartYoshiGroup9,
|
||||
};
|
||||
uintptr_t **gKartToadTable1[] = {
|
||||
gKartToadGroup17, gKartToadGroup16, gKartToadGroup15, gKartToadGroup14,
|
||||
gKartToadGroup13, gKartToadGroup12, gKartToadGroup11, gKartToadGroup10,
|
||||
gKartToadGroup9,
|
||||
};
|
||||
uintptr_t **gKartDKTable1[] = {
|
||||
gKartDKGroup17, gKartDKGroup16, gKartDKGroup15, gKartDKGroup14,
|
||||
gKartDKGroup13, gKartDKGroup12, gKartDKGroup11, gKartDKGroup10,
|
||||
gKartDKGroup9,
|
||||
};
|
||||
uintptr_t **gKartWarioTable1[] = {
|
||||
gKartWarioGroup17, gKartWarioGroup16, gKartWarioGroup15, gKartWarioGroup14,
|
||||
gKartWarioGroup13, gKartWarioGroup12, gKartWarioGroup11, gKartWarioGroup10,
|
||||
gKartWarioGroup9,
|
||||
};
|
||||
uintptr_t **gKartPeachTable1[] = {
|
||||
gKartPeachGroup17, gKartPeachGroup16, gKartPeachGroup15, gKartPeachGroup14,
|
||||
gKartPeachGroup13, gKartPeachGroup12, gKartPeachGroup11, gKartPeachGroup10,
|
||||
gKartPeachGroup9,
|
||||
};
|
||||
uintptr_t **gKartBowserTable1[] = {
|
||||
gKartBowserGroup17, gKartBowserGroup16, gKartBowserGroup15, gKartBowserGroup14,
|
||||
gKartBowserGroup13, gKartBowserGroup12, gKartBowserGroup11, gKartBowserGroup10,
|
||||
gKartBowserGroup9,
|
||||
};
|
||||
|
||||
uintptr_t ***gKartTextureTable0[] = {
|
||||
gKartMarioTable0,
|
||||
gKartLuigiTable0,
|
||||
gKartYoshiTable0,
|
||||
gKartToadTable0,
|
||||
gKartDKTable0,
|
||||
gKartWarioTable0,
|
||||
gKartPeachTable0,
|
||||
gKartBowserTable0,
|
||||
};
|
||||
|
||||
uintptr_t ***gKartTextureTable1[] = {
|
||||
gKartMarioTable1,
|
||||
gKartLuigiTable1,
|
||||
gKartYoshiTable1,
|
||||
gKartToadTable1,
|
||||
gKartDKTable1,
|
||||
gKartWarioTable1,
|
||||
gKartPeachTable1,
|
||||
gKartBowserTable1,
|
||||
};
|
||||
|
||||
// some larger diffs that need resolving
|
||||
#ifdef MIPS_TO_C
|
||||
void func_80027040(Player *player, s8 arg1, s8 arg2, s8 arg3, s32 arg4) {
|
||||
s32 temp_v0 = player->unk_0BC;
|
||||
void *temp_s0;
|
||||
// void *temp_v1;
|
||||
void func_80027040(Player *player, s8 arg1, s8 arg2, s8 arg3, s8 arg4) {
|
||||
|
||||
if ((temp_v0 & 0x80) == 0x80 ||
|
||||
(temp_v0 & 0x40) == 0x40 ||
|
||||
(temp_v0 & 0x80000) == 0x80000 ||
|
||||
(temp_v0 & 0x800000) == 0x800000 ||
|
||||
(temp_v0 & 0x20000) == 0x20000 ||
|
||||
(player->unk_044 & 0x800) != 0
|
||||
) {
|
||||
//s32 tmp = player->unk_0BC;
|
||||
void *buf; // = &D_802DFB80[arg4][arg3][arg1 * 0x920];
|
||||
u16 id;
|
||||
if (((((((player->unk_0BC & 0x80) == 0x80) || ((player->unk_0BC & 0x40) == 0x40)) || ((player->unk_0BC & 0x80000) == 0x80000)) || ((player->unk_0BC & 0x800000) == 0x800000)) || ((player->unk_0BC & 0x20000) == 0x20000)) || ((player->unk_044 & 0x800) != 0))
|
||||
{
|
||||
// temp_v1 = player + (arg2 * 2);
|
||||
if (player->unk_244[arg2] == 0) {
|
||||
temp_s0 = (arg4 * 0x9200) + (arg3 * 0x4900) + (arg1 * 0x920) + D_802DFB80;
|
||||
osInvalDCache(temp_s0, D_800DDEB0[player->characterId]);
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, &_kart_texturesSegmentRomStart[gKartTextureTable0[player->characterId][player->unk_24C[arg2]][player->unk_244[arg2]] & 0xFFFFFF], temp_s0, D_800DDEB0[temp_v0], &gDmaMesgQueue);
|
||||
if (player->unk_244[arg2] != 0) {
|
||||
//buf = &D_802DFB80[arg2][arg1 * 0x920];
|
||||
buf = &D_802DFB80[arg4][arg3][arg1 * 0x920];
|
||||
osInvalDCache(buf, D_800DDEB0[player->characterId]);
|
||||
id = player->characterId;
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(gKartTextureTable1[id][player->unk_24C[arg2]][player->unk_244[arg2]])], buf, D_800DDEB0[player->unk_0BC], &gDmaMesgQueue);
|
||||
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, 1);
|
||||
} else {
|
||||
temp_s0 = (arg4 * 0x9200) + (arg3 * 0x4900) + (arg1 * 0x920) + D_802DFB80;
|
||||
osInvalDCache(temp_s0, D_800DDEB0[player->characterId]);
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, &_kart_texturesSegmentRomStart[gKartTextureTable1[player->characterId][player->unk_24C[arg2]][player->unk_244[arg2]] & 0xFFFFFF], temp_s0, D_800DDEB0[temp_v0], &gDmaMesgQueue);
|
||||
buf = &D_802DFB80[arg4][arg3][arg1 * 0x920];
|
||||
osInvalDCache(&D_802DFB80[arg4][arg3], D_800DDEB0[player->characterId]);
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(gKartTextureTable0[player->characterId][player->unk_24C[arg2]][player->unk_244[arg2]])], buf, D_800DDEB0[player->unk_0BC], &gDmaMesgQueue);
|
||||
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, 1);
|
||||
}
|
||||
}
|
||||
else if ((temp_v0 & 0x400) == 0x400 ||
|
||||
(temp_v0 & 0x1000000) == 0x1000000 ||
|
||||
(temp_v0 & 0x2000000) == 0x2000000 ||
|
||||
(temp_v0 & 0x10000) == 0x10000
|
||||
) {
|
||||
temp_s0 = (arg4 * 0x9200) + (arg3 * 0x4900) + (arg1 * 0x920) + D_802DFB80;
|
||||
osInvalDCache(temp_s0, 0x780);
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, &_kart_texturesSegmentRomStart[gKartTextureGroup18s[player->characterId][player->unk_0A8 >> 8] & 0xFFFFFF], temp_s0, 0x900, &gDmaMesgQueue);
|
||||
} else if (((((player->unk_0BC & 0x400) == 0x400) || ((player->unk_0BC & 0x1000000) == 0x1000000)) || ((player->unk_0BC & 0x2000000) == 0x2000000)) || ((player->unk_0BC & 0x10000) == 0x10000))
|
||||
{
|
||||
buf = &D_802DFB80[arg4][arg3][arg1 * 0x920];
|
||||
osInvalDCache(buf, 0x780);
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(gKartTextureGroup18s[player->characterId][player->unk_0A8 >> 8])], buf, 0x900, &gDmaMesgQueue);
|
||||
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, 1);
|
||||
} else {
|
||||
temp_s0 = (arg4 * 0x9200) + (arg3 * 0x4900) + (arg1 * 0x920) + D_802DFB80;
|
||||
osInvalDCache(temp_s0, D_800DDEB0[player->characterId]);
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, &_kart_texturesSegmentRomStart[gKartTextureTable0[player->characterId][player->unk_24C[arg2]][player->unk_244[arg2]] & 0xFFFFFF], temp_s0, D_800DDEB0[temp_v0], &gDmaMesgQueue);
|
||||
buf = &D_802DFB80[arg4][arg3][arg1 * 0x920];
|
||||
osInvalDCache(buf, D_800DDEB0[player->characterId]);
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(gKartTextureTable0[player->characterId][player->unk_24C[arg2]][player->unk_244[arg2]])], buf, D_800DDEB0[player->unk_0BC], &gDmaMesgQueue);
|
||||
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, 1);
|
||||
}
|
||||
}
|
||||
@@ -68,111 +332,70 @@ GLOBAL_ASM("asm/non_matchings/code_80027040/func_80027040.s")
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3ec45aadfc2cb619035fb802d88c52eacfab0326
|
||||
void func_80027560(Player *arg0, s8 arg1, s8 arg2, s8 arg3, s8 arg4) {
|
||||
void *sp30;
|
||||
s32 temp_v0;
|
||||
s8 temp_a3;
|
||||
u16 temp_v0;
|
||||
u16 temp_v0;
|
||||
u16 temp_v0;
|
||||
void func_80027560(Player *player, s8 arg1, s8 arg2, s8 arg3, s8 arg4) {
|
||||
//s32 temp_v0;
|
||||
void *temp_s0;
|
||||
void *temp_s0_2;
|
||||
void *temp_s0_3;
|
||||
void *temp_s0_4;
|
||||
void *temp_v1;
|
||||
void *temp_v1_2;
|
||||
|
||||
temp_v0 = arg0->unkBC;
|
||||
temp_a3 = arg3;
|
||||
if ((temp_v0 & 0x80) == 0x80) {
|
||||
block_6:
|
||||
temp_v1_2 = arg0 + (arg2 * 2);
|
||||
if (temp_v1_2->unk244 == 0) {
|
||||
temp_s0_4 = (arg4 * 0x9200) + (temp_a3 * 0x4900) + (arg1 * 0x920) + 0x802DFB80;
|
||||
sp30 = temp_v1_2;
|
||||
osInvalDCache(temp_s0_4, *(&D_800DDEB0 + (arg0->unk254 * 2)));
|
||||
temp_v0 = arg0->unk254;
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, (*(*(*(&gKartTextureTable0 + (temp_v0 * 4)) + (temp_v1_2->unk24C * 4)) + (temp_v1_2->unk244 * 4)) & 0xFFFFFF) + &_kart_texturesSegmentRomStart, temp_s0_4, *(&D_800DDEB0 + (temp_v0 * 2)), &gDmaMesgQueue);
|
||||
return;
|
||||
//temp_v0 = player->unk_0BC;
|
||||
if (((player->unk_0BC & 0x80) == 0x80) || ((player->unk_0BC & 0x40) == 0x40) || ((player->unk_0BC & 0x80000) == 0x80000) || ((player->unk_0BC & 0x800000) == 0x800000) || ((player->unk_0BC & 0x20000) == 0x20000) || ((player->unk_044 & 0x800) != 0))
|
||||
{
|
||||
//temp_v1_2 = player + (arg2 * 2);
|
||||
if (player->unk_244[arg2] != 0) {
|
||||
temp_s0 = D_802DFB80[arg4][arg3][arg1 * 0x920];
|
||||
osInvalDCache(D_802DFB80[arg4][arg3], D_800DDEB0[player->characterId]);
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(gKartTextureTable0[player->characterId][player->unk_24C[arg2]][player->unk_244[arg2]])], temp_s0, D_800DDEB0[player->characterId], &gDmaMesgQueue);
|
||||
} else {
|
||||
temp_s0 = D_802DFB80[arg4][arg3][arg1 * 0x920];
|
||||
osInvalDCache(temp_s0, D_800DDEB0[player->characterId]);
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(gKartTextureTable1[player->characterId][player->unk_24C[arg2]][player->unk_244[arg2]])], temp_s0, D_800DDEB0[player->characterId], &gDmaMesgQueue);
|
||||
}
|
||||
temp_s0_3 = (arg4 * 0x9200) + (temp_a3 * 0x4900) + (arg1 * 0x920) + D_802DFB80;
|
||||
sp30 = temp_v1_2;
|
||||
osInvalDCache(temp_s0_3, *(&D_800DDEB0 + (arg0->unk254 * 2)));
|
||||
temp_v0 = arg0->unk254;
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, (*(*(*(&gKartTextureTable1 + (temp_v0 * 4)) + (temp_v1_2->unk24C * 4)) + (temp_v1_2->unk244 * 4)) & 0xFFFFFF) + &_kart_texturesSegmentRomStart, temp_s0_3, *(&D_800DDEB0 + (temp_v0 * 2)), &gDmaMesgQueue);
|
||||
return;
|
||||
} else if (((player->unk_0BC & 0x400) == 0x400) || ((player->unk_0BC & 0x01000000) == 0x01000000) || ((player->unk_0BC & 0x02000000) == 0x02000000) || ((player->unk_0BC & 0x10000) == 0x10000))
|
||||
{
|
||||
temp_s0 = D_802DFB80[arg4][arg3][arg1 * 0x920];
|
||||
osInvalDCache(temp_s0, 0x780);
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(gKartTextureGroup18s[player->characterId][player->unk_0A8 >> 8])], temp_s0, 0x900, &gDmaMesgQueue);
|
||||
} else {
|
||||
temp_s0 = D_802DFB80[arg4][arg3][arg1 * 0x920];
|
||||
osInvalDCache(temp_s0, D_800DDEB0[player->characterId]);
|
||||
//temp_v1 = player + (arg2 * 2);
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(gKartTextureTable0[player->characterId][player->unk_24C[arg2]][player->unk_244[arg2]])], temp_s0, D_800DDEB0[player->characterId], &gDmaMesgQueue);
|
||||
}
|
||||
if ((temp_v0 & 0x40) == 0x40) {
|
||||
goto block_6;
|
||||
}
|
||||
if ((temp_v0 & 0x80000) == 0x80000) {
|
||||
goto block_6;
|
||||
}
|
||||
if ((temp_v0 & 0x800000) == 0x800000) {
|
||||
goto block_6;
|
||||
}
|
||||
if ((temp_v0 & 0x20000) == 0x20000) {
|
||||
goto block_6;
|
||||
}
|
||||
if ((arg0->unk44 & 0x800) != 0) {
|
||||
goto block_6;
|
||||
}
|
||||
if ((temp_v0 & 0x400) == 0x400) {
|
||||
block_13:
|
||||
temp_s0_2 = (arg4 * 0x9200) + (temp_a3 * 0x4900) + (arg1 * 0x920) + D_802DFB80;
|
||||
osInvalDCache(temp_s0_2, 0x780);
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, (*(*(&gKartTextureGroup18s + (arg0->unk254 * 4)) + ((arg0->unkA8 >> 8) * 4)) & 0xFFFFFF) + &_kart_texturesSegmentRomStart, temp_s0_2, 0x900, &gDmaMesgQueue);
|
||||
return;
|
||||
}
|
||||
if ((temp_v0 & 0x1000000) == 0x1000000) {
|
||||
goto block_13;
|
||||
}
|
||||
if ((temp_v0 & 0x2000000) == 0x2000000) {
|
||||
goto block_13;
|
||||
}
|
||||
if ((temp_v0 & 0x10000) == 0x10000) {
|
||||
goto block_13;
|
||||
}
|
||||
temp_s0 = (arg4 * 0x9200) + (temp_a3 * 0x4900) + (arg1 * 0x920) + D_802DFB80;
|
||||
osInvalDCache(temp_s0, *(&D_800DDEB0 + (arg0->unk254 * 2)));
|
||||
temp_v0 = arg0->unk254;
|
||||
temp_v1 = arg0 + (arg2 * 2);
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, (*(*(*(&gKartTextureTable0 + (temp_v0 * 4)) + (temp_v1->unk24C * 4)) + (temp_v1->unk244 * 4)) & 0xFFFFFF) + &_kart_texturesSegmentRomStart, temp_s0, *(&D_800DDEB0 + (temp_v0 * 2)), &gDmaMesgQueue);
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/code_80027040/func_80027560.s")
|
||||
#endif
|
||||
|
||||
// regalloc
|
||||
#ifdef NON_MATCHING
|
||||
void func_80027A20(Player *player, s8 arg1, s8 arg2, s8 arg3) {
|
||||
void *temp_s0 = (arg3 << 0xE) + (arg2 << 0xC) + (arg1 << 9) + (s32)&D_802F1F80;
|
||||
// @bug: Undefined Behaviour UB
|
||||
// untested fix
|
||||
#ifdef AVOID_UB
|
||||
void *temp_s0 = &D_802F1F80[arg3][arg2][0];
|
||||
#else
|
||||
void *temp_s0 = &D_802F1F80[arg3][arg2][arg1 << 8];
|
||||
#endif
|
||||
|
||||
switch(gActiveScreenMode) {
|
||||
case 0: case 1: case 2:
|
||||
case 0: case 1:
|
||||
case 2:
|
||||
osInvalDCache(temp_s0, 0x200);
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, &_kart_texturesSegmentRomStart[gKartPalettes[player->characterId] & 0x00FFFFFF], temp_s0, 0x200, &gDmaMesgQueue);
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(gKartPalettes[player->characterId])], temp_s0, 0x200, &gDmaMesgQueue);
|
||||
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, 1);
|
||||
break;
|
||||
case 3:
|
||||
osInvalDCache(temp_s0, 0x200);
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, &_kart_texturesSegmentRomStart[gKartPalettes[player->characterId] & 0x00FFFFFF], temp_s0, 0x200, &gDmaMesgQueue);
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(gKartPalettes[player->characterId])], temp_s0, 0x200, &gDmaMesgQueue);
|
||||
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, 1);
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/code_80027040/func_80027A20.s")
|
||||
#endif
|
||||
|
||||
void func_80027BDC(s32 arg0, s32 arg1, void *vAddr, u16 size) {
|
||||
void func_80027BDC(UNUSED Player *player, s32 arg1, void *vAddr, u16 size) {
|
||||
osInvalDCache(vAddr, size);
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, &_kart_texturesSegmentRomStart[arg1 & 0x00FFFFFF], vAddr, size, &gDmaMesgQueue);
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(arg1)], vAddr, size, &gDmaMesgQueue);
|
||||
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, 1);
|
||||
}
|
||||
|
||||
void func_80027C74(s32 arg0, s32 arg1, void *vAddr, u16 size) {
|
||||
void func_80027C74(UNUSED Player *player, s32 arg1, void *vAddr, u16 size) {
|
||||
osInvalDCache(vAddr, size);
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, &_kart_texturesSegmentRomStart[arg1 & 0x00FFFFFF], vAddr, size, &gDmaMesgQueue);
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(arg1)], vAddr, size, &gDmaMesgQueue);
|
||||
}
|
||||
|
||||
+2
-2
@@ -10,8 +10,8 @@ u8 D_802BFB80[77824];
|
||||
|
||||
u8 D_802D2B80[32768]; // Luigi raceway course path ghost
|
||||
u8 D_802DAB80[20480];
|
||||
u16 D_802DFB80[37376];
|
||||
u16 D_802F1F80[16382];
|
||||
u8 D_802DFB80[2][2][18688];
|
||||
u16 D_802F1F80[2][4][2048];
|
||||
|
||||
u16 gZBuffer[SCREEN_WIDTH * SCREEN_HEIGHT];
|
||||
|
||||
|
||||
-565
@@ -1,565 +0,0 @@
|
||||
#ifndef AUDIO_INTERNAL_H
|
||||
#define AUDIO_INTERNAL_H
|
||||
|
||||
#include <ultra64.h>
|
||||
|
||||
#include "types.h"
|
||||
|
||||
|
||||
// sm64 build defines
|
||||
#define IS_BIG_ENDIAN 1
|
||||
// sm64 build defines
|
||||
|
||||
|
||||
#define SEQUENCE_PLAYERS 4
|
||||
#define SEQUENCE_CHANNELS 48
|
||||
#define SEQUENCE_LAYERS 64
|
||||
|
||||
#define LAYERS_MAX 4
|
||||
#define CHANNELS_MAX 16
|
||||
|
||||
#define NO_LAYER ((struct SequenceChannelLayer *)(-1))
|
||||
|
||||
#define MUTE_BEHAVIOR_STOP_SCRIPT 0x80 // stop processing sequence/channel scripts
|
||||
#define MUTE_BEHAVIOR_STOP_NOTES 0x40 // prevent further notes from playing
|
||||
#define MUTE_BEHAVIOR_SOFTEN 0x20 // lower volume, by default to half
|
||||
|
||||
#define SEQUENCE_PLAYER_STATE_0 0
|
||||
#define SEQUENCE_PLAYER_STATE_FADE_OUT 1
|
||||
#define SEQUENCE_PLAYER_STATE_2 2
|
||||
#define SEQUENCE_PLAYER_STATE_3 3
|
||||
#define SEQUENCE_PLAYER_STATE_4 4
|
||||
|
||||
#define NOTE_PRIORITY_DISABLED 0
|
||||
#define NOTE_PRIORITY_STOPPING 1
|
||||
#define NOTE_PRIORITY_MIN 2
|
||||
#define NOTE_PRIORITY_DEFAULT 3
|
||||
|
||||
#define TATUMS_PER_BEAT 48
|
||||
|
||||
// abi.h contains more details about the ADPCM and S8 codecs, "skip" skips codec processing
|
||||
#define CODEC_ADPCM 0
|
||||
#define CODEC_S8 1
|
||||
#define CODEC_SKIP 2
|
||||
|
||||
#define TEMPO_SCALE TATUMS_PER_BEAT
|
||||
|
||||
// TODO: US_FLOAT should probably be renamed to JP_DOUBLE since eu seems to use floats too
|
||||
#define US_FLOAT(x) x ## f
|
||||
|
||||
// Convert u8 or u16 to f32.
|
||||
#define FLOAT_CAST(x) (f32) (s32) (x)
|
||||
|
||||
// No-op printf macro which leaves string literals in rodata in IDO. IDO
|
||||
// doesn't support variadic macros, so instead we let the parameter list
|
||||
// expand to a no-op comma expression. Another possibility is that it might
|
||||
// have expanded to something with "if (0)". See also goddard/gd_main.h.
|
||||
// On US/JP, -sopt optimizes away these except for external.c.
|
||||
#ifdef __sgi
|
||||
#define stubbed_printf
|
||||
#else
|
||||
#define stubbed_printf(...)
|
||||
#endif
|
||||
|
||||
#define eu_stubbed_printf_0(msg) stubbed_printf(msg)
|
||||
#define eu_stubbed_printf_1(msg, a) stubbed_printf(msg, a)
|
||||
#define eu_stubbed_printf_2(msg, a, b) stubbed_printf(msg, a, b)
|
||||
#define eu_stubbed_printf_3(msg, a, b, c) stubbed_printf(msg, a, b, c)
|
||||
|
||||
struct NotePool;
|
||||
|
||||
struct AudioListItem {
|
||||
// A node in a circularly linked list. Each node is either a head or an item:
|
||||
// - Items can be either detached (prev = NULL), or attached to a list.
|
||||
// 'value' points to something of interest.
|
||||
// - List heads are always attached; if a list is empty, its head points
|
||||
// to itself. 'count' contains the size of the list.
|
||||
// If the list holds notes, 'pool' points back to the pool where it lives.
|
||||
// Otherwise, that member is NULL.
|
||||
struct AudioListItem *prev;
|
||||
struct AudioListItem *next;
|
||||
union {
|
||||
void *value; // either Note* or SequenceChannelLayer*
|
||||
s32 count;
|
||||
} u;
|
||||
struct NotePool *pool;
|
||||
}; // size = 0x10
|
||||
|
||||
struct NotePool {
|
||||
struct AudioListItem disabled;
|
||||
struct AudioListItem decaying;
|
||||
struct AudioListItem releasing;
|
||||
struct AudioListItem active;
|
||||
};
|
||||
|
||||
struct VibratoState {
|
||||
/*0x00, 0x00*/ struct SequenceChannel *seqChannel;
|
||||
/*0x04, 0x04*/ u32 time;
|
||||
/* , 0x08*/ s16 *curve;
|
||||
/* , 0x0C*/ f32 extent;
|
||||
/* , 0x10*/ f32 rate;
|
||||
/* , 0x14*/ u8 active;
|
||||
/*0x12, 0x16*/ u16 rateChangeTimer;
|
||||
/*0x14, 0x18*/ u16 extentChangeTimer;
|
||||
/*0x16, 0x1A*/ u16 delay;
|
||||
}; // size = 0x18, 0x1C on EU
|
||||
|
||||
// Pitch sliding by up to one octave in the positive direction. Negative
|
||||
// direction is "supported" by setting extent to be negative. The code
|
||||
// extrapolates exponentially in the wrong direction in that case, but that
|
||||
// doesn't prevent seqplayer from doing it, AFAICT.
|
||||
struct Portamento {
|
||||
u8 mode; // bit 0x80 denotes something; the rest are an index 0-5
|
||||
f32 cur;
|
||||
f32 speed;
|
||||
f32 extent;
|
||||
}; // size = 0x10
|
||||
|
||||
struct AdsrEnvelope {
|
||||
s16 delay;
|
||||
s16 arg;
|
||||
}; // size = 0x4
|
||||
|
||||
struct AdpcmLoop {
|
||||
u32 start;
|
||||
u32 end;
|
||||
u32 count;
|
||||
u32 pad;
|
||||
s16 state[16]; // only exists if count != 0. 8-byte aligned
|
||||
};
|
||||
|
||||
struct AdpcmBook {
|
||||
s32 order;
|
||||
s32 npredictors;
|
||||
s16 book[1]; // size 8 * order * npredictors. 8-byte aligned
|
||||
};
|
||||
|
||||
struct AudioBankSample {
|
||||
u8 unused;
|
||||
u8 loaded;
|
||||
u8 *sampleAddr;
|
||||
struct AdpcmLoop *loop;
|
||||
struct AdpcmBook *book;
|
||||
};
|
||||
|
||||
struct AudioBankSound {
|
||||
struct AudioBankSample *sample;
|
||||
f32 tuning; // frequency scale factor
|
||||
}; // size = 0x8
|
||||
|
||||
struct Instrument {
|
||||
/*0x00*/ u8 loaded;
|
||||
/*0x01*/ u8 normalRangeLo;
|
||||
/*0x02*/ u8 normalRangeHi;
|
||||
/*0x03*/ u8 releaseRate;
|
||||
/*0x04*/ struct AdsrEnvelope *envelope;
|
||||
/*0x08*/ struct AudioBankSound lowNotesSound;
|
||||
/*0x10*/ struct AudioBankSound normalNotesSound;
|
||||
/*0x18*/ struct AudioBankSound highNotesSound;
|
||||
}; // size = 0x20
|
||||
|
||||
struct Drum {
|
||||
u8 releaseRate;
|
||||
u8 pan;
|
||||
u8 loaded;
|
||||
struct AudioBankSound sound;
|
||||
struct AdsrEnvelope *envelope;
|
||||
};
|
||||
|
||||
struct AudioBank {
|
||||
struct Drum **drums;
|
||||
struct Instrument *instruments[1];
|
||||
}; // dynamic size
|
||||
|
||||
struct CtlEntry {
|
||||
u8 unused;
|
||||
u8 numInstruments;
|
||||
u8 numDrums;
|
||||
struct Instrument **instruments;
|
||||
struct Drum **drums;
|
||||
}; // size = 0xC
|
||||
|
||||
struct M64ScriptState {
|
||||
u8 *pc;
|
||||
u8 *stack[4];
|
||||
u8 remLoopIters[4];
|
||||
u8 depth;
|
||||
}; // size = 0x1C
|
||||
|
||||
// Also known as a Group, according to debug strings.
|
||||
struct SequencePlayer {
|
||||
/*0x000, 0x000, 0x000*/ u8 enabled : 1;
|
||||
/*0x000, 0x000*/ u8 finished : 1; // never read
|
||||
/*0x000, 0x000*/ u8 muted : 1;
|
||||
/*0x000, 0x000*/ u8 seqDmaInProgress : 1;
|
||||
/*0x000, 0x000*/ u8 bankDmaInProgress : 1;
|
||||
/* 0x000*/ u8 recalculateVolume : 1;
|
||||
/*0x002, 0x001, 0x001*/ u8 state;
|
||||
/*0x003, 0x002*/ u8 noteAllocPolicy;
|
||||
/*0x004, 0x003*/ u8 muteBehavior;
|
||||
/*0x005, 0x004*/ u8 seqId;
|
||||
/*0x006, 0x005*/ u8 defaultBank[1]; // must be an array to get a comparison
|
||||
// to match; other u8's might also be part of that array
|
||||
/*0x007, 0x006*/ u8 loadingBankId;
|
||||
/* , 0x007, 0x007*/ s8 seqVariationEu[1];
|
||||
/*0x00A, 0x008*/ u16 tempo; // beats per minute in JP, tatums per minute in US/EU
|
||||
/*0x00C, 0x00A*/ u16 tempoAcc;
|
||||
/*0x010, 0x00C, 0x00E*/ s16 transposition;
|
||||
/*0x012, 0x00E, 0x010*/ u16 delay;
|
||||
/*0x00E, 0x010, 0x012*/ u16 fadeRemainingFrames;
|
||||
/* , 0x012, 0x014*/ u16 fadeTimerUnkEu;
|
||||
/*0x014, 0x014*/ u8 *seqData; // buffer of some sort
|
||||
/*0x018, 0x018, 0x1C*/ f32 fadeVolume; // set to 1.0f
|
||||
/*0x01C, 0x01C*/ f32 fadeVelocity; // set to 0.0f
|
||||
/*0x020, 0x020, 0x024*/ f32 volume; // set to 0.0f
|
||||
/*0x024, 0x024*/ f32 muteVolumeScale; // set to 0.5f
|
||||
/* , 0x028, 0x02C*/ f32 fadeVolumeScale;
|
||||
/* , 0x02C*/ f32 appliedFadeVolume;
|
||||
/*0x02C, 0x030, 0x034*/ struct SequenceChannel *channels[CHANNELS_MAX];
|
||||
/*0x06C, 0x070*/ struct M64ScriptState scriptState;
|
||||
/*0x088, 0x08C*/ u8 *shortNoteVelocityTable;
|
||||
/*0x08C, 0x090*/ u8 *shortNoteDurationTable;
|
||||
/*0x090, 0x094*/ struct NotePool notePool;
|
||||
/*0x0D0, 0x0D4*/ OSMesgQueue seqDmaMesgQueue;
|
||||
/*0x0E8, 0x0EC*/ OSMesg seqDmaMesg;
|
||||
/*0x0EC, 0x0F0*/ OSIoMesg seqDmaIoMesg;
|
||||
/*0x100, 0x108*/ OSMesgQueue bankDmaMesgQueue;
|
||||
/*0x118, 0x120*/ OSMesg bankDmaMesg;
|
||||
/*0x11C, 0x124*/ OSIoMesg bankDmaIoMesg;
|
||||
/*0x130, 0x13C*/ u8 *bankDmaCurrMemAddr;
|
||||
/*0x138, 0x140*/ uintptr_t bankDmaCurrDevAddr;
|
||||
/*0x13C, 0x144*/ ssize_t bankDmaRemaining;
|
||||
}; // size = 0x140, 0x148 on EU, 0x14C on SH
|
||||
|
||||
struct AdsrSettings {
|
||||
u8 releaseRate;
|
||||
u8 sustain;
|
||||
struct AdsrEnvelope *envelope;
|
||||
}; // size = 0x8
|
||||
|
||||
struct AdsrState {
|
||||
/*0x00, 0x00*/ u8 action;
|
||||
/*0x01, 0x01*/ u8 state;
|
||||
/*0x08, 0x02*/ s16 envIndex;
|
||||
/*0x0A, 0x04*/ s16 delay;
|
||||
/* , 0x08*/ f32 sustain;
|
||||
/* , 0x0C*/ f32 velocity;
|
||||
/* , 0x10*/ f32 fadeOutVel;
|
||||
/* , 0x14*/ f32 current;
|
||||
/* , 0x18*/ f32 target;
|
||||
s32 pad1C;
|
||||
/*0x1C, 0x20*/ struct AdsrEnvelope *envelope;
|
||||
}; // size = 0x20, 0x24 in EU
|
||||
|
||||
struct ReverbBitsData {
|
||||
/* 0x00 */ u8 bit0 : 1;
|
||||
/* 0x00 */ u8 bit1 : 1;
|
||||
/* 0x00 */ u8 bit2 : 1;
|
||||
/* 0x00 */ u8 usesHeadsetPanEffects : 1;
|
||||
/* 0x00 */ u8 stereoHeadsetEffects : 2;
|
||||
/* 0x00 */ u8 strongRight : 1;
|
||||
/* 0x00 */ u8 strongLeft : 1;
|
||||
};
|
||||
|
||||
union ReverbBits {
|
||||
/* 0x00 */ struct ReverbBitsData s;
|
||||
/* 0x00 */ u8 asByte;
|
||||
};
|
||||
struct ReverbInfo {
|
||||
u8 reverbVol;
|
||||
u8 synthesisVolume; // UQ4.4, although 0 <= x < 1 is rounded up to 1
|
||||
u8 pan;
|
||||
union ReverbBits reverbBits;
|
||||
f32 freqScale;
|
||||
f32 velocity;
|
||||
s32 unused;
|
||||
s16 *filter;
|
||||
};
|
||||
|
||||
struct NoteAttributes {
|
||||
u8 reverbVol;
|
||||
u8 pan;
|
||||
f32 freqScale;
|
||||
f32 velocity;
|
||||
}; // size = 0x10
|
||||
|
||||
// Also known as a SubTrack, according to debug strings.
|
||||
// Confusingly, a SubTrack is a container of Tracks.
|
||||
struct SequenceChannel {
|
||||
/* U/J, EU, SH */
|
||||
/*0x00, 0x00*/ u8 enabled : 1;
|
||||
/*0x00, 0x00*/ u8 finished : 1;
|
||||
/*0x00, 0x00*/ u8 stopScript : 1;
|
||||
/*0x00, 0x00*/ u8 stopSomething2 : 1; // sets SequenceChannelLayer.stopSomething
|
||||
/*0x00, 0x00*/ u8 hasInstrument : 1;
|
||||
/*0x00, 0x00*/ u8 stereoHeadsetEffects : 1;
|
||||
/*0x00, ????*/ u8 largeNotes : 1; // notes specify duration and velocity
|
||||
/*0x00, ????*/ u8 unused : 1; // never read, set to 0
|
||||
/* , 0x01*/ union {
|
||||
struct {
|
||||
u8 freqScale : 1;
|
||||
u8 volume : 1;
|
||||
u8 pan : 1;
|
||||
} as_bitfields;
|
||||
u8 as_u8;
|
||||
} changes;
|
||||
/*0x01, 0x02*/ u8 noteAllocPolicy;
|
||||
/*0x02, 0x03, 0x03*/ u8 muteBehavior;
|
||||
/*0x03, 0x04, 0x04*/ u8 reverbVol; // until EU: Q1.7, after EU: UQ0.8
|
||||
/*0x04, ????*/ u8 notePriority; // 0-3
|
||||
/*0x05, 0x06*/ u8 bankId;
|
||||
/* , 0x07*/ u8 reverbIndex;
|
||||
/* , 0x08, 0x09*/ u8 bookOffset;
|
||||
/* , 0x09*/ u8 newPan;
|
||||
/* , 0x0A*/ u8 panChannelWeight; // proportion of pan that comes from the channel (0..128)
|
||||
/*0x08, 0x0C, 0x0E*/ u16 vibratoRateStart; // initially 0x800
|
||||
/*0x0A, 0x0E, 0x10*/ u16 vibratoExtentStart;
|
||||
/*0x0C, 0x10, 0x12*/ u16 vibratoRateTarget; // initially 0x800
|
||||
/*0x0E, 0x12, 0x14*/ u16 vibratoExtentTarget;
|
||||
/*0x10, 0x14, 0x16*/ u16 vibratoRateChangeDelay;
|
||||
/*0x12, 0x16, 0x18*/ u16 vibratoExtentChangeDelay;
|
||||
/*0x14, 0x18, 0x1A*/ u16 vibratoDelay;
|
||||
/*0x16, 0x1A, 0x1C*/ u16 delay;
|
||||
/*0x18, 0x1C, 0x1E*/ s16 instOrWave; // either 0 (none), instrument index + 1, or
|
||||
// 0x80..0x83 for sawtooth/triangle/sine/square waves.
|
||||
/*0x1A, 0x1E, 0x20*/ s16 transposition;
|
||||
/*0x1C, 0x20, 0x24*/ f32 volumeScale;
|
||||
/*0x20, 0x24, 0x28*/ f32 volume;
|
||||
/* , 0x28*/ s32 pan;
|
||||
/* , 0x2C*/ f32 appliedVolume;
|
||||
/*0x2C, 0x30*/ f32 freqScale;
|
||||
/*0x30, 0x34*/ u8 (*dynTable)[][2];
|
||||
/*0x34, ????*/ struct Note *noteUnused; // never read
|
||||
/*0x38, ????*/ struct SequenceChannelLayer *layerUnused; // never read
|
||||
/*0x3C, 0x40*/ struct Instrument *instrument;
|
||||
/*0x40, 0x44*/ struct SequencePlayer *seqPlayer;
|
||||
/*0x44, 0x48*/ struct SequenceChannelLayer *layers[LAYERS_MAX];
|
||||
/*0x54, 0x58 */ s8 soundScriptIO[8]; // bridge between sound script and audio lib. For player 2,
|
||||
// [0] contains enabled, [4] contains sound ID, [5] contains reverb adjustment
|
||||
/*0x5C, 0x60*/ struct M64ScriptState scriptState;
|
||||
/*0x78, 0x7C*/ struct AdsrSettings adsr;
|
||||
/*0x80, 0x84*/ struct NotePool notePool;
|
||||
}; // size = 0xC0, 0xC4 in EU, 0xD0 in SH
|
||||
|
||||
// Also known as a Track, according to debug strings.
|
||||
struct SequenceChannelLayer {
|
||||
/* U/J, EU, SH */
|
||||
/*0x00, 0x00*/ u8 enabled : 1;
|
||||
/*0x00, 0x00*/ u8 finished : 1;
|
||||
/*0x00, 0x00*/ u8 stopSomething : 1; // ?
|
||||
/*0x00, 0x00*/ u8 continuousNotes : 1; // keep the same note for consecutive notes with the same sound
|
||||
/* , 0x00*/ u8 unusedEu0b8 : 1;
|
||||
/* , 0x00*/ u8 notePropertiesNeedInit : 1;
|
||||
/* , 0x00*/ u8 ignoreDrumPan : 1;
|
||||
/* , 0x01, 0x02*/ u8 instOrWave;
|
||||
/*0x01, 0x02, 0x03*/ u8 status; // 0x03 in SH
|
||||
/*0x02, 0x03*/ u8 noteDuration; // set to 0x80
|
||||
/*0x03, 0x04*/ u8 portamentoTargetNote;
|
||||
/* , 0x05*/ u8 pan; // 0..128
|
||||
/* , 0x06, 0x07*/ u8 notePan;
|
||||
/*0x04, 0x08*/ struct Portamento portamento;
|
||||
/*0x14, 0x18*/ struct AdsrSettings adsr;
|
||||
/*0x1C, 0x20*/ u16 portamentoTime;
|
||||
/*0x1E, 0x22*/ s16 transposition; // #semitones added to play commands
|
||||
// (m64 instruction encoding only allows referring to the limited range
|
||||
// 0..0x3f; this makes 0x40..0x7f accessible as well)
|
||||
/*0x20, 0x24, 0x24*/ f32 freqScale;
|
||||
/*0x24, 0x28, 0x2C*/ f32 velocitySquare;
|
||||
/*0x2C, 0x2C, 0x30*/ f32 noteVelocity;
|
||||
/*0x34, 0x30, 0x34*/ f32 noteFreqScale;
|
||||
/*0x38, 0x34*/ s16 shortNoteDefaultPlayPercentage;
|
||||
/*0x3A, 0x36*/ s16 playPercentage; // it's not really a percentage...
|
||||
/*0x3C, 0x38*/ s16 delay;
|
||||
/*0x3E, 0x3A*/ s16 duration;
|
||||
/*0x40, 0x3C*/ s16 delayUnused; // set to 'delay', never read
|
||||
/*0x44, 0x40, 0x44*/ struct Note *note;
|
||||
/*0x48, 0x44*/ struct Instrument *instrument;
|
||||
/*0x4C, 0x48*/ struct AudioBankSound *sound;
|
||||
/*0x50, 0x4C, 0x50*/ struct SequenceChannel *seqChannel;
|
||||
/*0x54, 0x50*/ struct M64ScriptState scriptState;
|
||||
/*0x70, 0x6C*/ struct AudioListItem listItem;
|
||||
u8 pad2[4];
|
||||
}; // size = 0x80
|
||||
|
||||
struct NoteSynthesisState {
|
||||
/*0x00*/ u8 restart;
|
||||
/*0x01*/ u8 sampleDmaIndex;
|
||||
/*0x02*/ u8 prevHeadsetPanRight;
|
||||
/*0x03*/ u8 prevHeadsetPanLeft;
|
||||
/*0x04, 0x06*/ u16 samplePosFrac;
|
||||
/*0x08*/ s32 samplePosInt;
|
||||
/*0x0C*/ struct NoteSynthesisBuffers *synthesisBuffers;
|
||||
/*0x10*/ s16 curVolLeft; // UQ0.16 (EU Q1.15)
|
||||
/*0x12*/ s16 curVolRight; // UQ0.16 (EU Q1.15)
|
||||
};
|
||||
|
||||
struct NotePlaybackState {
|
||||
/* U/J, EU, SH */
|
||||
/*0x04, 0x00, 0x00*/ u8 priority;
|
||||
/* 0x01, 0x01*/ u8 waveId;
|
||||
/* 0x02, 0x02*/ u8 sampleCountIndex;
|
||||
/*0x08, 0x04, 0x06*/ s16 adsrVolScale;
|
||||
/*0x18, 0x08, 0x08*/ f32 portamentoFreqScale;
|
||||
/*0x1C, 0x0C, 0x0C*/ f32 vibratoFreqScale;
|
||||
/*0x28, 0x10, */ struct SequenceChannelLayer *prevParentLayer;
|
||||
/*0x2C, 0x14, 0x14*/ struct SequenceChannelLayer *parentLayer;
|
||||
/*0x30, 0x18, 0x18*/ struct SequenceChannelLayer *wantedParentLayer;
|
||||
/* , 0x1C, 0x1C*/ struct NoteAttributes attributes;
|
||||
/*0x54, 0x28, 0x2C*/ struct AdsrState adsr;
|
||||
/*0x74, 0x4C, */ struct Portamento portamento;
|
||||
/*0x84, 0x5C, */ struct VibratoState vibratoState;
|
||||
};
|
||||
struct NoteSubEu {
|
||||
/*0x00*/ volatile u8 enabled : 1;
|
||||
/*0x00*/ u8 needsInit : 1;
|
||||
/*0x00*/ u8 finished : 1;
|
||||
/*0x00*/ u8 envMixerNeedsInit : 1;
|
||||
/*0x00*/ u8 stereoStrongRight : 1;
|
||||
/*0x00*/ u8 stereoStrongLeft : 1;
|
||||
/*0x00*/ u8 stereoHeadsetEffects : 1;
|
||||
/*0x00*/ u8 usesHeadsetPanEffects : 1;
|
||||
/*0x01*/ u8 reverbIndex : 3;
|
||||
/*0x01*/ u8 bookOffset : 3;
|
||||
/*0x01*/ u8 isSyntheticWave : 1;
|
||||
/*0x01*/ u8 hasTwoAdpcmParts : 1;
|
||||
/*0x02*/ u8 bankId;
|
||||
/*0x03*/ u8 headsetPanRight;
|
||||
/*0x04*/ u8 headsetPanLeft;
|
||||
/*0x05*/ u8 reverbVol; // UQ0.7 (EU Q1.7)
|
||||
/*0x06*/ u16 targetVolLeft; // UQ0.12 (EU UQ0.10)
|
||||
/*0x08*/ u16 targetVolRight; // UQ0.12 (EU UQ0.10)
|
||||
/*0x0A*/ u16 resamplingRateFixedPoint; // stored as signed but loaded as u16
|
||||
/*0x0C*/ union {
|
||||
s16 *samples;
|
||||
struct AudioBankSound *audioBankSound;
|
||||
} sound;
|
||||
};
|
||||
struct Note {
|
||||
/* U/J, EU, SH */
|
||||
/*0xA4, 0x00, 0x00*/ struct AudioListItem listItem;
|
||||
/* 0x10, 0x10*/ struct NoteSynthesisState synthesisState;
|
||||
// The next members are actually part of a struct (NotePlaybackState), but
|
||||
// that results in messy US/EU ifdefs. Instead we cast to a struct pointer
|
||||
// when needed... This breaks alignment on non-N64 platforms, which we hack
|
||||
// around by skipping the padding in that case.
|
||||
// TODO: use macros or something instead.
|
||||
#ifdef TARGET_N64
|
||||
u8 pad0[12];
|
||||
#endif
|
||||
|
||||
/*0x04, 0x30, 0x30*/ u8 priority;
|
||||
/* 0x31, 0x31*/ u8 waveId;
|
||||
/* 0x32, 0x32*/ u8 sampleCountIndex;
|
||||
/*0x08, 0x34, 0x36*/ s16 adsrVolScale;
|
||||
/*0x18, 0x38, */ f32 portamentoFreqScale;
|
||||
/*0x1C, 0x3C, */ f32 vibratoFreqScale;
|
||||
/*0x28, 0x40, */ struct SequenceChannelLayer *prevParentLayer;
|
||||
/*0x2C, 0x44, 0x44*/ struct SequenceChannelLayer *parentLayer;
|
||||
/*0x30, 0x48, 0x48*/ struct SequenceChannelLayer *wantedParentLayer;
|
||||
/* , 0x4C, 0x4C*/ struct NoteAttributes attributes;
|
||||
/*0x54, 0x58, 0x5C*/ struct AdsrState adsr;
|
||||
/*0x74, 0x7C*/ struct Portamento portamento;
|
||||
/*0x84, 0x8C*/ struct VibratoState vibratoState;
|
||||
u8 pad3[8];
|
||||
/* , 0xB0, 0xB4*/ struct NoteSubEu noteSubEu;
|
||||
}; // size = 0xC0, known to be 0xC8 on SH
|
||||
|
||||
struct NoteSynthesisBuffers {
|
||||
s16 adpcmdecState[0x10];
|
||||
s16 finalResampleState[0x10];
|
||||
s16 mixEnvelopeState[0x28];
|
||||
s16 panResampleState[0x10];
|
||||
s16 panSamplesBuffer[0x20];
|
||||
s16 dummyResampleState[0x10];
|
||||
};
|
||||
|
||||
struct ReverbSettingsEU {
|
||||
u8 downsampleRate;
|
||||
u8 windowSize; // To be multiplied by 64
|
||||
u16 gain;
|
||||
};
|
||||
|
||||
struct AudioSessionSettingsEU {
|
||||
/* 0x00 */ u32 frequency;
|
||||
/* 0x04 */ u8 unk1; // always 1
|
||||
/* 0x05 */ u8 maxSimultaneousNotes;
|
||||
/* 0x06 */ u8 numReverbs; // always 1
|
||||
/* 0x07 */ u8 unk2; // always 0
|
||||
/* 0x08 */ struct ReverbSettingsEU *reverbSettings;
|
||||
/* 0x0C */ u16 volume;
|
||||
/* 0x0E */ u16 unk3; // always 0
|
||||
/* 0x10 */ u32 persistentSeqMem;
|
||||
/* 0x14 */ u32 persistentBankMem;
|
||||
/* 0x18, 0x1C */ u32 temporarySeqMem;
|
||||
/* 0x1C, 0x20 */ u32 temporaryBankMem;
|
||||
}; // 0x30 on shindou
|
||||
|
||||
struct AudioSessionSettings {
|
||||
/*0x00*/ u32 frequency;
|
||||
/*0x04*/ u8 maxSimultaneousNotes;
|
||||
/*0x05*/ u8 reverbDownsampleRate; // always 1
|
||||
/*0x06*/ u16 reverbWindowSize;
|
||||
/*0x08*/ u16 reverbGain;
|
||||
/*0x0A*/ u16 volume;
|
||||
/*0x0C*/ u32 persistentSeqMem;
|
||||
/*0x10*/ u32 persistentBankMem;
|
||||
/*0x14*/ u32 temporarySeqMem;
|
||||
/*0x18*/ u32 temporaryBankMem;
|
||||
}; // size = 0x1C
|
||||
|
||||
struct AudioBufferParametersEU {
|
||||
/*0x00*/ s16 presetUnk4; // audio frames per vsync?
|
||||
/*0x02*/ u16 frequency;
|
||||
/*0x04*/ u16 aiFrequency; // ?16
|
||||
/*0x06*/ s16 samplesPerFrameTarget;
|
||||
/*0x08*/ s16 maxAiBufferLength;
|
||||
/*0x0A*/ s16 minAiBufferLength;
|
||||
/*0x0C*/ s16 updatesPerFrame;
|
||||
/*0x0E*/ s16 samplesPerUpdate;
|
||||
/*0x10*/ s16 samplesPerUpdateMax;
|
||||
/*0x12*/ s16 samplesPerUpdateMin;
|
||||
/*0x14*/ f32 resampleRate; // contains 32000.0f / frequency
|
||||
/*0x18*/ f32 updatesPerFrameInv; // 1.0f / updatesPerFrame
|
||||
/*0x1C*/ f32 unkUpdatesPerFrameScaled; // 3.0f / (1280.0f * updatesPerFrame)
|
||||
};
|
||||
|
||||
struct EuAudioCmd {
|
||||
union {
|
||||
#if IS_BIG_ENDIAN
|
||||
struct {
|
||||
u8 op;
|
||||
u8 arg1;
|
||||
u8 arg2;
|
||||
u8 arg3;
|
||||
} s;
|
||||
#else
|
||||
struct {
|
||||
u8 arg3;
|
||||
u8 arg2;
|
||||
u8 arg1;
|
||||
u8 op;
|
||||
} s;
|
||||
#endif
|
||||
s32 first;
|
||||
} u;
|
||||
union {
|
||||
s32 as_s32;
|
||||
u32 as_u32;
|
||||
f32 as_f32;
|
||||
#if IS_BIG_ENDIAN
|
||||
u8 as_u8;
|
||||
s8 as_s8;
|
||||
#else
|
||||
struct {
|
||||
u8 pad0[3];
|
||||
u8 as_u8;
|
||||
};
|
||||
struct {
|
||||
u8 pad1[3];
|
||||
s8 as_s8;
|
||||
};
|
||||
#endif
|
||||
} u2;
|
||||
};
|
||||
|
||||
#endif // AUDIO_INTERNAL_H
|
||||
Reference in New Issue
Block a user