From 82cee003caffaa1917e844ce75c4b21006b87fda Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 31 Oct 2020 00:34:59 +1000 Subject: [PATCH] Decompile contPoll --- src/boot/boot.c | 2 +- src/game/data/data_003dc0.c | 667 ---------------------------- src/gvars/gvars.c | 28 +- src/include/game/data/data_000000.h | 3 + src/include/gvars/gvars.h | 8 +- src/include/lib/lib_13900.h | 10 +- src/lib/lib_0e9d0.c | 608 +++++++++++++++++++++++++ src/lib/lib_11420.c | 7 + src/lib/lib_12dc0.c | 25 ++ src/lib/lib_13900.c | 376 +++++----------- 10 files changed, 780 insertions(+), 954 deletions(-) diff --git a/src/boot/boot.c b/src/boot/boot.c index eeb571c68..3bb1fca01 100644 --- a/src/boot/boot.c +++ b/src/boot/boot.c @@ -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 diff --git a/src/game/data/data_003dc0.c b/src/game/data/data_003dc0.c index 7ae08654e..59723cf5f 100644 --- a/src/game/data/data_003dc0.c +++ b/src/game/data/data_003dc0.c @@ -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; diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index afbc0a7a7..86bfef516 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -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; diff --git a/src/include/game/data/data_000000.h b/src/include/game/data/data_000000.h index b9c739a1f..ad11ba529 100644 --- a/src/include/game/data/data_000000.h +++ b/src/include/game/data/data_000000.h @@ -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; diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index 3b188fa3c..40d088963 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -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; diff --git a/src/include/lib/lib_13900.h b/src/include/lib/lib_13900.h index 135bae02d..2fb272f0d 100644 --- a/src/include/lib/lib_13900.h +++ b/src/include/lib/lib_13900.h @@ -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); diff --git a/src/lib/lib_0e9d0.c b/src/lib/lib_0e9d0.c index 463a52988..1b5235c7a 100644 --- a/src/lib/lib_0e9d0.c +++ b/src/lib/lib_0e9d0.c @@ -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) diff --git a/src/lib/lib_11420.c b/src/lib/lib_11420.c index 7001f6c1e..580eff7b4 100644 --- a/src/lib/lib_11420.c +++ b/src/lib/lib_11420.c @@ -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 diff --git a/src/lib/lib_12dc0.c b/src/lib/lib_12dc0.c index c4c41dd22..3a82c1295 100644 --- a/src/lib/lib_12dc0.c +++ b/src/lib/lib_12dc0.c @@ -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) diff --git a/src/lib/lib_13900.c b/src/lib/lib_13900.c index 7bf046123..fe6c24b0e 100644 --- a/src/lib/lib_13900.c +++ b/src/lib/lib_13900.c @@ -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