Identify audioPlayFromWorldPosition and audioIsFiltered

This commit is contained in:
Ryan Dwyer 2019-10-12 10:08:28 +10:00
parent 1da7650bce
commit dbf87eacda
9 changed files with 573 additions and 3352 deletions

View File

@ -8899,7 +8899,7 @@ glabel ai00cd
/* f05615c: afab0014 */ sw $t3,0x14($sp)
/* f056160: afa00010 */ sw $zero,0x10($sp)
/* f056164: 87a5003e */ lh $a1,0x3e($sp)
/* f056168: 0fc25010 */ jal func0f094040
/* f056168: 0fc25010 */ jal audioPlayFromWorldPosition
/* f05616c: 00003025 */ or $a2,$zero,$zero
/* f056170: 1000000a */ beqz $zero,.L0f05619c
/* f056174: 00403825 */ or $a3,$v0,$zero
@ -8910,7 +8910,7 @@ glabel ai00cd
/* f056184: 240e0200 */ addiu $t6,$zero,0x200
/* f056188: 8d87001c */ lw $a3,0x1c($t4)
/* f05618c: afae0014 */ sw $t6,0x14($sp)
/* f056190: 0fc25010 */ jal func0f094040
/* f056190: 0fc25010 */ jal audioPlayFromWorldPosition
/* f056194: afad0010 */ sw $t5,0x10($sp)
/* f056198: 00403825 */ or $a3,$v0,$zero
.L0f05619c:
@ -8918,7 +8918,7 @@ glabel ai00cd
/* f0561a0: 87a4003e */ lh $a0,0x3e($sp)
/* f0561a4: 11e00009 */ beqz $t7,.L0f0561cc
/* f0561a8: 00000000 */ sll $zero,$zero,0x0
/* f0561ac: 0c004103 */ jal 0x1040c
/* f0561ac: 0c004103 */ jal audioIsFiltered
/* f0561b0: afa70030 */ sw $a3,0x30($sp)
/* f0561b4: 14400005 */ bnez $v0,.L0f0561cc
/* f0561b8: 8fa70030 */ lw $a3,0x30($sp)
@ -8962,7 +8962,7 @@ glabel ai00ce
/* f056230: afa00014 */ sw $zero,0x14($sp)
/* f056234: afa00010 */ sw $zero,0x10($sp)
/* f056238: 00003025 */ or $a2,$zero,$zero
/* f05623c: 0fc25010 */ jal func0f094040
/* f05623c: 0fc25010 */ jal audioPlayFromWorldPosition
/* f056240: 00003825 */ or $a3,$zero,$zero
/* f056244: 3c03800a */ lui $v1,0x800a
/* f056248: 24639fc0 */ addiu $v1,$v1,-24640
@ -8998,7 +8998,7 @@ glabel ai017c
/* f0562a4: afab0010 */ sw $t3,0x10($sp)
/* f0562a8: afa00014 */ sw $zero,0x14($sp)
/* f0562ac: 2406ffff */ addiu $a2,$zero,-1
/* f0562b0: 0fc25010 */ jal func0f094040
/* f0562b0: 0fc25010 */ jal audioPlayFromWorldPosition
/* f0562b4: 00003825 */ or $a3,$zero,$zero
/* f0562b8: 3c03800a */ lui $v1,0x800a
/* f0562bc: 24639fc0 */ addiu $v1,$v1,-24640
@ -14389,7 +14389,7 @@ glabel ai0130
/* f05a888: 0fc5b9f1 */ jal textGet
/* f05a88c: 84849682 */ lh $a0,-0x697e($a0)
/* f05a890: afa20080 */ sw $v0,0x80($sp)
/* f05a894: 0c004103 */ jal 0x1040c
/* f05a894: 0c004103 */ jal audioIsFiltered
/* f05a898: 87a400a4 */ lh $a0,0xa4($sp)
/* f05a89c: 144000c4 */ bnez $v0,.L0f05abb0
/* f05a8a0: 8fa40080 */ lw $a0,0x80($sp)
@ -14412,7 +14412,7 @@ glabel ai0130
/* f05a8e0: 0fc5b9f1 */ jal textGet
/* f05a8e4: 84849682 */ lh $a0,-0x697e($a0)
/* f05a8e8: afa20080 */ sw $v0,0x80($sp)
/* f05a8ec: 0c004103 */ jal 0x1040c
/* f05a8ec: 0c004103 */ jal audioIsFiltered
/* f05a8f0: 87a400a4 */ lh $a0,0xa4($sp)
/* f05a8f4: 144000ae */ bnez $v0,.L0f05abb0
/* f05a8f8: 8fa40080 */ lw $a0,0x80($sp)
@ -14580,7 +14580,7 @@ glabel ai0130
/* f05ab54: 0fc5b9f1 */ jal textGet
/* f05ab58: 84849680 */ lh $a0,-0x6980($a0)
/* f05ab5c: afa20080 */ sw $v0,0x80($sp)
/* f05ab60: 0c004103 */ jal 0x1040c
/* f05ab60: 0c004103 */ jal audioIsFiltered
/* f05ab64: 87a400a4 */ lh $a0,0xa4($sp)
/* f05ab68: 14400011 */ bnez $v0,.L0f05abb0
/* f05ab6c: 8fa40080 */ lw $a0,0x80($sp)
@ -18173,7 +18173,7 @@ glabel ai01a2
/* f05db7c: 84a597b4 */ lh $a1,-0x684c($a1)
/* f05db80: afa00014 */ sw $zero,0x14($sp)
/* f05db84: afab0010 */ sw $t3,0x10($sp)
/* f05db88: 0fc25010 */ jal func0f094040
/* f05db88: 0fc25010 */ jal audioPlayFromWorldPosition
/* f05db8c: 00003025 */ or $a2,$zero,$zero
/* f05db90: 92030002 */ lbu $v1,0x2($s0)
/* f05db94: 24010001 */ addiu $at,$zero,0x1
@ -18200,7 +18200,7 @@ glabel ai01a2
/* f05dbe4: 84a59790 */ lh $a1,-0x6870($a1)
/* f05dbe8: afa00014 */ sw $zero,0x14($sp)
/* f05dbec: afa80010 */ sw $t0,0x10($sp)
/* f05dbf0: 0fc25010 */ jal func0f094040
/* f05dbf0: 0fc25010 */ jal audioPlayFromWorldPosition
/* f05dbf4: 00003025 */ or $a2,$zero,$zero
/* f05dbf8: 92030002 */ lbu $v1,0x2($s0)
/* f05dbfc: 24010002 */ addiu $at,$zero,0x2
@ -18227,7 +18227,7 @@ glabel ai01a2
/* f05dc4c: 84a597f0 */ lh $a1,-0x6810($a1)
/* f05dc50: afa00014 */ sw $zero,0x14($sp)
/* f05dc54: afae0010 */ sw $t6,0x10($sp)
/* f05dc58: 0fc25010 */ jal func0f094040
/* f05dc58: 0fc25010 */ jal audioPlayFromWorldPosition
/* f05dc5c: 00003025 */ or $a2,$zero,$zero
/* f05dc60: 92030002 */ lbu $v1,0x2($s0)
/* f05dc64: 24010003 */ addiu $at,$zero,0x3
@ -18244,7 +18244,7 @@ glabel ai01a2
/* f05dc8c: 00af2821 */ addu $a1,$a1,$t7
/* f05dc90: 84a5982c */ lh $a1,-0x67d4($a1)
/* f05dc94: afb80010 */ sw $t8,0x10($sp)
/* f05dc98: 0fc25010 */ jal func0f094040
/* f05dc98: 0fc25010 */ jal audioPlayFromWorldPosition
/* f05dc9c: 00003025 */ or $a2,$zero,$zero
.L0f05dca0:
/* f05dca0: 8e280438 */ lw $t0,0x438($s1)
@ -20796,7 +20796,7 @@ glabel ai01d9
/* f05fe54: 87a50032 */ lh $a1,0x32($sp)
/* f05fe58: 8fa6002c */ lw $a2,0x2c($sp)
/* f05fe5c: afa80010 */ sw $t0,0x10($sp)
/* f05fe60: 0fc25010 */ jal func0f094040
/* f05fe60: 0fc25010 */ jal audioPlayFromWorldPosition
/* f05fe64: afa90014 */ sw $t1,0x14($sp)
/* f05fe68: 3c03800a */ lui $v1,0x800a
/* f05fe6c: 24639fc0 */ addiu $v1,$v1,-24640

View File

@ -58910,7 +58910,7 @@ glabel func0f0939f8
);
GLOBAL_ASM(
glabel func0f094040
glabel audioPlayFromWorldPosition
/* f094040: 27bdffa0 */ addiu $sp,$sp,-96
/* f094044: 87ae0072 */ lh $t6,0x72($sp)
/* f094048: afb00048 */ sw $s0,0x48($sp)

View File

@ -6,11 +6,19 @@
* memory address location in game.ld. It puts gvars immediately after setup,
* which means it comes 0xf1a0 earlier than it should. So we pad it out here.
*/
u8 padding[0xf1a0];
u8 padding8009ae20[0xf1a0];
// 80099fc0
struct g_vars g_Vars;
// 8009a4a0
u8 var8009a4a0;
u8 var8009a4a1;
u8 var8009a4a2;
u8 g_LangFilterActive;
u8 padding8009a4a4[0x2c1c];
// 8009d0c4
s32 g_NumTags;
@ -18,7 +26,7 @@ s32 g_NumTags;
struct tag **g_TagPtrs;
// 8009d0d0
u8 padding2[0x5144];
u8 padding8009d0d0[0x5144];
// 800a2214
u32 g_EepromFlags;

View File

@ -562,4 +562,6 @@ char *textGet(u32 textid);
u32 getDifficulty(void);
bool audioPlayFromWorldPosition(u8 channel_id, u16 audio_id, u8 volumemaybe, struct position *pos);
#endif

File diff suppressed because it is too large Load Diff

View File

@ -16,6 +16,9 @@ extern u32 var0000c3f8;
extern u32 var0000db50;
extern u32 var0000db98;
extern struct audiodefinition audiodefinitions[];
extern struct audioconfig audioconfigs[];
extern u16 g_CommandLengths[];
extern struct coord var0000f00c;

View File

@ -648,8 +648,13 @@ struct something {
u32 unk08;
};
struct something2 {
u32 unk00;
struct audiodefinition {
u16 unk00;
u16 audioconfig_index;
};
struct audioconfig {
u32 flags; // 0x10 = contains swearing
float unk04;
float unk08;
float unk0c;

View File

@ -1,6 +1,8 @@
#include <ultra64.h>
#include "gvars/gvars.h"
#include "library/library.h"
#include "setup/setup_000000.h"
#include "types.h"
u32 var0004f3e0 = 0x70002d68;
u32 var0004f3e4 = 0x70002d14;
@ -21457,6 +21459,10 @@ glabel func0001036c
/* 10400: 27bd0030 */ addiu $sp,$sp,0x30
/* 10404: 03e00008 */ jr $ra
/* 10408: 00000000 */ sll $zero,$zero,0x0
);
GLOBAL_ASM(
glabel audioIsFiltered
/* 1040c: 3c0e800a */ lui $t6,0x800a
/* 10410: 91cea4a3 */ lbu $t6,-0x5b5d($t6)
/* 10414: 27bdfff8 */ addiu $sp,$sp,-8
@ -21499,6 +21505,22 @@ glabel func0001036c
/* 1049c: 27bd0008 */ addiu $sp,$sp,0x8
);
//bool audioIsFiltered(s16 audio_id)
//{
// bool filtered = false;
//
// if (g_LangFilterActive) {
// if (audio_id < 0) {
// u32 bankoffset = audio_id & 0x7ff;
// filtered = bankoffset == 0x51d || bankoffset == 0x51e || bankoffset == 0x17ad;
// } else {
// filtered = (audioconfigs[audiodefinitions[audio_id].audioconfig_index].flags & 0x10) != 0;
// }
// }
//
// return filtered;
//}
GLOBAL_ASM(
glabel func000104a0
/* 104a0: 27bdffd8 */ addiu $sp,$sp,-40

File diff suppressed because it is too large Load Diff