? 0x12df98

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
#   ROUTINE: ? 0x12df98
#   Deals with some things in events. 
#   *0x801697d0 for new button input?
#       Parameters:
#           r4 = (Button input)

8012df98: 27bdffe8 addiu r29,r29,-0x0018
8012df9c: afb00010 sw r16,0x0010(r29)
8012dfa0: 00808021 addu r16,r4,r0
8012dfa4: 1200000a beq r16,r0,0x8012dfd0
8012dfa8: afbf0014 sw r31,0x0014(r29)
8012dfac: 0c04b721 jal 0x8012dc84
8012dfb0: 00000000 nop
8012dfb4: 1040000c beq r2,r0,0x8012dfe8
8012dfb8: 00000000 nop
8012dfbc: 0c04ed64 jal 0x8013b590                   #   ROUTINE: Get Script Variable (0x29)
8012dfc0: 34040029 ori r4,r0,0x0029                 #   0x29
8012dfc4: 30425000 andi r2,r2,0x5000
8012dfc8: 10400007 beq r2,r0,0x8012dfe8
8012dfcc: 00000000 nop
8012dfd0: 3c018017 lui r1,0x8017
8012dfd4: ac20d9a8 sw r0,-0x2658(r1)
8012dfd8: 3c018017 lui r1,0x8017
8012dfdc: ac20d9ac sw r0,-0x2654(r1)
8012dfe0: 3c018017 lui r1,0x8017
8012dfe4: ac20d9b0 sw r0,-0x2650(r1)
8012dfe8: 3c028017 lui r2,0x8017
8012dfec: 8c42d9a0 lw r2,-0x2660(r2)                #   oldButtonInput = *0x8016d9a0
8012dff0: 3c018017 lui r1,0x8017
8012dff4: ac30d9a0 sw r16,-0x2660(r1)               #   *0x8016d9a0 = (Button input)
8012dff8: 3c018017 lui r1,0x8017
8012dffc: ac2097d0 sw r0,-0x6830(r1)
8012e000: 3c018017 lui r1,0x8017
8012e004: ac22d9a4 sw r2,-0x265c(r1)                #   *0x8016d9a4 = oldButtonInput
8012e008: 14500003 bne r2,r16,0x8012e018
8012e00c: 3205f00c andi r5,r16,0xf00c
                                                    #   if ((oldButtonInput != (Button input))
8012e010: 14a00009 bne r5,r0,0x8012e038             #       or (((Button input) & 0xf00c) == 0) {
8012e014: 00000000 nop
8012e018: 00021027 nor r2,r0,r2                     #           binary_not(oldButtonInput)
8012e01c: 00501024 and r2,r2,r16                    #           newButtonInput = (Button input) & binary_not(oldButtonInput)        // Only gets buttons that weren't pressed before
8012e020: 3c018017 lui r1,0x8017
8012e024: ac2297d0 sw r2,-0x6830(r1)                #           *0x801697d0 = (something based on button input)
8012e028: 3c018017 lui r1,0x8017
8012e02c: ac20d9a8 sw r0,-0x2658(r1)                #           *0x8016d9a8 = 0
8012e030: 0804b85f j 0x8012e17c                     #       return
8012e034: 00000000 nop
                                                    #   }
8012e038: 3c028004 lui r2,0x8004
8012e03c: 904273a1 lbu r2,0x73a1(r2)
8012e040: 3c038016 lui r3,0x8016
8012e044: 8c635f88 lw r3,0x5f88(r3)
8012e048: 00000000 nop
8012e04c: 0043001a div r2,r3
8012e050: 00002012 mflo r4
8012e054: 3c028017 lui r2,0x8017
8012e058: 8c42d9a8 lw r2,-0x2658(r2)
8012e05c: 00000000 nop
8012e060: 24420001 addiu r2,r2,0x0001
8012e064: 3c018017 lui r1,0x8017
8012e068: ac22d9a8 sw r2,-0x2658(r1)
8012e06c: 14440003 bne r2,r4,0x8012e07c
8012e070: 00000000 nop
8012e074: 3c018017 lui r1,0x8017
8012e078: ac2597d0 sw r5,-0x6830(r1)
8012e07c: 0044102b sltu r2,r2,r4
8012e080: 1440003a bne r2,r0,0x8012e16c
8012e084: 00000000 nop
8012e088: 3c048004 lui r4,0x8004
8012e08c: 908473a2 lbu r4,0x73a2(r4)
8012e090: 00000000 nop
8012e094: 0083001a div r4,r3
8012e098: 00002012 mflo r4
8012e09c: 3c028017 lui r2,0x8017
8012e0a0: 8c42d9ac lw r2,-0x2654(r2)
8012e0a4: 3c038017 lui r3,0x8017
8012e0a8: 8c63d9b0 lw r3,-0x2650(r3)
8012e0ac: 24420001 addiu r2,r2,0x0001
8012e0b0: 24630001 addiu r3,r3,0x0001
8012e0b4: 3c018017 lui r1,0x8017
8012e0b8: ac22d9ac sw r2,-0x2654(r1)
8012e0bc: 3c018017 lui r1,0x8017
8012e0c0: ac23d9b0 sw r3,-0x2650(r1)
8012e0c4: 0044102b sltu r2,r2,r4
8012e0c8: 14400008 bne r2,r0,0x8012e0ec
8012e0cc: 32020080 andi r2,r16,0x0080
8012e0d0: 3c018017 lui r1,0x8017
8012e0d4: ac20d9ac sw r0,-0x2654(r1)
8012e0d8: 14400002 bne r2,r0,0x8012e0e4
8012e0dc: 3202a000 andi r2,r16,0xa000
8012e0e0: 3202f000 andi r2,r16,0xf000
8012e0e4: 3c018017 lui r1,0x8017
8012e0e8: ac2297d0 sw r2,-0x6830(r1)
8012e0ec: 3c038004 lui r3,0x8004
8012e0f0: 906373a3 lbu r3,0x73a3(r3)
8012e0f4: 3c028016 lui r2,0x8016
8012e0f8: 8c425f88 lw r2,0x5f88(r2)
8012e0fc: 00000000 nop
8012e100: 0062001a div r3,r2
8012e104: 00001812 mflo r3
8012e108: 3c028017 lui r2,0x8017
8012e10c: 8c42d9b0 lw r2,-0x2650(r2)
8012e110: 00000000 nop
8012e114: 0043102b sltu r2,r2,r3
8012e118: 14400018 bne r2,r0,0x8012e17c
8012e11c: 00000000 nop
8012e120: 3c048017 lui r4,0x8017
8012e124: 8c84d9a0 lw r4,-0x2660(r4)
8012e128: 3c018017 lui r1,0x8017
8012e12c: ac20d9b0 sw r0,-0x2650(r1)
8012e130: 30820080 andi r2,r4,0x0080
8012e134: 10400005 beq r2,r0,0x8012e14c
8012e138: 3082500c andi r2,r4,0x500c
8012e13c: 3c038017 lui r3,0x8017
8012e140: 8c6397d0 lw r3,-0x6830(r3)
8012e144: 0804b857 j 0x8012e15c
8012e148: 00431025 or r2,r2,r3
8012e14c: 3c038017 lui r3,0x8017
8012e150: 8c6397d0 lw r3,-0x6830(r3)                #   newButtonInput = *0x801697d0
8012e154: 3082000c andi r2,r4,0x000c                #   *0x8016d9a0 & 0x0c
8012e158: 00431025 or r2,r2,r3                      #   (*0x8016d9a0 & 0x0c) | newButtonInput
8012e15c: 3c018017 lui r1,0x8017
8012e160: ac2297d0 sw r2,-0x6830(r1)                #   *0x801697d0 = (*0x8016d9a0 & 0x0c) | newButtonInput
8012e164: 0804b85f j 0x8012e17c
8012e168: 00000000 nop
8012e16c: 3c018017 lui r1,0x8017
8012e170: ac20d9ac sw r0,-0x2654(r1)
8012e174: 3c018017 lui r1,0x8017
8012e178: ac20d9b0 sw r0,-0x2650(r1)
8012e17c: 8fbf0014 lw r31,0x0014(r29)
8012e180: 8fb00010 lw r16,0x0010(r29)
8012e184: 27bd0018 addiu r29,r29,0x0018
8012e188: 03e00008 jr r31
8012e18c: 00000000 nop