OPEN.BIN Main Routine
Jump to navigation
Jump to search
# ROUTINE: OPEN.BIN MAIN ROUTINE 800670f0: 27bdffe0 addiu r29,r29,-0x0020 800670f4: afbf0018 sw r31,0x0018(r29) 800670f8: afb10014 sw r17,0x0014(r29) 800670fc: 0c01a1a1 jal 0x80068684 # OPEN.BIN 00068684 - 000686d8 (p1); 80067100: afb00010 sw r16,0x0010(r29) 80067104: 3c028009 lui r2,0x8009 80067108: 8c42e53c lw r2,-0x1ac4(r2) # *0x8008e53c 8006710c: 00000000 nop 80067110: 30420001 andi r2,r2,0x0001 # *0x8008e53c & 1 80067114: 10400030 beq r2,r0,0x800671d8 # if (*0x8008e53c & 1) { 80067118: 00000000 nop 8006711c: 3c108008 lui r16,0x8008 80067120: 26106018 addiu r16,r16,0x6018 # 0x80086018 80067124: 26110040 addiu r17,r16,0x0040 # 0x80086058 # do { 80067128: 3c048005 lui r4,0x8005 8006712c: 2484eaf4 addiu r4,r4,-0x150c # file to open header 80067130: 0c00478e jal 0x80011e38 # Open File to RAM Centre (0x8004eaf4); // Name menu crashes game if removed. Can't advance past first Alazlam text either without hitting Start (then it crashes) 80067134: 00000000 nop # // Something to do with loading files? Also called elsewhere... 80067138: 0c01a2dd jal 0x80068b74 # OPEN.BIN 00068b74 - 00068bac (); // No graphical updates if removed, softlocks instead of playing video. Picking menu options also softlocks. 8006713c: 00000000 nop # // Birthday menu: Softlock, menu graphics messed up 80067140: 0c019d21 jal 0x80067484 # OPEN.BIN 00067484 - 000675b8 (); // No video for FMV if removed (audio still plays, Start button still skips) 80067144: 00000000 nop # // Birthday menu: No discernable effect 80067148: 0c01a153 jal 0x8006854c # OPEN.BIN 0x6854c (); // No discernable effect if removed 8006714c: 00000000 nop 80067150: 0c01a7ad jal 0x80069eb4 # ? 0x69eb4 (); // If removed, no graphical updates at all (stuck on titlescreen) and button input doesn't work whatsoever. 80067154: 00000000 nop # // Birthday menu: Button input doesn't work whatsoever. 80067158: 3c058008 lui r5,0x8008 8006715c: 24a55f44 addiu r5,r5,0x5f44 # 0x80085f44 80067160: 3c048005 lui r4,0x8005 80067164: 8c84e5bc lw r4,-0x1a44(r4) # *0x8004e5bc 80067168: 3c068008 lui r6,0x8008 8006716c: 8cc65fc4 lw r6,0x5fc4(r6) # *0x80085fc4 80067170: 00042180 sll r4,r4,0x06 # *0x8004e5bc * 64 # // If below routine removed, birthday menu won't load (softlock), and no titlescreen menu graphics. 80067174: 0c01a334 jal 0x80068cd0 # OPEN.BIN 000698c0 - 000699d0 ((*0x8004e5bc * 64) + 0x80086018, 0x80085f44, *0x80085fc4); 80067178: 00902021 addu r4,r4,r16 # (*0x8004e5bc * 64) + 0x80086018 8006717c: 3c048005 lui r4,0x8005 80067180: 8c84e5bc lw r4,-0x1a44(r4) # *0x8004e5bc 80067184: 00000000 nop 80067188: 00042180 sll r4,r4,0x06 # *0x8004e5bc * 64 8006718c: 00912021 addu r4,r4,r17 # (*0x8004e5bc * 64) + 0x80086058 80067190: 0c00930e jal 0x80024c38 # SYS DrawOtag ((*0x8004e5bc * 64) + 0x80086054); // Can't see menus if removed 80067194: 2484fffc addiu r4,r4,-0x0004 # (*0x8004e5bc * 64) + 0x80086054 80067198: 0c0091b5 jal 0x800246d4 # SYS DrawSync (0); // wait until drawing is done. 8006719c: 00002021 addu r4,r0,r0 800671a0: 0c019f61 jal 0x80067d84 # Button Input Related (0x67d84) (); 800671a4: 00000000 nop 800671a8: 0c0076ea jal 0x8001dba8 # VSync call (0); // Button input extremely fast if removed, no screen transitions, music plays at wrong speed 800671ac: 00002021 addu r4,r0,r0 800671b0: 0c019f07 jal 0x80067c1c # OPEN.BIN 00067c1c - 00067d80 (); // No graphical updates if removed 800671b4: 00000000 nop 800671b8: 0c01127b jal 0x800449ec # 000449ec - 000449f4 (); // jr r31 800671bc: 00000000 nop 800671c0: 3c028009 lui r2,0x8009 800671c4: 8c42e53c lw r2,-0x1ac4(r2) # *0x8008e53c 800671c8: 00000000 nop 800671cc: 30420001 andi r2,r2,0x0001 # *0x8008e53c & 1 800671d0: 1440ffd5 bne r2,r0,0x80067128 # } while (*0x8008e53c & 1); 800671d4: 00000000 nop # } 800671d8: 0c00918e jal 0x80024638 # SYS SetDispMask (0); 800671dc: 00002021 addu r4,r0,r0 800671e0: 340400c0 ori r4,r0,0x00c0 800671e4: 0c01a18e jal 0x80068638 # OPEN.BIN 00068638 - 00068680 (0xc0, 0x78); 800671e8: 34050078 ori r5,r0,0x0078 800671ec: 3c028008 lui r2,0x8008 800671f0: 8c4256f4 lw r2,0x56f4(r2) # return *0x800856f4; 800671f4: 8fbf0018 lw r31,0x0018(r29) 800671f8: 8fb10014 lw r17,0x0014(r29) 800671fc: 8fb00010 lw r16,0x0010(r29) 80067200: 27bd0020 addiu r29,r29,0x0020 80067204: 03e00008 jr r31 80067208: 00000000 nop