Decompile contPoll

This commit is contained in:
Ryan Dwyer
2020-10-31 00:34:59 +10:00
parent 374abbd045
commit 82cee003ca
10 changed files with 780 additions and 954 deletions
+1 -1
View File
@@ -1198,7 +1198,7 @@ glabel func00002078
/* 2114: 0c0027b5 */ jal func00009ed4
/* 2118: 00000000 */ nop
.L0000211c:
/* 211c: 0c005121 */ jal func00014484
/* 211c: 0c005121 */ jal contPoll
/* 2120: 00000000 */ nop
/* 2124: 0c003f86 */ jal func0000fe18
/* 2128: 00000000 */ nop
-667
View File
@@ -13,673 +13,6 @@
#include "stagesetup.h"
#include "types.h"
u32 var8005dda0 = 0x00000000;
u32 var8005dda4 = 0x00000000;
u32 var8005dda8 = 0x00000000;
u32 var8005ddac = 0xffffffff;
u32 var8005ddb0 = 0x00000000;
u32 var8005ddb4 = 0x00000000;
u32 var8005ddb8 = 0xffffffff;
u32 var8005ddbc = 0x00000000;
u32 var8005ddc0 = 0x00000000;
u32 var8005ddc4 = 0x00000000;
u16 g_SfxVolume = 32767;
u32 g_SoundMode = SOUNDMODE_STEREO;
u32 var8005ddd0 = 0x00000000;
u32 var8005ddd4 = 0x00000000;
u32 var8005ddd8 = 0x00000000;
u32 var8005dddc = 0x00000000;
u32 var8005dde0 = 0x00000000;
// 3e04
struct audiodefinition audiodefinitions[] = {
/*0x0000*/ { 0x85ba, 59 },
/*0x0001*/ { 0x85a5, 15 },
/*0x0002*/ { 0x85a6, 15 },
/*0x0003*/ { 0x80bb, 14 },
/*0x0004*/ { 0x80bc, 14 },
/*0x0005*/ { 0x8007, 14 },
/*0x0006*/ { 0x8007, 14 },
/*0x0007*/ { 0x80be, 14 },
/*0x0008*/ { 0x80bf, 14 },
/*0x0009*/ { 0x80bf, 14 },
/*0x000a*/ { 0x80c0, 14 },
/*0x000b*/ { 0x8007, 14 },
/*0x000c*/ { 0x80c2, 14 },
/*0x000d*/ { 0x80c3, 14 },
/*0x000e*/ { 0x80c4, 14 },
/*0x000f*/ { 0x80c5, 14 },
/*0x0010*/ { 0x8007, 14 },
/*0x0011*/ { 0x80c7, 14 },
/*0x0012*/ { 0x80c8, 14 },
/*0x0013*/ { 0x80c9, 14 },
/*0x0014*/ { 0x80ca, 15 },
/*0x0015*/ { 0x80cb, 15 },
/*0x0016*/ { 0x80cc, 15 },
/*0x0017*/ { 0x8007, 15 },
/*0x0018*/ { 0x8007, 15 },
/*0x0019*/ { 0x8007, 15 },
/*0x001a*/ { 0x80d2, 15 },
/*0x001b*/ { 0x80d3, 15 },
/*0x001c*/ { 0x8007, 15 },
/*0x001d*/ { 0x80c6, 14 },
/*0x001e*/ { 0x80d6, 15 },
/*0x001f*/ { 0x80d7, 15 },
/*0x0020*/ { 0x80d8, 15 },
/*0x0021*/ { 0x80db, 14 },
/*0x0022*/ { 0x80da, 14 },
/*0x0023*/ { 0x80bf, 14 },
/*0x0024*/ { 0x80bf, 14 },
/*0x0025*/ { 0x80de, 14 },
/*0x0026*/ { 0x80e1, 15 },
/*0x0027*/ { 0x80e2, 15 },
/*0x0028*/ { 0x977a, 60 }, // Carrington: "Hello Joanna"
/*0x0029*/ { 0x97b0, 60 }, // Carrington: "Joanna, it's good to see you"
/*0x002a*/ { 0x97b1, 60 }, // Carrington: "Good day to you, Jo"
/*0x002b*/ { 0x977c, 60 }, // Female: "Hi there"
/*0x002c*/ { 0x9786, 60 }, // Grimshaw: "Welcome to hacker central"
/*0x002d*/ { 0x9787, 60 }, // Grimshaw: "Hi there"
/*0x002e*/ { 0x9788, 60 }, // Grimshaw: "Um, er, hi"
/*0x002f*/ { 0x978c, 60 }, // Holo girl: "Hi. What can I do for you?"
/*0x0030*/ { 0x9794, 60 }, // Hangar guy: "What do you want?"
/*0x0031*/ { 0x9784, 60 }, // Foster: "Ah, our star agent"
/*0x0032*/ { 0x978e, 60 }, // Male: "Hey there"
/*0x0033*/ { 0x978f, 60 }, // Male: "Hi"
/*0x0034*/ { 0x9790, 60 }, // Male "How's it going?"
/*0x0035*/ { 0x977e, 60 }, // Female: "Hello"
/*0x0036*/ { 0x977f, 60 }, // Holo girl: "Hi Jo"
/*0x0037*/ { 0x9780, 60 }, // Holo girl: "How's it going?"
/*0x0038*/ { 0x802e, 32 },
/*0x0039*/ { 0x8037, 35 },
/*0x003a*/ { 0x8037, 35 },
/*0x003b*/ { 0x806a, 33 },
/*0x003c*/ { 0x8037, 35 },
/*0x003d*/ { 0x8037, 35 },
/*0x003e*/ { 0x8037, 35 },
/*0x003f*/ { 0x806d, 33 },
/*0x0040*/ { 0x806e, 33 },
/*0x0041*/ { 0x8037, 35 },
/*0x0042*/ { 0x8037, 35 },
/*0x0043*/ { 0x8070, 33 },
/*0x0044*/ { 0x8071, 33 },
/*0x0045*/ { 0x8037, 35 },
/*0x0046*/ { 0x8037, 35 },
/*0x0047*/ { 0x8037, 35 },
/*0x0048*/ { 0x8037, 35 },
/*0x0049*/ { 0x8075, 33 },
/*0x004a*/ { 0x8037, 35 },
/*0x004b*/ { 0x8037, 35 },
/*0x004c*/ { 0x8079, 31 },
/*0x004d*/ { 0x8066, 31 },
/*0x004e*/ { 0x8037, 35 },
/*0x004f*/ { 0x8032, 31 },
/*0x0050*/ { 0x8037, 35 },
/*0x0051*/ { 0x807a, 35 },
/*0x0052*/ { 0x8059, 31 },
/*0x0053*/ { 0x8001, 35 },
/*0x0054*/ { 0x847e, 32 },
/*0x0055*/ { 0x847d, 33 },
/*0x0056*/ { 0x84f1, 32 },
/*0x0057*/ { 0x84f2, 32 },
/*0x0058*/ { 0x84f3, 32 },
/*0x0059*/ { 0x84f4, 33 },
/*0x005a*/ { 0x84f6, 33 },
/*0x005b*/ { 0x8506, 31 },
/*0x005c*/ { 0x84fd, 33 },
/*0x005d*/ { 0x8504, 33 },
/*0x005e*/ { 0x84fe, 33 },
/*0x005f*/ { 0x8503, 33 },
/*0x0060*/ { 0x8500, 32 },
/*0x0061*/ { 0x8501, 32 },
/*0x0062*/ { 0x8502, 32 },
/*0x0063*/ { 0x85ca, 31 },
/*0x0064*/ { 0x85cb, 31 },
/*0x0065*/ { 0x85d2, 31 },
/*0x0066*/ { 0x8074, 33 },
/*0x0067*/ { 0x85eb, 35 },
/*0x0068*/ { 0x85ec, 35 },
/*0x0069*/ { 0x85ed, 31 },
/*0x006a*/ { 0x85ee, 31 },
/*0x006b*/ { 0x85ef, 33 },
/*0x006c*/ { 0x85f0, 33 },
/*0x006d*/ { 0x85f1, 33 },
/*0x006e*/ { 0x85f2, 33 },
/*0x006f*/ { 0x85f3, 33 },
/*0x0070*/ { 0x85f4, 33 },
/*0x0071*/ { 0x8508, 31 },
/*0x0072*/ { 0x850a, 31 },
/*0x0073*/ { 0x8076, 33 },
/*0x0074*/ { 0x85f5, 30 },
/*0x0075*/ { 0x8509, 33 },
/*0x0076*/ { 0x8045, 45 },
/*0x0077*/ { 0x8046, 45 },
/*0x0078*/ { 0x8047, 25 },
/*0x0079*/ { 0x8048, 45 },
/*0x007a*/ { 0x80f0, 45 },
/*0x007b*/ { 0x80ef, 45 },
/*0x007c*/ { 0x8049, 45 },
/*0x007d*/ { 0x804a, 45 },
/*0x007e*/ { 0x804b, 45 },
/*0x007f*/ { 0x80d9, 45 },
/*0x0080*/ { 0x804c, 45 },
/*0x0081*/ { 0x80e7, 45 },
/*0x0082*/ { 0x80e6, 45 },
/*0x0083*/ { 0x80e0, 45 },
/*0x0084*/ { 0x80dc, 45 },
/*0x0085*/ { 0x80b9, 45 },
/*0x0086*/ { 0x80d4, 45 },
/*0x0087*/ { 0x80d0, 45 },
/*0x0088*/ { 0x80d1, 45 },
/*0x0089*/ { 0x8078, 45 },
/*0x008a*/ { 0x80dd, 45 },
/*0x008b*/ { 0x8003, 45 },
/*0x008c*/ { 0x802d, 21 },
/*0x008d*/ { 0x807b, 21 },
/*0x008e*/ { 0x807c, 21 },
/*0x008f*/ { 0x807d, 21 },
/*0x0090*/ { 0x807e, 21 },
/*0x0091*/ { 0x807f, 21 },
/*0x0092*/ { 0x8080, 21 },
/*0x0093*/ { 0x8081, 21 },
/*0x0094*/ { 0x8082, 21 },
/*0x0095*/ { 0x8083, 21 },
/*0x0096*/ { 0x8084, 21 },
/*0x0097*/ { 0x8085, 21 },
/*0x0098*/ { 0x80b4, 18 },
/*0x0099*/ { 0x80b5, 18 },
/*0x009a*/ { 0x80b6, 17 },
/*0x009b*/ { 0x80a9, 18 },
/*0x009c*/ { 0x80aa, 18 },
/*0x009d*/ { 0x80ab, 17 },
/*0x009e*/ { 0x80ac, 18 },
/*0x009f*/ { 0x80ad, 18 },
/*0x00a0*/ { 0x80ae, 17 },
/*0x00a1*/ { 0x80b1, 18 },
/*0x00a2*/ { 0x80b2, 18 },
/*0x00a3*/ { 0x80b3, 18 },
/*0x00a4*/ { 0x818a, 19 },
/*0x00a5*/ { 0xefdd, 19 },
/*0x00a6*/ { 0x805f, 32 },
/*0x00a7*/ { 0x8060, 32 },
/*0x00a8*/ { 0x8061, 32 },
/*0x00a9*/ { 0x8004, 32 },
/*0x00aa*/ { 0x80f1, 32 },
/*0x00ab*/ { 0x80f3, 32 },
/*0x00ac*/ { 0x8055, 16 },
/*0x00ad*/ { 0x8056, 16 },
/*0x00ae*/ { 0x8057, 16 },
/*0x00af*/ { 0x85f7, 52 },
/*0x00b0*/ { 0x8127, 29 },
/*0x00b1*/ { 0x8128, 29 },
/*0x00b2*/ { 0x8129, 29 },
/*0x00b3*/ { 0x812a, 29 },
/*0x00b4*/ { 0x812b, 29 },
/*0x00b5*/ { 0x812c, 29 },
/*0x00b6*/ { 0x812d, 50 },
/*0x00b7*/ { 0x812e, 50 },
/*0x00b8*/ { 0x8138, 50 },
/*0x00b9*/ { 0x8138, 28 },
/*0x00ba*/ { 0x812f, 51 },
/*0x00bb*/ { 0x8151, 51 },
/*0x00bc*/ { 0x8154, 51 },
/*0x00bd*/ { 0x8157, 51 },
/*0x00be*/ { 0x815a, 51 },
/*0x00bf*/ { 0x8132, 51 },
/*0x00c0*/ { 0x8139, 51 },
/*0x00c1*/ { 0x813f, 51 },
/*0x00c2*/ { 0x8145, 51 },
/*0x00c3*/ { 0x814b, 51 },
/*0x00c4*/ { 0x8161, 4 },
/*0x00c5*/ { 0x8162, 4 },
/*0x00c6*/ { 0x8163, 4 },
/*0x00c7*/ { 0x8164, 4 },
/*0x00c8*/ { 0x8165, 4 },
/*0x00c9*/ { 0x8166, 4 },
/*0x00ca*/ { 0x8167, 4 },
/*0x00cb*/ { 0x8168, 4 },
/*0x00cc*/ { 0x8169, 4 },
/*0x00cd*/ { 0x816a, 4 },
/*0x00ce*/ { 0x816b, 4 },
/*0x00cf*/ { 0x816c, 4 },
/*0x00d0*/ { 0x816d, 4 },
/*0x00d1*/ { 0x816e, 4 },
/*0x00d2*/ { 0x816f, 4 },
/*0x00d3*/ { 0x8170, 4 },
/*0x00d4*/ { 0x8171, 4 },
/*0x00d5*/ { 0x8172, 4 },
/*0x00d6*/ { 0x8173, 4 },
/*0x00d7*/ { 0x8174, 4 },
/*0x00d8*/ { 0x8175, 4 },
/*0x00d9*/ { 0x8176, 4 },
/*0x00da*/ { 0x8177, 4 },
/*0x00db*/ { 0x8178, 4 },
/*0x00dc*/ { 0x8179, 4 },
/*0x00dd*/ { 0x817a, 4 },
/*0x00de*/ { 0x817b, 4 },
/*0x00df*/ { 0x817c, 4 },
/*0x00e0*/ { 0x817d, 4 },
/*0x00e1*/ { 0x817e, 4 },
/*0x00e2*/ { 0x817f, 4 },
/*0x00e3*/ { 0x8180, 4 },
/*0x00e4*/ { 0x804d, 4 },
/*0x00e5*/ { 0x804e, 4 },
/*0x00e6*/ { 0x85f8, 5 },
/*0x00e7*/ { 0x85f9, 5 },
/*0x00e8*/ { 0x85fa, 5 },
/*0x00e9*/ { 0x85fb, 5 },
/*0x00ea*/ { 0x85fc, 6 },
/*0x00eb*/ { 0x85fd, 6 },
/*0x00ec*/ { 0x85fe, 6 },
/*0x00ed*/ { 0x85ff, 6 },
/*0x00ee*/ { 0x8600, 4 },
/*0x00ef*/ { 0x8601, 4 },
/*0x00f0*/ { 0x8602, 4 },
/*0x00f1*/ { 0x8603, 4 },
/*0x00f2*/ { 0x8604, 4 },
/*0x00f3*/ { 0x8605, 4 },
/*0x00f4*/ { 0x8606, 4 },
/*0x00f5*/ { 0x8606, 4 },
/*0x00f6*/ { 0x81d9, 61 },
/*0x00f7*/ { 0x8267, 2 },
/*0x00f8*/ { 0x8268, 2 },
/*0x00f9*/ { 0x8286, 2 },
/*0x00fa*/ { 0x8288, 2 },
/*0x00fb*/ { 0x8291, 2 },
/*0x00fc*/ { 0x829f, 2 },
/*0x00fd*/ { 0x82a1, 2 },
/*0x00fe*/ { 0x8af9, 47 }, // Cass: "You've become quite an annoyance"
/*0x00ff*/ { 0x8afa, 47 }, // Cass: "We meet again, girl"
/*0x0100*/ { 0x8afb, 47 }, // Cass: "Good night, Miss Dark"
/*0x0101*/ { 0x92fc, 47 }, // Cass: "Get her!"
/*0x0102*/ { 0x92fd, 47 }, // Cass: (laughing)
/*0x0103*/ { 0x9285, 2 }, // Scientist: "Who the hell are you?"
/*0x0104*/ { 0x9306, 48 }, // Programmer: "Yes, yes, I agree. Personality..."
/*0x0105*/ { 0x9307, 48 }, // Programmer: "No. I can start the process..."
/*0x0106*/ { 0x9308, 48 }, // Programmer: "I'll begin at once. Goodbye"
/*0x0107*/ { 0x9309, 48 }, // Programmer: "Security, help me!"
/*0x0108*/ { 0x930a, 48 }, // Programmer: "Help! Help!"
/*0x0109*/ { 0x8435, 49 },
/*0x010a*/ { 0x81b5, 7 },
/*0x010b*/ { 0x81b6, 8 },
/*0x010c*/ { 0x81b5, 9 },
/*0x010d*/ { 0x81b6, 10 },
/*0x010e*/ { 0x85f3, 11 },
/*0x010f*/ { 0x81b5, 12 },
/*0x0110*/ { 0x81b6, 13 },
/*0x0111*/ { 0x81b7, 20 },
/*0x0112*/ { 0x81b8, 20 },
/*0x0113*/ { 0x81c7, 20 },
/*0x0114*/ { 0x8037, 20 },
/*0x0115*/ { 0x81b7, 56 },
/*0x0116*/ { 0x81b9, 0 },
/*0x0117*/ { 0x81ba, 0 },
/*0x0118*/ { 0x81bb, 0 },
/*0x0119*/ { 0x81cb, 36 },
/*0x011a*/ { 0x81cb, 37 },
/*0x011b*/ { 0x81cb, 38 },
/*0x011c*/ { 0x81c6, 55 },
/*0x011d*/ { 0x9278, 47 }, // "That's not how it goes"
/*0x011e*/ { 0x9279, 47 }, // "Give it to me. You're doing it wrong"
/*0x011f*/ { 0x927a, 47 }, // "Oh no, we're too late"
/*0x0120*/ { 0x927b, 47 }, // "Yes it is"
/*0x0121*/ { 0x927c, 47 }, // "Stop annoying me"
/*0x0122*/ { 0x927d, 47 }, // "She's here!"
/*0x0123*/ { 0x9277, 47 }, // "Will you just hurry up?"
/*0x0124*/ { 0x82fd, 2 }, // "Holy..."
/*0x0125*/ { 0x82fe, 2 }, // "What the hell?"
/*0x0126*/ { 0x8300, 2 }, // "Oh my god"
/*0x0127*/ { 0x8303, 2 }, // "Oh god I'm hit"
/*0x0128*/ { 0x830a, 2 }, // "Oh my god"
/*0x0129*/ { 0x8313, 62 }, // "Noooo!"
/*0x012a*/ { 0x8314, 2 }, // "Oh god he's dead!"
/*0x012b*/ { 0x832e, 2 }, // "Bloody stupid gun"
/*0x012c*/ { 0x8330, 2 }, // "Damn it"
/*0x012d*/ { 0x8333, 2 }, // "Damn, she's good"
/*0x012e*/ { 0x8334, 2 }, // "Cover my ass"
/*0x012f*/ { 0x834c, 62 }, // Death scream
/*0x0130*/ { 0x83a3, 2 }, // Female: "Damn she's good"
/*0x0131*/ { 0x83b9, 2 }, // Female: "My god"
/*0x0132*/ { 0x83c7, 2 }, // "Geez, that hurt"
/*0x0133*/ { 0x83cf, 2 }, // "Damn it, I'm taking fire"
/*0x0134*/ { 0x83d2, 2 }, // "God damn it"
/*0x0135*/ { 0x83d4, 2 }, // "Holy moley"
/*0x0136*/ { 0x83f3, 2 }, // "Damn, missed again"
/*0x0137*/ { 0x83f5, 2 }, // "Damn"
/*0x0138*/ { 0x83f6, 2 }, // "Hell, she's good"
/*0x0139*/ { 0x8400, 2 }, // "Let's get the hell out of here"
/*0x013a*/ { 0x8411, 62 }, // "Noooo!"
/*0x013b*/ { 0x8413, 2 }, // "Shoot, damn it"
/*0x013c*/ { 0x8414, 2 }, // "Oh god, I'm dying"
/*0x013d*/ { 0x8422, 2 }, // "God, run!"
/*0x013e*/ { 0x8432, 33 },
/*0x013f*/ { 0x843c, 58 },
/*0x0140*/ { 0x843d, 58 },
/*0x0141*/ { 0x84ab, 58 },
/*0x0142*/ { 0x843d, 58 },
/*0x0143*/ { 0x81b7, 58 },
/*0x0144*/ { 0x8477, 57 },
/*0x0145*/ { 0x8478, 57 },
/*0x0146*/ { 0x81c2, 54 },
/*0x0147*/ { 0x8479, 54 },
/*0x0148*/ { 0x81c3, 54 },
/*0x0149*/ { 0x81c4, 54 },
/*0x014a*/ { 0x8443, 2 }, // Civilian: "Oh my god"
/*0x014b*/ { 0x844e, 2 }, // "What the hell was that?"
/*0x014c*/ { 0x843c, 63 },
/*0x014d*/ { 0x847c, 63 },
/*0x014e*/ { 0x843d, 63 },
/*0x014f*/ { 0xf2ad, 1 }, // "Joanna, this is Jonathan. You're in grave danger"
/*0x0150*/ { 0xf2ae, 1 }, // "They've flooded the area with nerge gas"
/*0x0151*/ { 0xf2af, 1 }, // "Get our friend to the containment lab. There's a hiding place there"
/*0x0152*/ { 0xd2b0, 1 }, // "I'll contact you when you get there. Good luck"
/*0x0153*/ { 0xf2b1, 1 }, // "Good work Jo. We need to meet up. They're getting suspicious of me"
/*0x0154*/ { 0xd2b2, 1 }, // "Use the maintenance hatch I've opened in one of the containment labs. Hurry"
/*0x0155*/ { 0x92b8, 2 }, // "Damn it Joanna, cover me!"
/*0x0156*/ { 0x9b30, 2 }, // "Oh my god, a gun?!"
/*0x0157*/ { 0x9b27, 47 }, // "So you got here at last"
/*0x0158*/ { 0x9b28, 47 }, // "Hey, you're not, uh, security alert!"
/*0x0159*/ { 0x9b29, 47 }, // "No guns allowed in here. Put your weapon away"
/*0x015a*/ { 0x9b2a, 47 }, // "I won't tell you again. Lose the weapon"
/*0x015b*/ { 0x9b2b, 47 }, // "Right. I'm calling security"
/*0x015c*/ { 0x9b2c, 47 }, // "Everyone's been waiting for you"
/*0x015d*/ { 0x9a9d, 60 }, // "How's things?"
/*0x015e*/ { 0x9a9e, 60 }, // "Hey there"
/*0x015f*/ { 0x9a9f, 60 }, // "Hi. How are you?"
/*0x0160*/ { 0x8037, 4 },
/*0x0161*/ { 0x9271, 60 }, // Female: "Good afternoon"
/*0x0162*/ { 0x9275, 2 }, // Female: "Oh my god!"
/*0x0163*/ { 0x9acc, 60 }, // "Hi there"
/*0x0164*/ { 0x9acd, 60 }, // "How's things"
/*0x0165*/ { 0x9ad4, 60 }, // "Hello"
/*0x0166*/ { 0x9ad5, 60 }, // "Hey, what's up?"
/*0x0167*/ { 0x84c8, 2 }, // "What the hell?"
/*0x0168*/ { 0x84cd, 2 }, // "Geez"
/*0x0169*/ { 0x84ad, 46 },
/*0x016a*/ { 0x8507, 27 },
/*0x016b*/ { 0x84ee, 16 },
/*0x016c*/ { 0x84ef, 16 },
/*0x016d*/ { 0x84f0, 16 },
/*0x016e*/ { 0x92c8, 2 }, // President: "What the hell was that?"
/*0x016f*/ { 0x92c9, 2 }, // Trent: "How the hell did you get on board?"
/*0x0170*/ { 0xb3a0, 1 }, // Carrington: "We're getting a positive reading. The internal comms hub is nearby"
/*0x0171*/ { 0xb3a1, 1 }, // Carrington: "You're on the same floor as Cassandra's office"
/*0x0172*/ { 0xd3a3, 1 }, // Carrington: "The basement elevator must be around there somewhere"
/*0x0173*/ { 0xd3a4, 1 }, // Carrington: "That's the highest security sector. Dr Caroll has got to be nearby"
/*0x0174*/ { 0xd3a6, 1 }, // Grimshaw: "Reprogram the cleaning bot. It'll give you a way in"
/*0x0175*/ { 0xd3a7, 1 }, // Carrington: "Get out Jo! The levels are too high. Use the camspy"
/*0x0176*/ { 0xd3a8, 1 }, // Carrington: "They've locked down the ground floor. Get to the elevator"
/*0x0177*/ { 0xd3a9, 1 }, // Carrington: "That copter needs to be taken out of the jumpship will get shut down"
/*0x0178*/ { 0xd3ab, 1 }, // Carrington: "Don't keep the jumpship waiting. Get back to the landing pad"
/*0x0179*/ { 0xd3b0, 1 }, // Carrington: "The only place we could secure the equipment was a storm drain"
/*0x017a*/ { 0xd3b2, 1 }, // Grimshaw: "Reprogram that taxi. It's a mark 2 and should be compatible"
/*0x017b*/ { 0xd3b3, 1 }, // Carrington: The carpark lift is your only point of ingress"
/*0x017c*/ { 0xb3b6, 1 }, // Grimshaw: "The safe's heavily encrypted. The decoder's going to take a little longer"
/*0x017d*/ { 0xd3b8, 1 }, // Carrington: "The air intercept radar is controlled from that bunker"
/*0x017e*/ { 0xd3ba, 1 }, // Carrington: "The hangar lift is the other side of that huge door"
/*0x017f*/ { 0xd3bb, 1 }, // Jon: "Careful with that trigger finger, Agent Dark. You're closing in on my position"
/*0x0180*/ { 0xb3bd, 1 }, // Carrington: "The temperature's dropping. You must be close to the cryo room"
/*0x0181*/ { 0xd3bf, 1 }, // Carrington: "There he is Jo. Hurry or you'll be too late"
/*0x0182*/ { 0xb3c4, 1 }, // Carrington: "Now's your chance. Grab the stewardess's bag and get her uniform"
/*0x0183*/ { 0xb3c5, 1 }, // Carrington: "Use that case to conceal your equipment"
/*0x0184*/ { 0xb3c6, 1 }, // Carrington: "The case will get stopped unless you do something"
/*0x0185*/ { 0xb3c9, 1 }, // Carrington: "The president's room is on this level, Joanna"
/*0x0186*/ { 0xb3ca, 1 }, // Carrington: "Something's wrong. You have to get to the cockpit"
/*0x0187*/ { 0x8594, 4 }, // Footstep
/*0x0188*/ { 0x8595, 4 }, // Footstep
/*0x0189*/ { 0x8596, 4 }, // Footstep
/*0x018a*/ { 0x8597, 4 }, // Footstep
/*0x018b*/ { 0x8598, 4 }, // Footstep
/*0x018c*/ { 0x8599, 4 }, // Footstep
/*0x018d*/ { 0x859a, 4 }, // Footstep
/*0x018e*/ { 0x859b, 4 }, // Footstep
/*0x018f*/ { 0x85a0, 4 }, // Footstep
/*0x0190*/ { 0x85a1, 4 }, // Footstep
/*0x0191*/ { 0x85a2, 4 }, // Footstep
/*0x0192*/ { 0x85a3, 4 }, // Footstep
/*0x0193*/ { 0xf310, 1 }, // Carrington: "Joanna. We're under attack"
/*0x0194*/ { 0xd311, 1 }, // Carrington: "Get the guns back online. Hurry"
/*0x0195*/ { 0xf312, 1 }, // Carrington: "The Skedar have taken hostages"
/*0x0196*/ { 0xd313, 1 }, // Carrington: "Get up to the offices and save them"
/*0x0197*/ { 0xf314, 1 }, // Carrington: "They're using a new form of shield technology"
/*0x0198*/ { 0xd315, 1 }, // Carrington: "Foster was working on a new weapon which may be useful"
/*0x0199*/ { 0xf316, 3 }, // Carrington: "Damn it, my office. If they get access..."
/*0x019a*/ { 0xd317, 1 }, // Carrington: "Get there first, Jo and destroy the files"
/*0x019b*/ { 0xf318, 1 }, // Carrington: "Things are desparate. They've planted a bomb"
/*0x019c*/ { 0xd319, 1 }, // Carrington: "Find it and get it out of the building"
/*0x019d*/ { 0xf31a, 1 }, // Carrington: "Well done Joanna. We're nearly clear"
/*0x019e*/ { 0xd31b, 1 }, // Carrington: "The last dropship is waiting for you. Hurry"
/*0x019f*/ { 0xf293, 1 }, // Grimshaw: "Joanna, it's Grimshaw. We've got hackers at..."
/*0x01a0*/ { 0xf2df, 1 }, // Elvis: "We're outside, Joanna. Get the shields down and we can help you"
/*0x01a1*/ { 0xf2e0, 1 }, // Elvis: "You've got to open the hanger doors so we can dock"
/*0x01a2*/ { 0xd4ea, 1 }, // Carrington: "Stand back Joanna. We'll create your escape route"
/*0x01a3*/ { 0x8d24, 2 }, // Cass: "Get the hell out of my office"
/*0x01a4*/ { 0x9d62, 47 }, // Elvis: "Joanna, what took you so long? Follow me. Let's get off this old tub"
/*0x01a5*/ { 0x84aa, 43 },
/*0x01a6*/ { 0x81cf, 41 },
/*0x01a7*/ { 0x858f, 40 },
/*0x01a8*/ { 0x80d5, 39 }, // Lift mechanical sound
/*0x01a9*/ { 0x80ec, 39 }, // Lift mechanical sound
/*0x01aa*/ { 0x80ed, 40 }, // Lift mechanical sound
/*0x01ab*/ { 0x80d5, 41 }, // Lift mechanical sound
/*0x01ac*/ { 0x80ec, 41 }, // Lift mechanical sound
/*0x01ad*/ { 0x80ed, 42 }, // Lift mechanical sound
/*0x01ae*/ { 0x80d5, 41 }, // Lift mechanical sound
/*0x01af*/ { 0x80ec, 41 }, // Lift mechanical sound
/*0x01b0*/ { 0x803a, 41 }, // Lift call
/*0x01b1*/ { 0x84e8, 43 }, // Lift mechanical sound
/*0x01b2*/ { 0x84e9, 43 }, // Lift mechanical sound
/*0x01b3*/ { 0x80cd, 42 }, // Lift mechanical sound
/*0x01b4*/ { 0x80ce, 42 }, // Lift mechanical sound
/*0x01b5*/ { 0x8039, 42 }, // Lift mechanical sound
/*0x01b6*/ { 0x80cd, 44 }, // Lift mechanical sound
/*0x01b7*/ { 0x80db, 16 }, // Lift roller door
/*0x01b8*/ { 0x80da, 16 }, // Lift roller door
/*0x01b9*/ { 0xf41c, 2 }, // Joanna: "Oh my god"
/*0x01ba*/ { 0xf434, 2 }, // Lab guy: "What the hell do you think you're doing? This is supposed..."
/*0x01bb*/ { 0xf44f, 2 }, // President: "Damn it man. I say no and I mean no..."
/*0x01bc*/ { 0x0000, 0 },
};
// 44f8
struct audioconfig audioconfigs[] = {
{ /* 0*/ 200, 1000, 1200, -1, 100, -1, 0, 0x00 },
{ /* 1*/ 400, 2500, 3000, -1, 100, 48, 0, 0x20 },
{ /* 2*/ 400, 2500, 3000, -1, 100, -1, 0, 0x10 },
{ /* 3*/ 400, 2500, 3000, -1, 100, 48, 0, 0x30 },
{ /* 4*/ 200, 1000, 1200, -1, 100, -1, 0, 0x00 },
{ /* 5*/ 200, 1000, 1200, -1, 100, -1, 0, 0x00 },
{ /* 6*/ 200, 1000, 1200, -1, 100, -1, 0, 0x00 },
{ /* 7*/ 1000, 3500, 4000, -1, 100, -1, 120, 0x09 },
{ /* 8*/ 1000, 2500, 3000, -1, 100, -1, 30, 0x09 },
{ /* 9*/ 1000, 3500, 4000, -1, 100, -1, 120, 0x09 },
{ /*10*/ 1000, 2500, 3000, -1, 100, -1, 30, 0x09 },
{ /*11*/ 1600, 3000, 3500, -1, 100, -1, 0, 0x09 },
{ /*12*/ 400, 1100, 1400, -1, 100, -1, 140, 0x09 },
{ /*13*/ 400, 1100, 1400, -1, 100, -1, 0, 0x09 },
{ /*14*/ 300, 1200, 1250, -1, 100, -1, 0, 0x01 },
{ /*15*/ 500, 1800, 1900, -1, 100, -1, 0, 0x01 },
{ /*16*/ 1000, 2700, 2900, -1, 100, -1, 0, 0x01 },
{ /*17*/ 1500, 3000, 4000, -1, 100, -1, 0, 0x01 },
{ /*18*/ 2500, 4900, 5000, -1, 100, -1, 0, 0x01 },
{ /*19*/ 5500, 5600, 5700, -1, 100, -1, 0, 0x21 },
{ /*20*/ 20, 400, 500, -1, 100, -1, 0, 0x00 },
{ /*21*/ 300, 1700, 2000, -1, 100, -1, 0, 0x00 },
{ /*22*/ 600, 3500, 5000, -1, 100, -1, 0, 0x00 },
{ /*23*/ 600, 3500, 5000, -1, 100, -1, 0, 0x00 },
{ /*24*/ 600, 3500, 5000, -1, 100, -1, 0, 0x00 },
{ /*25*/ 600, 2500, 3000, -1, 100, -1, 0, 0x00 },
{ /*26*/ 1500, 4900, 5500, -1, 100, -1, 100, 0x01 },
{ /*27*/ 5500, 5740, 5800, -1, 100, -1, 100, 0x01 },
{ /*28*/ 250, 1000, 1300, 2, 100, -1, 120, 0x01 },
{ /*29*/ 200, 2600, 3000, -1, 100, -1, 0, 0x00 },
{ /*30*/ 200, 750, 850, -1, 100, -1, 0, 0x00 },
{ /*31*/ 600, 2000, 3000, -1, 100, -1, 0, 0x00 },
{ /*32*/ 500, 1500, 1800, -1, 100, -1, 0, 0x00 },
{ /*33*/ 800, 2500, 3000, -1, 100, -1, 0, 0x00 },
{ /*34*/ 400, 1500, 2000, -1, 100, -1, 0, 0x00 },
{ /*35*/ 1000, 3500, 5000, -1, 100, -1, 0, 0x01 },
{ /*36*/ 50, 225, 250, -1, 100, -1, 0, 0x01 },
{ /*37*/ 50, 225, 250, -1, 100, -1, 0, 0x01 },
{ /*38*/ 2000, 2500, 2700, -1, 50, -1, 0, 0x09 },
{ /*39*/ 300, 1000, 1200, -1, 100, -1, 0, 0x01 },
{ /*40*/ 300, 1000, 1200, -1, 100, -1, 100, 0x01 },
{ /*41*/ 600, 1500, 1800, -1, 100, -1, 0, 0x01 },
{ /*42*/ 600, 1500, 1800, -1, 100, -1, 100, 0x01 },
{ /*43*/ 800, 2600, 3500, -1, 100, -1, 0, 0x01 },
{ /*44*/ 800, 2600, 3500, -1, 100, -1, 100, 0x01 },
{ /*45*/ 200, 800, 1000, -1, 100, -1, 0, 0x00 },
{ /*46*/ 200, 700, 1000, -1, 100, -1, 0, 0x00 },
{ /*47*/ 1000, 2500, 3000, -1, 100, -1, 0, 0x00 },
{ /*48*/ 500, 1400, 1500, -1, 100, -1, 0, 0x00 },
{ /*49*/ 500, 2000, 2200, -1, 100, -1, 0, 0x00 },
{ /*50*/ 400, 2500, 3000, -1, 50, -1, 0, 0x00 },
{ /*51*/ 400, 2500, 3000, -1, 75, -1, 0, 0x00 },
{ /*52*/ 200, 500, 800, -1, 100, -1, 100, 0x00 },
{ /*53*/ 1000, 1100, 1600, -1, 100, -1, 0, 0x00 },
{ /*54*/ 300, 1300, 1500, -1, 100, -1, 0, 0x01 },
{ /*55*/ 300, 1300, 1500, -1, 100, -1, 200, 0x01 },
{ /*56*/ 250, 600, 900, -1, 100, -1, 200, 0x01 },
{ /*57*/ 50, 180, 250, -1, 100, -1, 200, 0x01 },
{ /*58*/ 100, 400, 600, -1, 100, -1, 200, 0x01 },
{ /*59*/ 700, 1100, 1400, -1, 100, -1, 200, 0x01 },
{ /*60*/ 400, 2500, 3000, -1, 100, -1, 0, 0x04 },
{ /*61*/ 300, 900, 1100, -1, 100, -1, 0, 0x00 },
{ /*62*/ 1000, 2500, 3000, -1, 100, -1, 0, 0x08 },
{ /*63*/ 400, 1000, 1200, -1, 100, -1, 0, 0x00 },
};
u32 var8005ecd8 = 0x00000000;
u32 var8005ecdc = 0x00000000;
u32 var8005ece0 = 0x00000000;
u32 var8005ece4 = 0x00000000;
u32 var8005ece8 = 0x00000000;
u32 var8005ecec = 0x00000000;
u32 var8005ecf0 = 0x00000000;
u32 var8005ecf4 = 0x00000000;
u32 var8005ecf8 = 0x66655998;
u32 var8005ecfc = 0x5fff4ccc;
u32 var8005ed00 = 0x5fff2ccc;
u32 var8005ed04 = 0x59986665;
u32 var8005ed08 = 0x4ccc5998;
u32 var8005ed0c = 0x59985998;
u32 var8005ed10 = 0x5fff6665;
u32 var8005ed14 = 0x66655fff;
u32 var8005ed18 = 0x59986665;
u32 var8005ed1c = 0x5fff5fff;
u32 var8005ed20 = 0x5fff6665;
u32 var8005ed24 = 0x5fff5fff;
u32 var8005ed28 = 0x5fff7332;
u32 var8005ed2c = 0x5fff6665;
u32 var8005ed30 = 0x5fff5998;
u32 var8005ed34 = 0x59985332;
u32 var8005ed38 = 0x53325fff;
u32 var8005ed3c = 0x33324ccc;
u32 var8005ed40 = 0x5fff4ccc;
u32 var8005ed44 = 0x3fff5fff;
u32 var8005ed48 = 0x5fff5fff;
u32 var8005ed4c = 0x5fff4ccc;
u32 var8005ed50 = 0x4ccc4ccc;
u32 var8005ed54 = 0x4ccc4ccc;
u32 var8005ed58 = 0x4ccc4ccc;
u32 var8005ed5c = 0x5fff5fff;
u32 var8005ed60 = 0x5fff5fff;
u32 var8005ed64 = 0x5fff5fff;
u32 var8005ed68 = 0x5fff4ccc;
u32 var8005ed6c = 0x5fff5fff;
u32 var8005ed70 = 0x5fff5fff;
u32 var8005ed74 = 0x5fff5fff;
u32 var8005ed78 = 0x5fff4ccc;
u32 var8005ed7c = 0x4ccc4ccc;
u32 var8005ed80 = 0x4ccc4ccc;
u32 var8005ed84 = 0x4ccc7332;
u32 var8005ed88 = 0x73327332;
u32 var8005ed8c = 0x4ccc3c28;
u32 var8005ed90 = 0x4ccc4ccc;
u32 var8005ed94 = 0x4ccc4ccc;
u32 var8005ed98 = 0x4ccc4ccc;
u32 var8005ed9c = 0x4ccc4ccc;
u32 var8005eda0 = 0x4ccc4ccc;
u32 var8005eda4 = 0x4ccc4ccc;
u32 var8005eda8 = 0x73327332;
u32 var8005edac = 0x4ccc4ccc;
u32 var8005edb0 = 0x4ccc4ccc;
u32 var8005edb4 = 0x4ccc6665;
u32 var8005edb8 = 0x4ccc4ccc;
u32 var8005edbc = 0x4ccc4ccc;
u32 var8005edc0 = 0x6ccb5fff;
u32 var8005edc4 = 0x59987998;
u32 var8005edc8 = 0x59985998;
u32 var8005edcc = 0x66655fff;
u32 var8005edd0 = 0x5fff7332;
u32 var8005edd4 = 0x73327332;
u32 var8005edd8 = 0x73327332;
u32 var8005eddc = 0x4ccc6665;
u32 var8005ede0 = 0x66656665;
u32 var8005ede4 = 0x4ccc6ccb;
u32 var8005ede8 = 0xffff0000;
u32 var8005edec = 0xffffffff;
u32 var8005edf0 = 0xffffffff;
u32 var8005edf4 = 0x00000000;
u32 var8005edf8 = 0x00000000;
u32 var8005edfc = 0x00000000;
// 4e20
u64 rand_seed = 0xab8d9f7781280783;
u32 var8005ee08 = 0x00000000;
u32 var8005ee0c = 0x00000000;
u32 var8005ee10 = 0x00000001;
u32 var8005ee14 = 0x00000000;
u32 var8005ee18 = 0x00000000;
u32 var8005ee1c = 0x00000000;
u32 var8005ee20 = 0x00000000;
u32 var8005ee24 = 0x00000000;
u32 var8005ee28 = 0x00000000;
u32 var8005ee2c = 0x00000000;
u32 var8005ee30 = 0x00000000;
u32 var8005ee34 = 0x00000000;
u32 var8005ee38 = 0x00000000;
u32 var8005ee3c = 0x00000000;
u32 var8005ee40 = 0x00000000;
u32 var8005ee44 = 0x00000000;
u32 var8005ee48 = 0x00000000;
u32 var8005ee4c = 0x00000000;
u32 var8005ee50 = 0x00000000;
u32 var8005ee54 = 0x00000000;
u32 var8005ee58 = 0x00000000;
u32 var8005ee5c = 0x00000000;
struct contdata *var8005ee60 = &var80099a60;
u32 var8005ee64 = 0x00000000;
u32 var8005ee68 = 0x00000000;
u32 var8005ee6c[4] = {0};
u32 var8005ee7c[4] = {0};
u32 var8005ee8c[4] = {0};
u32 var8005ee9c[4] = {0};
u8 g_ConnectedControllers = 0;
u32 var8005eeb0 = 0x00000000;
u32 var8005eeb4 = 0x00000000;
u32 var8005eeb8 = 0x00000001;
u32 var8005eebc = 0x00000000;
u32 var8005eec0 = 0x00000001;
u32 var8005eec4 = 0x00000000;
u32 var8005eec8 = 0x00000000;
u32 var8005eecc = 0x00000000;
u32 var8005eed0 = 0x00000000;
u32 var8005eed4 = 0x00000000;
u32 var8005eed8 = 0x00000000;
u32 var8005eedc = 0x00000001;
u32 var8005eee0 = 0x00000000;
u32 var8005eee4 = 0xffffffff;
u32 var8005eee8 = 0x00000000;
u32 var8005eeec = 0x00000000;
u32 var8005eef0 = 0x00000001;
u32 var8005eef4 = 0x00000000;
u32 var8005eef8 = 0x00000000;
u32 var8005eefc = 0x00000000;
u32 var8005ef00 = 0xff000000;
u32 var8005ef04 = 0x00000000;
u32 var8005ef08 = 0x00000000;
u32 var8005ef0c = 0x00000000;
u32 var8005ef10 = 0x47800000;
u32 var8005ef14 = 0x47800000;
u32 var8005ef18 = 0x00000000;
+4 -24
View File
@@ -12306,36 +12306,16 @@ u32 var80099eb0 = 0;
u32 var80099eb4 = 0;
u32 var80099eb8 = 0;
u32 var80099ebc = 0;
u32 var80099ec0 = 0;
u32 var80099ec4 = 0;
u32 var80099ec8 = 0;
u32 var80099ecc = 0;
u32 var80099ed0 = 0;
u32 var80099ed4 = 0;
OSMesgQueue var80099ec0 = {0};
u32 var80099ed8 = 0;
u32 var80099edc = 0;
u32 var80099ee0 = 0;
u32 var80099ee4 = 0;
u32 var80099ee8 = 0;
u32 var80099eec = 0;
u32 var80099ef0 = 0;
u32 var80099ef4 = 0;
OSMesgQueue var80099ee0 = {0};
u32 var80099ef8 = 0;
u32 var80099efc = 0;
u32 var80099f00 = 0;
u32 var80099f04 = 0;
u32 var80099f08 = 0;
u32 var80099f0c = 0;
u32 var80099f10 = 0;
u32 var80099f14 = 0;
OSMesgQueue var80099f00 = {0};
u32 var80099f18 = 0;
u32 var80099f1c = 0;
u32 var80099f20 = 0;
u32 var80099f24 = 0;
u32 var80099f28 = 0;
u32 var80099f2c = 0;
u32 var80099f30 = 0;
u32 var80099f34 = 0;
OSMesgQueue var80099f20 = {0};
u32 var80099f38 = 0;
u32 var80099f3c = 0;
u32 var80099f40 = 0;
+3
View File
@@ -114,12 +114,14 @@ extern u32 var8005ee10;
extern u32 var8005ee14;
extern u32 var8005ee18;
extern struct contdata *var8005ee60;
extern bool g_ContBusy;
extern u32 var8005ee68;
extern u32 var8005ee6c[4];
extern u32 var8005ee7c[4];
extern u32 var8005ee8c[4];
extern u32 var8005ee9c[4];
extern u8 g_ConnectedControllers;
extern bool var8005eeb4;
extern u32 var8005eeb8;
extern u32 var8005eebc;
extern u32 var8005eecc;
@@ -128,6 +130,7 @@ extern u32 var8005eee0;
extern u32 var8005eee4;
extern u32 var8005eee8;
extern u32 var8005ef08;
extern s32 var8005ef0c;
extern u32 var8005ef10;
extern s32 g_NumGlobalAilists;
extern s32 g_NumLvAilists;
+4 -4
View File
@@ -467,13 +467,13 @@ extern s32 var80099e68[4];
extern OSMesgQueue var80099e78;
extern u32 var80099e90;
extern u32 var80099eb8;
extern u32 var80099ec0;
extern OSMesgQueue var80099ec0;
extern u32 var80099ed8;
extern u32 var80099ee0;
extern OSMesgQueue var80099ee0;
extern u32 var80099ef8;
extern u32 var80099f00;
extern OSMesgQueue var80099f00;
extern u32 var80099f18;
extern u32 var80099f20;
extern OSMesgQueue var80099f20;
extern u32 var80099f38;
extern u32 var8009a874;
extern u32 var8009a878;
+5 -5
View File
@@ -11,19 +11,19 @@ void func0001398c(u32 arg0);
void func000139c8(void);
u32 func000139e8(void);
u32 func00013a40(void);
u32 func00013ab8(void);
void func00013ab8(u32 arg0);
u32 func00013c4c(void);
void func00013c94(void);
void func00013dd4(void);
void func00013dfc(void);
u32 func00013e84(void);
void func00013e84(void);
u32 contGetConnectedControllers(void);
u32 func00014058(void);
u32 func00014238(void);
void func00014238(void);
void func000142f0(void);
void contStartReadData(OSMesgQueue *mq);
s32 contStartReadData(OSMesgQueue *mq);
void contReadData(void);
u32 func00014484(void);
void contPoll(void);
void func00014810(bool arg0);
s32 contGetNumSamples(void);
s32 func00014848(s32 samplenum, s8 contpadnum);
+608
View File
@@ -40,6 +40,7 @@ const char var70053be0[] = "Snd_Play_Universal : Overriding -> Link = %d\n";
const char var70053c10[] = "Snd_Play_Mpeg : SYSTEM IS DISABLED\n";
const char var70053c34[] = "Snd_Play_Mpeg : Lib called -> Adr=%x\n";
const char var70053c5c[] = "Snd_Play_Mpeg : Chunk size -> Adr=%x\n";
const u32 var70053c84[] = {0x3ee147ae};
const u32 var70053c88[] = {0x3f266666};
const u32 var70053c8c[] = {0x3e99999a};
@@ -48,6 +49,613 @@ const u32 var70053c94[] = {0x3eb33333};
const u32 var70053c98[] = {0x3f4ccccd};
const u32 var70053c9c[] = {0x00000000};
u32 var8005dda0 = 0x00000000;
u32 var8005dda4 = 0x00000000;
u32 var8005dda8 = 0x00000000;
u32 var8005ddac = 0xffffffff;
u32 var8005ddb0 = 0x00000000;
u32 var8005ddb4 = 0x00000000;
u32 var8005ddb8 = 0xffffffff;
u32 var8005ddbc = 0x00000000;
u32 var8005ddc0 = 0x00000000;
u32 var8005ddc4 = 0x00000000;
u16 g_SfxVolume = 32767;
u32 g_SoundMode = SOUNDMODE_STEREO;
u32 var8005ddd0 = 0x00000000;
u32 var8005ddd4 = 0x00000000;
u32 var8005ddd8 = 0x00000000;
u32 var8005dddc = 0x00000000;
u32 var8005dde0 = 0x00000000;
// 3e04
struct audiodefinition audiodefinitions[] = {
/*0x0000*/ { 0x85ba, 59 },
/*0x0001*/ { 0x85a5, 15 },
/*0x0002*/ { 0x85a6, 15 },
/*0x0003*/ { 0x80bb, 14 },
/*0x0004*/ { 0x80bc, 14 },
/*0x0005*/ { 0x8007, 14 },
/*0x0006*/ { 0x8007, 14 },
/*0x0007*/ { 0x80be, 14 },
/*0x0008*/ { 0x80bf, 14 },
/*0x0009*/ { 0x80bf, 14 },
/*0x000a*/ { 0x80c0, 14 },
/*0x000b*/ { 0x8007, 14 },
/*0x000c*/ { 0x80c2, 14 },
/*0x000d*/ { 0x80c3, 14 },
/*0x000e*/ { 0x80c4, 14 },
/*0x000f*/ { 0x80c5, 14 },
/*0x0010*/ { 0x8007, 14 },
/*0x0011*/ { 0x80c7, 14 },
/*0x0012*/ { 0x80c8, 14 },
/*0x0013*/ { 0x80c9, 14 },
/*0x0014*/ { 0x80ca, 15 },
/*0x0015*/ { 0x80cb, 15 },
/*0x0016*/ { 0x80cc, 15 },
/*0x0017*/ { 0x8007, 15 },
/*0x0018*/ { 0x8007, 15 },
/*0x0019*/ { 0x8007, 15 },
/*0x001a*/ { 0x80d2, 15 },
/*0x001b*/ { 0x80d3, 15 },
/*0x001c*/ { 0x8007, 15 },
/*0x001d*/ { 0x80c6, 14 },
/*0x001e*/ { 0x80d6, 15 },
/*0x001f*/ { 0x80d7, 15 },
/*0x0020*/ { 0x80d8, 15 },
/*0x0021*/ { 0x80db, 14 },
/*0x0022*/ { 0x80da, 14 },
/*0x0023*/ { 0x80bf, 14 },
/*0x0024*/ { 0x80bf, 14 },
/*0x0025*/ { 0x80de, 14 },
/*0x0026*/ { 0x80e1, 15 },
/*0x0027*/ { 0x80e2, 15 },
/*0x0028*/ { 0x977a, 60 }, // Carrington: "Hello Joanna"
/*0x0029*/ { 0x97b0, 60 }, // Carrington: "Joanna, it's good to see you"
/*0x002a*/ { 0x97b1, 60 }, // Carrington: "Good day to you, Jo"
/*0x002b*/ { 0x977c, 60 }, // Female: "Hi there"
/*0x002c*/ { 0x9786, 60 }, // Grimshaw: "Welcome to hacker central"
/*0x002d*/ { 0x9787, 60 }, // Grimshaw: "Hi there"
/*0x002e*/ { 0x9788, 60 }, // Grimshaw: "Um, er, hi"
/*0x002f*/ { 0x978c, 60 }, // Holo girl: "Hi. What can I do for you?"
/*0x0030*/ { 0x9794, 60 }, // Hangar guy: "What do you want?"
/*0x0031*/ { 0x9784, 60 }, // Foster: "Ah, our star agent"
/*0x0032*/ { 0x978e, 60 }, // Male: "Hey there"
/*0x0033*/ { 0x978f, 60 }, // Male: "Hi"
/*0x0034*/ { 0x9790, 60 }, // Male "How's it going?"
/*0x0035*/ { 0x977e, 60 }, // Female: "Hello"
/*0x0036*/ { 0x977f, 60 }, // Holo girl: "Hi Jo"
/*0x0037*/ { 0x9780, 60 }, // Holo girl: "How's it going?"
/*0x0038*/ { 0x802e, 32 },
/*0x0039*/ { 0x8037, 35 },
/*0x003a*/ { 0x8037, 35 },
/*0x003b*/ { 0x806a, 33 },
/*0x003c*/ { 0x8037, 35 },
/*0x003d*/ { 0x8037, 35 },
/*0x003e*/ { 0x8037, 35 },
/*0x003f*/ { 0x806d, 33 },
/*0x0040*/ { 0x806e, 33 },
/*0x0041*/ { 0x8037, 35 },
/*0x0042*/ { 0x8037, 35 },
/*0x0043*/ { 0x8070, 33 },
/*0x0044*/ { 0x8071, 33 },
/*0x0045*/ { 0x8037, 35 },
/*0x0046*/ { 0x8037, 35 },
/*0x0047*/ { 0x8037, 35 },
/*0x0048*/ { 0x8037, 35 },
/*0x0049*/ { 0x8075, 33 },
/*0x004a*/ { 0x8037, 35 },
/*0x004b*/ { 0x8037, 35 },
/*0x004c*/ { 0x8079, 31 },
/*0x004d*/ { 0x8066, 31 },
/*0x004e*/ { 0x8037, 35 },
/*0x004f*/ { 0x8032, 31 },
/*0x0050*/ { 0x8037, 35 },
/*0x0051*/ { 0x807a, 35 },
/*0x0052*/ { 0x8059, 31 },
/*0x0053*/ { 0x8001, 35 },
/*0x0054*/ { 0x847e, 32 },
/*0x0055*/ { 0x847d, 33 },
/*0x0056*/ { 0x84f1, 32 },
/*0x0057*/ { 0x84f2, 32 },
/*0x0058*/ { 0x84f3, 32 },
/*0x0059*/ { 0x84f4, 33 },
/*0x005a*/ { 0x84f6, 33 },
/*0x005b*/ { 0x8506, 31 },
/*0x005c*/ { 0x84fd, 33 },
/*0x005d*/ { 0x8504, 33 },
/*0x005e*/ { 0x84fe, 33 },
/*0x005f*/ { 0x8503, 33 },
/*0x0060*/ { 0x8500, 32 },
/*0x0061*/ { 0x8501, 32 },
/*0x0062*/ { 0x8502, 32 },
/*0x0063*/ { 0x85ca, 31 },
/*0x0064*/ { 0x85cb, 31 },
/*0x0065*/ { 0x85d2, 31 },
/*0x0066*/ { 0x8074, 33 },
/*0x0067*/ { 0x85eb, 35 },
/*0x0068*/ { 0x85ec, 35 },
/*0x0069*/ { 0x85ed, 31 },
/*0x006a*/ { 0x85ee, 31 },
/*0x006b*/ { 0x85ef, 33 },
/*0x006c*/ { 0x85f0, 33 },
/*0x006d*/ { 0x85f1, 33 },
/*0x006e*/ { 0x85f2, 33 },
/*0x006f*/ { 0x85f3, 33 },
/*0x0070*/ { 0x85f4, 33 },
/*0x0071*/ { 0x8508, 31 },
/*0x0072*/ { 0x850a, 31 },
/*0x0073*/ { 0x8076, 33 },
/*0x0074*/ { 0x85f5, 30 },
/*0x0075*/ { 0x8509, 33 },
/*0x0076*/ { 0x8045, 45 },
/*0x0077*/ { 0x8046, 45 },
/*0x0078*/ { 0x8047, 25 },
/*0x0079*/ { 0x8048, 45 },
/*0x007a*/ { 0x80f0, 45 },
/*0x007b*/ { 0x80ef, 45 },
/*0x007c*/ { 0x8049, 45 },
/*0x007d*/ { 0x804a, 45 },
/*0x007e*/ { 0x804b, 45 },
/*0x007f*/ { 0x80d9, 45 },
/*0x0080*/ { 0x804c, 45 },
/*0x0081*/ { 0x80e7, 45 },
/*0x0082*/ { 0x80e6, 45 },
/*0x0083*/ { 0x80e0, 45 },
/*0x0084*/ { 0x80dc, 45 },
/*0x0085*/ { 0x80b9, 45 },
/*0x0086*/ { 0x80d4, 45 },
/*0x0087*/ { 0x80d0, 45 },
/*0x0088*/ { 0x80d1, 45 },
/*0x0089*/ { 0x8078, 45 },
/*0x008a*/ { 0x80dd, 45 },
/*0x008b*/ { 0x8003, 45 },
/*0x008c*/ { 0x802d, 21 },
/*0x008d*/ { 0x807b, 21 },
/*0x008e*/ { 0x807c, 21 },
/*0x008f*/ { 0x807d, 21 },
/*0x0090*/ { 0x807e, 21 },
/*0x0091*/ { 0x807f, 21 },
/*0x0092*/ { 0x8080, 21 },
/*0x0093*/ { 0x8081, 21 },
/*0x0094*/ { 0x8082, 21 },
/*0x0095*/ { 0x8083, 21 },
/*0x0096*/ { 0x8084, 21 },
/*0x0097*/ { 0x8085, 21 },
/*0x0098*/ { 0x80b4, 18 },
/*0x0099*/ { 0x80b5, 18 },
/*0x009a*/ { 0x80b6, 17 },
/*0x009b*/ { 0x80a9, 18 },
/*0x009c*/ { 0x80aa, 18 },
/*0x009d*/ { 0x80ab, 17 },
/*0x009e*/ { 0x80ac, 18 },
/*0x009f*/ { 0x80ad, 18 },
/*0x00a0*/ { 0x80ae, 17 },
/*0x00a1*/ { 0x80b1, 18 },
/*0x00a2*/ { 0x80b2, 18 },
/*0x00a3*/ { 0x80b3, 18 },
/*0x00a4*/ { 0x818a, 19 },
/*0x00a5*/ { 0xefdd, 19 },
/*0x00a6*/ { 0x805f, 32 },
/*0x00a7*/ { 0x8060, 32 },
/*0x00a8*/ { 0x8061, 32 },
/*0x00a9*/ { 0x8004, 32 },
/*0x00aa*/ { 0x80f1, 32 },
/*0x00ab*/ { 0x80f3, 32 },
/*0x00ac*/ { 0x8055, 16 },
/*0x00ad*/ { 0x8056, 16 },
/*0x00ae*/ { 0x8057, 16 },
/*0x00af*/ { 0x85f7, 52 },
/*0x00b0*/ { 0x8127, 29 },
/*0x00b1*/ { 0x8128, 29 },
/*0x00b2*/ { 0x8129, 29 },
/*0x00b3*/ { 0x812a, 29 },
/*0x00b4*/ { 0x812b, 29 },
/*0x00b5*/ { 0x812c, 29 },
/*0x00b6*/ { 0x812d, 50 },
/*0x00b7*/ { 0x812e, 50 },
/*0x00b8*/ { 0x8138, 50 },
/*0x00b9*/ { 0x8138, 28 },
/*0x00ba*/ { 0x812f, 51 },
/*0x00bb*/ { 0x8151, 51 },
/*0x00bc*/ { 0x8154, 51 },
/*0x00bd*/ { 0x8157, 51 },
/*0x00be*/ { 0x815a, 51 },
/*0x00bf*/ { 0x8132, 51 },
/*0x00c0*/ { 0x8139, 51 },
/*0x00c1*/ { 0x813f, 51 },
/*0x00c2*/ { 0x8145, 51 },
/*0x00c3*/ { 0x814b, 51 },
/*0x00c4*/ { 0x8161, 4 },
/*0x00c5*/ { 0x8162, 4 },
/*0x00c6*/ { 0x8163, 4 },
/*0x00c7*/ { 0x8164, 4 },
/*0x00c8*/ { 0x8165, 4 },
/*0x00c9*/ { 0x8166, 4 },
/*0x00ca*/ { 0x8167, 4 },
/*0x00cb*/ { 0x8168, 4 },
/*0x00cc*/ { 0x8169, 4 },
/*0x00cd*/ { 0x816a, 4 },
/*0x00ce*/ { 0x816b, 4 },
/*0x00cf*/ { 0x816c, 4 },
/*0x00d0*/ { 0x816d, 4 },
/*0x00d1*/ { 0x816e, 4 },
/*0x00d2*/ { 0x816f, 4 },
/*0x00d3*/ { 0x8170, 4 },
/*0x00d4*/ { 0x8171, 4 },
/*0x00d5*/ { 0x8172, 4 },
/*0x00d6*/ { 0x8173, 4 },
/*0x00d7*/ { 0x8174, 4 },
/*0x00d8*/ { 0x8175, 4 },
/*0x00d9*/ { 0x8176, 4 },
/*0x00da*/ { 0x8177, 4 },
/*0x00db*/ { 0x8178, 4 },
/*0x00dc*/ { 0x8179, 4 },
/*0x00dd*/ { 0x817a, 4 },
/*0x00de*/ { 0x817b, 4 },
/*0x00df*/ { 0x817c, 4 },
/*0x00e0*/ { 0x817d, 4 },
/*0x00e1*/ { 0x817e, 4 },
/*0x00e2*/ { 0x817f, 4 },
/*0x00e3*/ { 0x8180, 4 },
/*0x00e4*/ { 0x804d, 4 },
/*0x00e5*/ { 0x804e, 4 },
/*0x00e6*/ { 0x85f8, 5 },
/*0x00e7*/ { 0x85f9, 5 },
/*0x00e8*/ { 0x85fa, 5 },
/*0x00e9*/ { 0x85fb, 5 },
/*0x00ea*/ { 0x85fc, 6 },
/*0x00eb*/ { 0x85fd, 6 },
/*0x00ec*/ { 0x85fe, 6 },
/*0x00ed*/ { 0x85ff, 6 },
/*0x00ee*/ { 0x8600, 4 },
/*0x00ef*/ { 0x8601, 4 },
/*0x00f0*/ { 0x8602, 4 },
/*0x00f1*/ { 0x8603, 4 },
/*0x00f2*/ { 0x8604, 4 },
/*0x00f3*/ { 0x8605, 4 },
/*0x00f4*/ { 0x8606, 4 },
/*0x00f5*/ { 0x8606, 4 },
/*0x00f6*/ { 0x81d9, 61 },
/*0x00f7*/ { 0x8267, 2 },
/*0x00f8*/ { 0x8268, 2 },
/*0x00f9*/ { 0x8286, 2 },
/*0x00fa*/ { 0x8288, 2 },
/*0x00fb*/ { 0x8291, 2 },
/*0x00fc*/ { 0x829f, 2 },
/*0x00fd*/ { 0x82a1, 2 },
/*0x00fe*/ { 0x8af9, 47 }, // Cass: "You've become quite an annoyance"
/*0x00ff*/ { 0x8afa, 47 }, // Cass: "We meet again, girl"
/*0x0100*/ { 0x8afb, 47 }, // Cass: "Good night, Miss Dark"
/*0x0101*/ { 0x92fc, 47 }, // Cass: "Get her!"
/*0x0102*/ { 0x92fd, 47 }, // Cass: (laughing)
/*0x0103*/ { 0x9285, 2 }, // Scientist: "Who the hell are you?"
/*0x0104*/ { 0x9306, 48 }, // Programmer: "Yes, yes, I agree. Personality..."
/*0x0105*/ { 0x9307, 48 }, // Programmer: "No. I can start the process..."
/*0x0106*/ { 0x9308, 48 }, // Programmer: "I'll begin at once. Goodbye"
/*0x0107*/ { 0x9309, 48 }, // Programmer: "Security, help me!"
/*0x0108*/ { 0x930a, 48 }, // Programmer: "Help! Help!"
/*0x0109*/ { 0x8435, 49 },
/*0x010a*/ { 0x81b5, 7 },
/*0x010b*/ { 0x81b6, 8 },
/*0x010c*/ { 0x81b5, 9 },
/*0x010d*/ { 0x81b6, 10 },
/*0x010e*/ { 0x85f3, 11 },
/*0x010f*/ { 0x81b5, 12 },
/*0x0110*/ { 0x81b6, 13 },
/*0x0111*/ { 0x81b7, 20 },
/*0x0112*/ { 0x81b8, 20 },
/*0x0113*/ { 0x81c7, 20 },
/*0x0114*/ { 0x8037, 20 },
/*0x0115*/ { 0x81b7, 56 },
/*0x0116*/ { 0x81b9, 0 },
/*0x0117*/ { 0x81ba, 0 },
/*0x0118*/ { 0x81bb, 0 },
/*0x0119*/ { 0x81cb, 36 },
/*0x011a*/ { 0x81cb, 37 },
/*0x011b*/ { 0x81cb, 38 },
/*0x011c*/ { 0x81c6, 55 },
/*0x011d*/ { 0x9278, 47 }, // "That's not how it goes"
/*0x011e*/ { 0x9279, 47 }, // "Give it to me. You're doing it wrong"
/*0x011f*/ { 0x927a, 47 }, // "Oh no, we're too late"
/*0x0120*/ { 0x927b, 47 }, // "Yes it is"
/*0x0121*/ { 0x927c, 47 }, // "Stop annoying me"
/*0x0122*/ { 0x927d, 47 }, // "She's here!"
/*0x0123*/ { 0x9277, 47 }, // "Will you just hurry up?"
/*0x0124*/ { 0x82fd, 2 }, // "Holy..."
/*0x0125*/ { 0x82fe, 2 }, // "What the hell?"
/*0x0126*/ { 0x8300, 2 }, // "Oh my god"
/*0x0127*/ { 0x8303, 2 }, // "Oh god I'm hit"
/*0x0128*/ { 0x830a, 2 }, // "Oh my god"
/*0x0129*/ { 0x8313, 62 }, // "Noooo!"
/*0x012a*/ { 0x8314, 2 }, // "Oh god he's dead!"
/*0x012b*/ { 0x832e, 2 }, // "Bloody stupid gun"
/*0x012c*/ { 0x8330, 2 }, // "Damn it"
/*0x012d*/ { 0x8333, 2 }, // "Damn, she's good"
/*0x012e*/ { 0x8334, 2 }, // "Cover my ass"
/*0x012f*/ { 0x834c, 62 }, // Death scream
/*0x0130*/ { 0x83a3, 2 }, // Female: "Damn she's good"
/*0x0131*/ { 0x83b9, 2 }, // Female: "My god"
/*0x0132*/ { 0x83c7, 2 }, // "Geez, that hurt"
/*0x0133*/ { 0x83cf, 2 }, // "Damn it, I'm taking fire"
/*0x0134*/ { 0x83d2, 2 }, // "God damn it"
/*0x0135*/ { 0x83d4, 2 }, // "Holy moley"
/*0x0136*/ { 0x83f3, 2 }, // "Damn, missed again"
/*0x0137*/ { 0x83f5, 2 }, // "Damn"
/*0x0138*/ { 0x83f6, 2 }, // "Hell, she's good"
/*0x0139*/ { 0x8400, 2 }, // "Let's get the hell out of here"
/*0x013a*/ { 0x8411, 62 }, // "Noooo!"
/*0x013b*/ { 0x8413, 2 }, // "Shoot, damn it"
/*0x013c*/ { 0x8414, 2 }, // "Oh god, I'm dying"
/*0x013d*/ { 0x8422, 2 }, // "God, run!"
/*0x013e*/ { 0x8432, 33 },
/*0x013f*/ { 0x843c, 58 },
/*0x0140*/ { 0x843d, 58 },
/*0x0141*/ { 0x84ab, 58 },
/*0x0142*/ { 0x843d, 58 },
/*0x0143*/ { 0x81b7, 58 },
/*0x0144*/ { 0x8477, 57 },
/*0x0145*/ { 0x8478, 57 },
/*0x0146*/ { 0x81c2, 54 },
/*0x0147*/ { 0x8479, 54 },
/*0x0148*/ { 0x81c3, 54 },
/*0x0149*/ { 0x81c4, 54 },
/*0x014a*/ { 0x8443, 2 }, // Civilian: "Oh my god"
/*0x014b*/ { 0x844e, 2 }, // "What the hell was that?"
/*0x014c*/ { 0x843c, 63 },
/*0x014d*/ { 0x847c, 63 },
/*0x014e*/ { 0x843d, 63 },
/*0x014f*/ { 0xf2ad, 1 }, // "Joanna, this is Jonathan. You're in grave danger"
/*0x0150*/ { 0xf2ae, 1 }, // "They've flooded the area with nerge gas"
/*0x0151*/ { 0xf2af, 1 }, // "Get our friend to the containment lab. There's a hiding place there"
/*0x0152*/ { 0xd2b0, 1 }, // "I'll contact you when you get there. Good luck"
/*0x0153*/ { 0xf2b1, 1 }, // "Good work Jo. We need to meet up. They're getting suspicious of me"
/*0x0154*/ { 0xd2b2, 1 }, // "Use the maintenance hatch I've opened in one of the containment labs. Hurry"
/*0x0155*/ { 0x92b8, 2 }, // "Damn it Joanna, cover me!"
/*0x0156*/ { 0x9b30, 2 }, // "Oh my god, a gun?!"
/*0x0157*/ { 0x9b27, 47 }, // "So you got here at last"
/*0x0158*/ { 0x9b28, 47 }, // "Hey, you're not, uh, security alert!"
/*0x0159*/ { 0x9b29, 47 }, // "No guns allowed in here. Put your weapon away"
/*0x015a*/ { 0x9b2a, 47 }, // "I won't tell you again. Lose the weapon"
/*0x015b*/ { 0x9b2b, 47 }, // "Right. I'm calling security"
/*0x015c*/ { 0x9b2c, 47 }, // "Everyone's been waiting for you"
/*0x015d*/ { 0x9a9d, 60 }, // "How's things?"
/*0x015e*/ { 0x9a9e, 60 }, // "Hey there"
/*0x015f*/ { 0x9a9f, 60 }, // "Hi. How are you?"
/*0x0160*/ { 0x8037, 4 },
/*0x0161*/ { 0x9271, 60 }, // Female: "Good afternoon"
/*0x0162*/ { 0x9275, 2 }, // Female: "Oh my god!"
/*0x0163*/ { 0x9acc, 60 }, // "Hi there"
/*0x0164*/ { 0x9acd, 60 }, // "How's things"
/*0x0165*/ { 0x9ad4, 60 }, // "Hello"
/*0x0166*/ { 0x9ad5, 60 }, // "Hey, what's up?"
/*0x0167*/ { 0x84c8, 2 }, // "What the hell?"
/*0x0168*/ { 0x84cd, 2 }, // "Geez"
/*0x0169*/ { 0x84ad, 46 },
/*0x016a*/ { 0x8507, 27 },
/*0x016b*/ { 0x84ee, 16 },
/*0x016c*/ { 0x84ef, 16 },
/*0x016d*/ { 0x84f0, 16 },
/*0x016e*/ { 0x92c8, 2 }, // President: "What the hell was that?"
/*0x016f*/ { 0x92c9, 2 }, // Trent: "How the hell did you get on board?"
/*0x0170*/ { 0xb3a0, 1 }, // Carrington: "We're getting a positive reading. The internal comms hub is nearby"
/*0x0171*/ { 0xb3a1, 1 }, // Carrington: "You're on the same floor as Cassandra's office"
/*0x0172*/ { 0xd3a3, 1 }, // Carrington: "The basement elevator must be around there somewhere"
/*0x0173*/ { 0xd3a4, 1 }, // Carrington: "That's the highest security sector. Dr Caroll has got to be nearby"
/*0x0174*/ { 0xd3a6, 1 }, // Grimshaw: "Reprogram the cleaning bot. It'll give you a way in"
/*0x0175*/ { 0xd3a7, 1 }, // Carrington: "Get out Jo! The levels are too high. Use the camspy"
/*0x0176*/ { 0xd3a8, 1 }, // Carrington: "They've locked down the ground floor. Get to the elevator"
/*0x0177*/ { 0xd3a9, 1 }, // Carrington: "That copter needs to be taken out of the jumpship will get shut down"
/*0x0178*/ { 0xd3ab, 1 }, // Carrington: "Don't keep the jumpship waiting. Get back to the landing pad"
/*0x0179*/ { 0xd3b0, 1 }, // Carrington: "The only place we could secure the equipment was a storm drain"
/*0x017a*/ { 0xd3b2, 1 }, // Grimshaw: "Reprogram that taxi. It's a mark 2 and should be compatible"
/*0x017b*/ { 0xd3b3, 1 }, // Carrington: The carpark lift is your only point of ingress"
/*0x017c*/ { 0xb3b6, 1 }, // Grimshaw: "The safe's heavily encrypted. The decoder's going to take a little longer"
/*0x017d*/ { 0xd3b8, 1 }, // Carrington: "The air intercept radar is controlled from that bunker"
/*0x017e*/ { 0xd3ba, 1 }, // Carrington: "The hangar lift is the other side of that huge door"
/*0x017f*/ { 0xd3bb, 1 }, // Jon: "Careful with that trigger finger, Agent Dark. You're closing in on my position"
/*0x0180*/ { 0xb3bd, 1 }, // Carrington: "The temperature's dropping. You must be close to the cryo room"
/*0x0181*/ { 0xd3bf, 1 }, // Carrington: "There he is Jo. Hurry or you'll be too late"
/*0x0182*/ { 0xb3c4, 1 }, // Carrington: "Now's your chance. Grab the stewardess's bag and get her uniform"
/*0x0183*/ { 0xb3c5, 1 }, // Carrington: "Use that case to conceal your equipment"
/*0x0184*/ { 0xb3c6, 1 }, // Carrington: "The case will get stopped unless you do something"
/*0x0185*/ { 0xb3c9, 1 }, // Carrington: "The president's room is on this level, Joanna"
/*0x0186*/ { 0xb3ca, 1 }, // Carrington: "Something's wrong. You have to get to the cockpit"
/*0x0187*/ { 0x8594, 4 }, // Footstep
/*0x0188*/ { 0x8595, 4 }, // Footstep
/*0x0189*/ { 0x8596, 4 }, // Footstep
/*0x018a*/ { 0x8597, 4 }, // Footstep
/*0x018b*/ { 0x8598, 4 }, // Footstep
/*0x018c*/ { 0x8599, 4 }, // Footstep
/*0x018d*/ { 0x859a, 4 }, // Footstep
/*0x018e*/ { 0x859b, 4 }, // Footstep
/*0x018f*/ { 0x85a0, 4 }, // Footstep
/*0x0190*/ { 0x85a1, 4 }, // Footstep
/*0x0191*/ { 0x85a2, 4 }, // Footstep
/*0x0192*/ { 0x85a3, 4 }, // Footstep
/*0x0193*/ { 0xf310, 1 }, // Carrington: "Joanna. We're under attack"
/*0x0194*/ { 0xd311, 1 }, // Carrington: "Get the guns back online. Hurry"
/*0x0195*/ { 0xf312, 1 }, // Carrington: "The Skedar have taken hostages"
/*0x0196*/ { 0xd313, 1 }, // Carrington: "Get up to the offices and save them"
/*0x0197*/ { 0xf314, 1 }, // Carrington: "They're using a new form of shield technology"
/*0x0198*/ { 0xd315, 1 }, // Carrington: "Foster was working on a new weapon which may be useful"
/*0x0199*/ { 0xf316, 3 }, // Carrington: "Damn it, my office. If they get access..."
/*0x019a*/ { 0xd317, 1 }, // Carrington: "Get there first, Jo and destroy the files"
/*0x019b*/ { 0xf318, 1 }, // Carrington: "Things are desparate. They've planted a bomb"
/*0x019c*/ { 0xd319, 1 }, // Carrington: "Find it and get it out of the building"
/*0x019d*/ { 0xf31a, 1 }, // Carrington: "Well done Joanna. We're nearly clear"
/*0x019e*/ { 0xd31b, 1 }, // Carrington: "The last dropship is waiting for you. Hurry"
/*0x019f*/ { 0xf293, 1 }, // Grimshaw: "Joanna, it's Grimshaw. We've got hackers at..."
/*0x01a0*/ { 0xf2df, 1 }, // Elvis: "We're outside, Joanna. Get the shields down and we can help you"
/*0x01a1*/ { 0xf2e0, 1 }, // Elvis: "You've got to open the hanger doors so we can dock"
/*0x01a2*/ { 0xd4ea, 1 }, // Carrington: "Stand back Joanna. We'll create your escape route"
/*0x01a3*/ { 0x8d24, 2 }, // Cass: "Get the hell out of my office"
/*0x01a4*/ { 0x9d62, 47 }, // Elvis: "Joanna, what took you so long? Follow me. Let's get off this old tub"
/*0x01a5*/ { 0x84aa, 43 },
/*0x01a6*/ { 0x81cf, 41 },
/*0x01a7*/ { 0x858f, 40 },
/*0x01a8*/ { 0x80d5, 39 }, // Lift mechanical sound
/*0x01a9*/ { 0x80ec, 39 }, // Lift mechanical sound
/*0x01aa*/ { 0x80ed, 40 }, // Lift mechanical sound
/*0x01ab*/ { 0x80d5, 41 }, // Lift mechanical sound
/*0x01ac*/ { 0x80ec, 41 }, // Lift mechanical sound
/*0x01ad*/ { 0x80ed, 42 }, // Lift mechanical sound
/*0x01ae*/ { 0x80d5, 41 }, // Lift mechanical sound
/*0x01af*/ { 0x80ec, 41 }, // Lift mechanical sound
/*0x01b0*/ { 0x803a, 41 }, // Lift call
/*0x01b1*/ { 0x84e8, 43 }, // Lift mechanical sound
/*0x01b2*/ { 0x84e9, 43 }, // Lift mechanical sound
/*0x01b3*/ { 0x80cd, 42 }, // Lift mechanical sound
/*0x01b4*/ { 0x80ce, 42 }, // Lift mechanical sound
/*0x01b5*/ { 0x8039, 42 }, // Lift mechanical sound
/*0x01b6*/ { 0x80cd, 44 }, // Lift mechanical sound
/*0x01b7*/ { 0x80db, 16 }, // Lift roller door
/*0x01b8*/ { 0x80da, 16 }, // Lift roller door
/*0x01b9*/ { 0xf41c, 2 }, // Joanna: "Oh my god"
/*0x01ba*/ { 0xf434, 2 }, // Lab guy: "What the hell do you think you're doing? This is supposed..."
/*0x01bb*/ { 0xf44f, 2 }, // President: "Damn it man. I say no and I mean no..."
/*0x01bc*/ { 0x0000, 0 },
};
// 44f8
struct audioconfig audioconfigs[] = {
{ /* 0*/ 200, 1000, 1200, -1, 100, -1, 0, 0x00 },
{ /* 1*/ 400, 2500, 3000, -1, 100, 48, 0, 0x20 },
{ /* 2*/ 400, 2500, 3000, -1, 100, -1, 0, 0x10 },
{ /* 3*/ 400, 2500, 3000, -1, 100, 48, 0, 0x30 },
{ /* 4*/ 200, 1000, 1200, -1, 100, -1, 0, 0x00 },
{ /* 5*/ 200, 1000, 1200, -1, 100, -1, 0, 0x00 },
{ /* 6*/ 200, 1000, 1200, -1, 100, -1, 0, 0x00 },
{ /* 7*/ 1000, 3500, 4000, -1, 100, -1, 120, 0x09 },
{ /* 8*/ 1000, 2500, 3000, -1, 100, -1, 30, 0x09 },
{ /* 9*/ 1000, 3500, 4000, -1, 100, -1, 120, 0x09 },
{ /*10*/ 1000, 2500, 3000, -1, 100, -1, 30, 0x09 },
{ /*11*/ 1600, 3000, 3500, -1, 100, -1, 0, 0x09 },
{ /*12*/ 400, 1100, 1400, -1, 100, -1, 140, 0x09 },
{ /*13*/ 400, 1100, 1400, -1, 100, -1, 0, 0x09 },
{ /*14*/ 300, 1200, 1250, -1, 100, -1, 0, 0x01 },
{ /*15*/ 500, 1800, 1900, -1, 100, -1, 0, 0x01 },
{ /*16*/ 1000, 2700, 2900, -1, 100, -1, 0, 0x01 },
{ /*17*/ 1500, 3000, 4000, -1, 100, -1, 0, 0x01 },
{ /*18*/ 2500, 4900, 5000, -1, 100, -1, 0, 0x01 },
{ /*19*/ 5500, 5600, 5700, -1, 100, -1, 0, 0x21 },
{ /*20*/ 20, 400, 500, -1, 100, -1, 0, 0x00 },
{ /*21*/ 300, 1700, 2000, -1, 100, -1, 0, 0x00 },
{ /*22*/ 600, 3500, 5000, -1, 100, -1, 0, 0x00 },
{ /*23*/ 600, 3500, 5000, -1, 100, -1, 0, 0x00 },
{ /*24*/ 600, 3500, 5000, -1, 100, -1, 0, 0x00 },
{ /*25*/ 600, 2500, 3000, -1, 100, -1, 0, 0x00 },
{ /*26*/ 1500, 4900, 5500, -1, 100, -1, 100, 0x01 },
{ /*27*/ 5500, 5740, 5800, -1, 100, -1, 100, 0x01 },
{ /*28*/ 250, 1000, 1300, 2, 100, -1, 120, 0x01 },
{ /*29*/ 200, 2600, 3000, -1, 100, -1, 0, 0x00 },
{ /*30*/ 200, 750, 850, -1, 100, -1, 0, 0x00 },
{ /*31*/ 600, 2000, 3000, -1, 100, -1, 0, 0x00 },
{ /*32*/ 500, 1500, 1800, -1, 100, -1, 0, 0x00 },
{ /*33*/ 800, 2500, 3000, -1, 100, -1, 0, 0x00 },
{ /*34*/ 400, 1500, 2000, -1, 100, -1, 0, 0x00 },
{ /*35*/ 1000, 3500, 5000, -1, 100, -1, 0, 0x01 },
{ /*36*/ 50, 225, 250, -1, 100, -1, 0, 0x01 },
{ /*37*/ 50, 225, 250, -1, 100, -1, 0, 0x01 },
{ /*38*/ 2000, 2500, 2700, -1, 50, -1, 0, 0x09 },
{ /*39*/ 300, 1000, 1200, -1, 100, -1, 0, 0x01 },
{ /*40*/ 300, 1000, 1200, -1, 100, -1, 100, 0x01 },
{ /*41*/ 600, 1500, 1800, -1, 100, -1, 0, 0x01 },
{ /*42*/ 600, 1500, 1800, -1, 100, -1, 100, 0x01 },
{ /*43*/ 800, 2600, 3500, -1, 100, -1, 0, 0x01 },
{ /*44*/ 800, 2600, 3500, -1, 100, -1, 100, 0x01 },
{ /*45*/ 200, 800, 1000, -1, 100, -1, 0, 0x00 },
{ /*46*/ 200, 700, 1000, -1, 100, -1, 0, 0x00 },
{ /*47*/ 1000, 2500, 3000, -1, 100, -1, 0, 0x00 },
{ /*48*/ 500, 1400, 1500, -1, 100, -1, 0, 0x00 },
{ /*49*/ 500, 2000, 2200, -1, 100, -1, 0, 0x00 },
{ /*50*/ 400, 2500, 3000, -1, 50, -1, 0, 0x00 },
{ /*51*/ 400, 2500, 3000, -1, 75, -1, 0, 0x00 },
{ /*52*/ 200, 500, 800, -1, 100, -1, 100, 0x00 },
{ /*53*/ 1000, 1100, 1600, -1, 100, -1, 0, 0x00 },
{ /*54*/ 300, 1300, 1500, -1, 100, -1, 0, 0x01 },
{ /*55*/ 300, 1300, 1500, -1, 100, -1, 200, 0x01 },
{ /*56*/ 250, 600, 900, -1, 100, -1, 200, 0x01 },
{ /*57*/ 50, 180, 250, -1, 100, -1, 200, 0x01 },
{ /*58*/ 100, 400, 600, -1, 100, -1, 200, 0x01 },
{ /*59*/ 700, 1100, 1400, -1, 100, -1, 200, 0x01 },
{ /*60*/ 400, 2500, 3000, -1, 100, -1, 0, 0x04 },
{ /*61*/ 300, 900, 1100, -1, 100, -1, 0, 0x00 },
{ /*62*/ 1000, 2500, 3000, -1, 100, -1, 0, 0x08 },
{ /*63*/ 400, 1000, 1200, -1, 100, -1, 0, 0x00 },
};
u32 var8005ecd8 = 0x00000000;
u32 var8005ecdc = 0x00000000;
u32 var8005ece0 = 0x00000000;
u32 var8005ece4 = 0x00000000;
u32 var8005ece8 = 0x00000000;
u32 var8005ecec = 0x00000000;
u32 var8005ecf0 = 0x00000000;
u32 var8005ecf4 = 0x00000000;
u32 var8005ecf8 = 0x66655998;
u32 var8005ecfc = 0x5fff4ccc;
u32 var8005ed00 = 0x5fff2ccc;
u32 var8005ed04 = 0x59986665;
u32 var8005ed08 = 0x4ccc5998;
u32 var8005ed0c = 0x59985998;
u32 var8005ed10 = 0x5fff6665;
u32 var8005ed14 = 0x66655fff;
u32 var8005ed18 = 0x59986665;
u32 var8005ed1c = 0x5fff5fff;
u32 var8005ed20 = 0x5fff6665;
u32 var8005ed24 = 0x5fff5fff;
u32 var8005ed28 = 0x5fff7332;
u32 var8005ed2c = 0x5fff6665;
u32 var8005ed30 = 0x5fff5998;
u32 var8005ed34 = 0x59985332;
u32 var8005ed38 = 0x53325fff;
u32 var8005ed3c = 0x33324ccc;
u32 var8005ed40 = 0x5fff4ccc;
u32 var8005ed44 = 0x3fff5fff;
u32 var8005ed48 = 0x5fff5fff;
u32 var8005ed4c = 0x5fff4ccc;
u32 var8005ed50 = 0x4ccc4ccc;
u32 var8005ed54 = 0x4ccc4ccc;
u32 var8005ed58 = 0x4ccc4ccc;
u32 var8005ed5c = 0x5fff5fff;
u32 var8005ed60 = 0x5fff5fff;
u32 var8005ed64 = 0x5fff5fff;
u32 var8005ed68 = 0x5fff4ccc;
u32 var8005ed6c = 0x5fff5fff;
u32 var8005ed70 = 0x5fff5fff;
u32 var8005ed74 = 0x5fff5fff;
u32 var8005ed78 = 0x5fff4ccc;
u32 var8005ed7c = 0x4ccc4ccc;
u32 var8005ed80 = 0x4ccc4ccc;
u32 var8005ed84 = 0x4ccc7332;
u32 var8005ed88 = 0x73327332;
u32 var8005ed8c = 0x4ccc3c28;
u32 var8005ed90 = 0x4ccc4ccc;
u32 var8005ed94 = 0x4ccc4ccc;
u32 var8005ed98 = 0x4ccc4ccc;
u32 var8005ed9c = 0x4ccc4ccc;
u32 var8005eda0 = 0x4ccc4ccc;
u32 var8005eda4 = 0x4ccc4ccc;
u32 var8005eda8 = 0x73327332;
u32 var8005edac = 0x4ccc4ccc;
u32 var8005edb0 = 0x4ccc4ccc;
u32 var8005edb4 = 0x4ccc6665;
u32 var8005edb8 = 0x4ccc4ccc;
u32 var8005edbc = 0x4ccc4ccc;
u32 var8005edc0 = 0x6ccb5fff;
u32 var8005edc4 = 0x59987998;
u32 var8005edc8 = 0x59985998;
u32 var8005edcc = 0x66655fff;
u32 var8005edd0 = 0x5fff7332;
u32 var8005edd4 = 0x73327332;
u32 var8005edd8 = 0x73327332;
u32 var8005eddc = 0x4ccc6665;
u32 var8005ede0 = 0x66656665;
u32 var8005ede4 = 0x4ccc6ccb;
u32 var8005ede8 = 0xffff0000;
u32 var8005edec = 0xffffffff;
GLOBAL_ASM(
glabel func0000e9d0
/* e9d0: 3c028009 */ lui $v0,%hi(var80094eb4)
+7
View File
@@ -19,6 +19,7 @@
const u32 var70053ca0[] = {0x00000000};
const u32 var70053ca4[] = {0x00050000};
const char var70053ca8[] = "OFF";
const char var70053cac[] = "LEVELTUNE";
const char var70053cb8[] = "NRGTUNE";
@@ -42,6 +43,7 @@ const char var70053f18[] = "MUSIC TICK : Queue size = %d\n";
const char var70053f38[] = "MUSIC : Tick -> Channel %d (State=%d) has faded to stop : Dumping\n";
const char var70053f7c[] = "MUSIC : WARNING -> Force fade termination\n";
const char var70053fa8[] = "MUSIC TICK : Job Guid = %u\n";
const u32 var70053fc4[] = {0x70011470};
const u32 var70053fc8[] = {0x70011470};
const u32 var70053fcc[] = {0x70011470};
@@ -54,6 +56,11 @@ const u32 var70053fe4[] = {0x70011c58};
const u32 var70053fe8[] = {0x70011c6c};
const u32 var70053fec[] = {0x70011c7c};
u32 var8005edf0 = 0xffffffff;
u32 var8005edf4 = 0x00000000;
u32 var8005edf8 = 0x00000000;
u32 var8005edfc = 0x00000000;
GLOBAL_ASM(
glabel func00011420
/* 11420: 27bdffc0 */ addiu $sp,$sp,-64
+25
View File
@@ -22,6 +22,31 @@ const char var70054000[] = "-level_";
const char var70054008[] = "";
const char var7005400c[] = "";
u64 rand_seed = 0xab8d9f7781280783;
u32 var8005ee08 = 0x00000000;
u32 var8005ee0c = 0x00000000;
u32 var8005ee10 = 0x00000001;
u32 var8005ee14 = 0x00000000;
u32 var8005ee18 = 0x00000000;
u32 var8005ee1c = 0x00000000;
u32 var8005ee20 = 0x00000000;
u32 var8005ee24 = 0x00000000;
u32 var8005ee28 = 0x00000000;
u32 var8005ee2c = 0x00000000;
u32 var8005ee30 = 0x00000000;
u32 var8005ee34 = 0x00000000;
u32 var8005ee38 = 0x00000000;
u32 var8005ee3c = 0x00000000;
u32 var8005ee40 = 0x00000000;
u32 var8005ee44 = 0x00000000;
u32 var8005ee48 = 0x00000000;
u32 var8005ee4c = 0x00000000;
u32 var8005ee50 = 0x00000000;
u32 var8005ee54 = 0x00000000;
u32 var8005ee58 = 0x00000000;
u32 var8005ee5c = 0x00000000;
GLOBAL_ASM(
glabel random
/* 12dc0: 3c048006 */ lui $a0,%hi(rand_seed)
+123 -253
View File
@@ -26,6 +26,7 @@ const char var70054130[] = "osContStartReadData -> Failed - CONT_NO_RESPONSE_ERR
const char var70054168[] = "osContStartReadData -> Failed - CONT_OVERRUN_ERROR\n";
const char var7005419c[] = "joyTickRetrace:joy%derrno%d->%d\n";
const char var700541c0[] = "joyTickRetrace:joy%derrno%d->%d\n";
const u32 var700541e4[] = {0x700156a4};
const u32 var700541e8[] = {0x700156d8};
const u32 var700541ec[] = {0x700157a8};
@@ -34,6 +35,38 @@ const u32 var700541f4[] = {0x7001581c};
const u32 var700541f8[] = {0x7001580c};
const u32 var700541fc[] = {0x00000000};
struct contdata *var8005ee60 = &var80099a60;
bool g_ContBusy = false;
u32 var8005ee68 = 0x00000000;
u32 var8005ee6c[4] = {0};
u32 var8005ee7c[4] = {0};
u32 var8005ee8c[4] = {0};
u32 var8005ee9c[4] = {0};
u8 g_ConnectedControllers = 0;
u32 var8005eeb0 = 0x00000000;
bool var8005eeb4 = false;
u32 var8005eeb8 = 0x00000001;
u32 var8005eebc = 0x00000000;
u32 var8005eec0 = 0x00000001;
u32 var8005eec4 = 0x00000000;
u32 var8005eec8 = 0x00000000;
u32 var8005eecc = 0x00000000;
u32 var8005eed0 = 0x00000000;
u32 var8005eed4 = 0x00000000;
u32 var8005eed8 = 0x00000000;
u32 var8005eedc = 0x00000001;
u32 var8005eee0 = 0x00000000;
u32 var8005eee4 = 0xffffffff;
u32 var8005eee8 = 0x00000000;
u32 var8005eeec = 0x00000000;
u32 var8005eef0 = 0x00000001;
u32 var8005eef4 = 0x00000000;
u32 var8005eef8 = 0x00000000;
u32 var8005eefc = 0x00000000;
u32 var8005ef00 = 0xff000000;
u32 var8005ef04 = 0x00000000;
u32 var8005ef08 = 0x00000000;
GLOBAL_ASM(
glabel func00013900
/* 13900: 3c0e8006 */ lui $t6,%hi(var8005eef0)
@@ -916,9 +949,9 @@ glabel func000142f0
);
#endif
void contStartReadData(OSMesgQueue *mq)
s32 contStartReadData(OSMesgQueue *mq)
{
osContStartReadData(mq);
return osContStartReadData(mq);
}
void contReadData(void)
@@ -937,257 +970,94 @@ void contReadData(void)
var80099a60.unk1ec = (var80099a60.unk1e8 + 19) % 20;
}
GLOBAL_ASM(
glabel func00014484
/* 14484: 27bdffc8 */ addiu $sp,$sp,-56
/* 14488: afbf0014 */ sw $ra,0x14($sp)
/* 1448c: 3c04800a */ lui $a0,%hi(var80099ec0)
/* 14490: 24849ec0 */ addiu $a0,$a0,%lo(var80099ec0)
/* 14494: 27a50034 */ addiu $a1,$sp,0x34
/* 14498: 0c0121bc */ jal osRecvMesg
/* 1449c: 00003025 */ or $a2,$zero,$zero
/* 144a0: 14400049 */ bnez $v0,.L000145c8
/* 144a4: 3c04800a */ lui $a0,%hi(g_Menus+0x21ec)
/* 144a8: 3c0e8006 */ lui $t6,%hi(var8005ee64)
/* 144ac: 8dceee64 */ lw $t6,%lo(var8005ee64)($t6)
/* 144b0: 3c04800a */ lui $a0,%hi(var80099e78)
/* 144b4: 24849e78 */ addiu $a0,$a0,%lo(var80099e78)
/* 144b8: 11c00035 */ beqz $t6,.L00014590
/* 144bc: 27a50034 */ addiu $a1,$sp,0x34
/* 144c0: 0c0121bc */ jal osRecvMesg
/* 144c4: 24060001 */ addiu $a2,$zero,0x1
/* 144c8: 3c018006 */ lui $at,%hi(var8005ee64)
/* 144cc: 0c005102 */ jal contReadData
/* 144d0: ac20ee64 */ sw $zero,%lo(var8005ee64)($at)
/* 144d4: 3c0f800a */ lui $t7,%hi(var80099a60+0x1e8)
/* 144d8: 8def9c48 */ lw $t7,%lo(var80099a60+0x1e8)($t7)
/* 144dc: 3c19800a */ lui $t9,%hi(var80099a60)
/* 144e0: 27399a60 */ addiu $t9,$t9,%lo(var80099a60)
/* 144e4: 000fc080 */ sll $t8,$t7,0x2
/* 144e8: 030fc023 */ subu $t8,$t8,$t7
/* 144ec: 0018c0c0 */ sll $t8,$t8,0x3
/* 144f0: 3c04800a */ lui $a0,%hi(var80099a60)
/* 144f4: 24849a60 */ addiu $a0,$a0,%lo(var80099a60)
/* 144f8: 03193821 */ addu $a3,$t8,$t9
/* 144fc: 00002825 */ or $a1,$zero,$zero
/* 14500: 24060006 */ addiu $a2,$zero,0x6
.L00014504:
/* 14504: 00a60019 */ multu $a1,$a2
/* 14508: 00001012 */ mflo $v0
/* 1450c: 00e24021 */ addu $t0,$a3,$v0
/* 14510: 91030004 */ lbu $v1,0x4($t0)
/* 14514: 1460000a */ bnez $v1,.L00014540
/* 14518: 00000000 */ nop
/* 1451c: 8c8901ec */ lw $t1,%lo(g_Menus+0x21ec)($a0)
/* 14520: 00095080 */ sll $t2,$t1,0x2
/* 14524: 01495023 */ subu $t2,$t2,$t1
/* 14528: 000a50c0 */ sll $t2,$t2,0x3
/* 1452c: 008a5821 */ addu $t3,$a0,$t2
/* 14530: 01626021 */ addu $t4,$t3,$v0
/* 14534: 918d0004 */ lbu $t5,0x4($t4)
/* 14538: 15a0000c */ bnez $t5,.L0001456c
/* 1453c: 00000000 */ nop
.L00014540:
/* 14540: 1060000e */ beqz $v1,.L0001457c
/* 14544: 24a50001 */ addiu $a1,$a1,0x1
/* 14548: 8c8e01ec */ lw $t6,0x1ec($a0)
/* 1454c: 000e7880 */ sll $t7,$t6,0x2
/* 14550: 01ee7823 */ subu $t7,$t7,$t6
/* 14554: 000f78c0 */ sll $t7,$t7,0x3
/* 14558: 008fc021 */ addu $t8,$a0,$t7
/* 1455c: 0302c821 */ addu $t9,$t8,$v0
/* 14560: 93280004 */ lbu $t0,0x4($t9)
/* 14564: 55000006 */ bnezl $t0,.L00014580
/* 14568: 00054e00 */ sll $t1,$a1,0x18
.L0001456c:
/* 1456c: 0c004fa1 */ jal func00013e84
/* 14570: 00000000 */ nop
/* 14574: 10000006 */ b .L00014590
/* 14578: 00000000 */ nop
.L0001457c:
/* 1457c: 00054e00 */ sll $t1,$a1,0x18
.L00014580:
/* 14580: 00092e03 */ sra $a1,$t1,0x18
/* 14584: 28a10004 */ slti $at,$a1,0x4
/* 14588: 1420ffde */ bnez $at,.L00014504
/* 1458c: 00000000 */ nop
.L00014590:
/* 14590: 3c04800a */ lui $a0,%hi(var80099ee0)
/* 14594: 24849ee0 */ addiu $a0,$a0,%lo(var80099ee0)
/* 14598: 27a50034 */ addiu $a1,$sp,0x34
/* 1459c: 0c012238 */ jal osSendMesg
/* 145a0: 00003025 */ or $a2,$zero,$zero
/* 145a4: 3c038006 */ lui $v1,%hi(var8005ee68)
/* 145a8: 2463ee68 */ addiu $v1,$v1,%lo(var8005ee68)
/* 145ac: 8c6b0000 */ lw $t3,0x0($v1)
/* 145b0: 00002025 */ or $a0,$zero,$zero
/* 145b4: 256c0001 */ addiu $t4,$t3,0x1
/* 145b8: 0c004eae */ jal func00013ab8
/* 145bc: ac6c0000 */ sw $t4,0x0($v1)
/* 145c0: 10000090 */ b .L00014804
/* 145c4: 8fbf0014 */ lw $ra,0x14($sp)
.L000145c8:
/* 145c8: 24849f00 */ addiu $a0,$a0,-24832
/* 145cc: 27a50034 */ addiu $a1,$sp,0x34
/* 145d0: 0c0121bc */ jal osRecvMesg
/* 145d4: 00003025 */ or $a2,$zero,$zero
/* 145d8: 14400014 */ bnez $v0,.L0001462c
/* 145dc: 3c198006 */ lui $t9,%hi(var8005eeb4)
/* 145e0: 3c038006 */ lui $v1,%hi(var8005ee68)
/* 145e4: 2463ee68 */ addiu $v1,$v1,%lo(var8005ee68)
/* 145e8: 8c6d0000 */ lw $t5,0x0($v1)
/* 145ec: 3c04800a */ lui $a0,%hi(var80099e78)
/* 145f0: 25aeffff */ addiu $t6,$t5,-1
/* 145f4: 15c00006 */ bnez $t6,.L00014610
/* 145f8: ac6e0000 */ sw $t6,0x0($v1)
/* 145fc: 0c0050fa */ jal contStartReadData
/* 14600: 24849e78 */ addiu $a0,$a0,%lo(var80099e78)
/* 14604: 24180001 */ addiu $t8,$zero,0x1
/* 14608: 3c018006 */ lui $at,%hi(var8005ee64)
/* 1460c: ac38ee64 */ sw $t8,%lo(var8005ee64)($at)
.L00014610:
/* 14610: 3c04800a */ lui $a0,%hi(var80099f20)
/* 14614: 24849f20 */ addiu $a0,$a0,%lo(var80099f20)
/* 14618: 27a50034 */ addiu $a1,$sp,0x34
/* 1461c: 0c012238 */ jal osSendMesg
/* 14620: 00003025 */ or $a2,$zero,$zero
/* 14624: 10000077 */ b .L00014804
/* 14628: 8fbf0014 */ lw $ra,0x14($sp)
.L0001462c:
/* 1462c: 8f39eeb4 */ lw $t9,%lo(var8005eeb4)($t9)
/* 14630: 3c038006 */ lui $v1,%hi(var8005ee68)
/* 14634: 2463ee68 */ addiu $v1,$v1,%lo(var8005ee68)
/* 14638: 53200072 */ beqzl $t9,.L00014804
/* 1463c: 8fbf0014 */ lw $ra,0x14($sp)
/* 14640: 8c680000 */ lw $t0,0x0($v1)
/* 14644: 3c04800a */ lui $a0,%hi(var80099e78)
/* 14648: 24849e78 */ addiu $a0,$a0,%lo(var80099e78)
/* 1464c: 11000005 */ beqz $t0,.L00014664
/* 14650: 27a50034 */ addiu $a1,$sp,0x34
/* 14654: 0c004eae */ jal func00013ab8
/* 14658: 00002025 */ or $a0,$zero,$zero
/* 1465c: 10000069 */ b .L00014804
/* 14660: 8fbf0014 */ lw $ra,0x14($sp)
.L00014664:
/* 14664: 0c0121bc */ jal osRecvMesg
/* 14668: 00003025 */ or $a2,$zero,$zero
/* 1466c: 14400064 */ bnez $v0,.L00014800
/* 14670: 3c018006 */ lui $at,%hi(var8005ee64)
/* 14674: 0c005102 */ jal contReadData
/* 14678: ac20ee64 */ sw $zero,%lo(var8005ee64)($at)
/* 1467c: 3c09800a */ lui $t1,%hi(var80099a60+0x1e8)
/* 14680: 8d299c48 */ lw $t1,%lo(var80099a60+0x1e8)($t1)
/* 14684: 3c0b800a */ lui $t3,%hi(var80099a60)
/* 14688: 256b9a60 */ addiu $t3,$t3,%lo(var80099a60)
/* 1468c: 00095080 */ sll $t2,$t1,0x2
/* 14690: 01495023 */ subu $t2,$t2,$t1
/* 14694: 000a50c0 */ sll $t2,$t2,0x3
/* 14698: 3c04800a */ lui $a0,%hi(var80099a60)
/* 1469c: 24849a60 */ addiu $a0,$a0,%lo(var80099a60)
/* 146a0: 014b3821 */ addu $a3,$t2,$t3
/* 146a4: 00002825 */ or $a1,$zero,$zero
/* 146a8: 24060006 */ addiu $a2,$zero,0x6
.L000146ac:
/* 146ac: 00a60019 */ multu $a1,$a2
/* 146b0: 00001012 */ mflo $v0
/* 146b4: 00e26021 */ addu $t4,$a3,$v0
/* 146b8: 91830004 */ lbu $v1,0x4($t4)
/* 146bc: 1460000a */ bnez $v1,.L000146e8
/* 146c0: 00000000 */ nop
/* 146c4: 8c8d01ec */ lw $t5,0x1ec($a0)
/* 146c8: 000d7080 */ sll $t6,$t5,0x2
/* 146cc: 01cd7023 */ subu $t6,$t6,$t5
/* 146d0: 000e70c0 */ sll $t6,$t6,0x3
/* 146d4: 008e7821 */ addu $t7,$a0,$t6
/* 146d8: 01e2c021 */ addu $t8,$t7,$v0
/* 146dc: 93190004 */ lbu $t9,0x4($t8)
/* 146e0: 1720000c */ bnez $t9,.L00014714
/* 146e4: 00000000 */ nop
.L000146e8:
/* 146e8: 1060000e */ beqz $v1,.L00014724
/* 146ec: 24a50001 */ addiu $a1,$a1,0x1
/* 146f0: 8c8801ec */ lw $t0,0x1ec($a0)
/* 146f4: 00084880 */ sll $t1,$t0,0x2
/* 146f8: 01284823 */ subu $t1,$t1,$t0
/* 146fc: 000948c0 */ sll $t1,$t1,0x3
/* 14700: 00895021 */ addu $t2,$a0,$t1
/* 14704: 01425821 */ addu $t3,$t2,$v0
/* 14708: 916c0004 */ lbu $t4,0x4($t3)
/* 1470c: 55800006 */ bnezl $t4,.L00014728
/* 14710: 00056e00 */ sll $t5,$a1,0x18
.L00014714:
/* 14714: 0c004fa1 */ jal func00013e84
/* 14718: 00000000 */ nop
/* 1471c: 10000006 */ b .L00014738
/* 14720: 00000000 */ nop
.L00014724:
/* 14724: 00056e00 */ sll $t5,$a1,0x18
.L00014728:
/* 14728: 000d2e03 */ sra $a1,$t5,0x18
/* 1472c: 28a10004 */ slti $at,$a1,0x4
/* 14730: 1420ffde */ bnez $at,.L000146ac
/* 14734: 00000000 */ nop
.L00014738:
/* 14738: 0c00508e */ jal func00014238
/* 1473c: 00000000 */ nop
/* 14740: 0c004eae */ jal func00013ab8
/* 14744: 00002025 */ or $a0,$zero,$zero
/* 14748: 3c04800a */ lui $a0,%hi(var80099e78)
/* 1474c: 0c0050fa */ jal contStartReadData
/* 14750: 24849e78 */ addiu $a0,$a0,%lo(var80099e78)
/* 14754: 3c038006 */ lui $v1,%hi(var8005ef0c)
/* 14758: 8c63ef0c */ lw $v1,%lo(var8005ef0c)($v1)
/* 1475c: 240f0001 */ addiu $t7,$zero,0x1
/* 14760: 3c018006 */ lui $at,%hi(var8005ee64)
/* 14764: ac2fee64 */ sw $t7,%lo(var8005ee64)($at)
/* 14768: 3c018006 */ lui $at,%hi(var8005ef0c)
/* 1476c: 24630001 */ addiu $v1,$v1,0x1
/* 14770: ac23ef0c */ sw $v1,%lo(var8005ef0c)($at)
/* 14774: 2861003c */ slti $at,$v1,0x3c
/* 14778: 14200021 */ bnez $at,.L00014800
/* 1477c: 3c038006 */ lui $v1,%hi(var8005ee6c)
/* 14780: 3c048006 */ lui $a0,%hi(var8005ee7c)
/* 14784: 3c058006 */ lui $a1,%hi(var8005ee8c)
/* 14788: 3c028006 */ lui $v0,%hi(var8005ee9c)
/* 1478c: 3c068006 */ lui $a2,%hi(g_ConnectedControllers)
/* 14790: 24c6eeac */ addiu $a2,$a2,%lo(g_ConnectedControllers)
/* 14794: 2442ee9c */ addiu $v0,$v0,%lo(var8005ee9c)
/* 14798: 24a5ee8c */ addiu $a1,$a1,%lo(var8005ee8c)
/* 1479c: 2484ee7c */ addiu $a0,$a0,%lo(var8005ee7c)
/* 147a0: 2463ee6c */ addiu $v1,$v1,%lo(var8005ee6c)
.L000147a4:
/* 147a4: 8c780000 */ lw $t8,0x0($v1)
/* 147a8: 5700000b */ bnezl $t8,.L000147d8
/* 147ac: ac600000 */ sw $zero,0x0($v1)
/* 147b0: 8c990000 */ lw $t9,0x0($a0)
/* 147b4: 57200008 */ bnezl $t9,.L000147d8
/* 147b8: ac600000 */ sw $zero,0x0($v1)
/* 147bc: 8ca80000 */ lw $t0,0x0($a1)
/* 147c0: 55000005 */ bnezl $t0,.L000147d8
/* 147c4: ac600000 */ sw $zero,0x0($v1)
/* 147c8: 8c490000 */ lw $t1,0x0($v0)
/* 147cc: 51200006 */ beqzl $t1,.L000147e8
/* 147d0: 24420004 */ addiu $v0,$v0,0x4
/* 147d4: ac600000 */ sw $zero,0x0($v1)
.L000147d8:
/* 147d8: ac800000 */ sw $zero,0x0($a0)
/* 147dc: aca00000 */ sw $zero,0x0($a1)
/* 147e0: ac400000 */ sw $zero,0x0($v0)
/* 147e4: 24420004 */ addiu $v0,$v0,0x4
.L000147e8:
/* 147e8: 24630004 */ addiu $v1,$v1,4
/* 147ec: 24840004 */ addiu $a0,$a0,0x4
/* 147f0: 1446ffec */ bne $v0,$a2,.L000147a4
/* 147f4: 24a50004 */ addiu $a1,$a1,0x4
/* 147f8: 3c018006 */ lui $at,%hi(var8005ef0c)
/* 147fc: ac20ef0c */ sw $zero,%lo(var8005ef0c)($at)
.L00014800:
/* 14800: 8fbf0014 */ lw $ra,0x14($sp)
.L00014804:
/* 14804: 27bd0038 */ addiu $sp,$sp,0x38
/* 14808: 03e00008 */ jr $ra
/* 1480c: 00000000 */ nop
);
void contPoll(void)
{
OSMesg msg;
s8 i;
if (osRecvMesg(&var80099ec0, &msg, OS_MESG_NOBLOCK) == 0) {
if (g_ContBusy) {
osRecvMesg(&var80099e78, &msg, OS_MESG_BLOCK);
g_ContBusy = false;
contReadData();
// Check if error state has changed for any controller
for (i = 0; i < 4; i++) {
if ((var80099a60.samples[var80099a60.unk1e8].pads[i].errno == 0 && var80099a60.samples[var80099a60.unk1ec].pads[i].errno != 0)
|| (var80099a60.samples[var80099a60.unk1e8].pads[i].errno != 0 && var80099a60.samples[var80099a60.unk1ec].pads[i].errno == 0)) {
func00013e84();
break;
}
}
}
osSendMesg(&var80099ee0, &msg, OS_MESG_NOBLOCK);
var8005ee68++;
func00013ab8(0);
return;
}
if (osRecvMesg(&var80099f00, &msg, OS_MESG_NOBLOCK) == 0) {
var8005ee68--;
if (var8005ee68 == 0) {
contStartReadData(&var80099e78);
g_ContBusy = true;
}
osSendMesg(&var80099f20, &msg, OS_MESG_NOBLOCK);
return;
}
if (var8005eeb4) {
if (var8005ee68) {
func00013ab8(0);
return;
}
if (osRecvMesg(&var80099e78, &msg, OS_MESG_NOBLOCK) == 0) {
static s32 count = 0;
g_ContBusy = false;
contReadData();
// Check if error state has changed for any controller
for (i = 0; i < 4; i++) {
if ((var80099a60.samples[var80099a60.unk1e8].pads[i].errno == 0 && var80099a60.samples[var80099a60.unk1ec].pads[i].errno != 0)
|| (var80099a60.samples[var80099a60.unk1e8].pads[i].errno != 0 && var80099a60.samples[var80099a60.unk1ec].pads[i].errno == 0)) {
func00013e84();
break;
}
}
func00014238();
func00013ab8(0);
contStartReadData(&var80099e78);
g_ContBusy = true;
count++;
if (count >= 60) {
s32 i;
for (i = 0; i < 4; i++) {
if (var8005ee6c[i] || var8005ee7c[i] || var8005ee8c[i] || var8005ee9c[i]) {
var8005ee6c[i] = 0;
var8005ee7c[i] = 0;
var8005ee8c[i] = 0;
var8005ee9c[i] = 0;
}
}
count = 0;
}
}
}
}
GLOBAL_ASM(
glabel func00014810