Button Input Related? (0x68268)
Jump to navigation
Jump to search
# ROUTINE: ? 0x68268 # Checks for button input? # Parameters: # r4 = (in_buttonInput) Button input to check against? 80068268: 3c028008 lui r2,0x8008 8006826c: 8c4255a4 lw r2,0x55a4(r2) # newButtonInput 80068270: 00000000 nop 80068274: 00441024 and r2,r2,r4 # newButtonInput & in_buttonInput 80068278: 1040000b beq r2,r0,0x800682a8 # if (newButtonInput & in_buttonInput) { // if newButtonInput contains in_buttonInput 8006827c: 00000000 nop 80068280: 3c018008 lui r1,0x8008 80068284: ac20642c sw r0,0x642c(r1) # *0x8008642c = 0 80068288: 3c018008 lui r1,0x8008 8006828c: ac206428 sw r0,0x6428(r1) # *0x80086428 = 0 80068290: 3c018008 lui r1,0x8008 80068294: ac206424 sw r0,0x6424(r1) # *0x80086424 = 0 80068298: 3c018008 lui r1,0x8008 8006829c: ac206420 sw r0,0x6420(r1) # *0x80086420 = 0 800682a0: 0801a0df j 0x8006837c # return newButtonInput & in_buttonInput; 800682a4: 00000000 nop # } 800682a8: 30821000 andi r2,r4,0x1000 # skipNextSection = false 800682ac: 10400019 beq r2,r0,0x80068314 # if (in_buttonInput & 0x1000) { // Up button 800682b0: 30824000 andi r2,r4,0x4000 800682b4: 3c028008 lui r2,0x8008 800682b8: 8c4251bc lw r2,0x51bc(r2) # *0x800851bc 800682bc: 00000000 nop 800682c0: 30421000 andi r2,r2,0x1000 # *0x800851bc & 0x1000 800682c4: 10400010 beq r2,r0,0x80068308 # if (*0x800851bc & 0x1000) { 800682c8: 00000000 nop 800682cc: 3c068008 lui r6,0x8008 800682d0: 24c66420 addiu r6,r6,0x6420 # 0x80086420 800682d4: 8cc30000 lw r3,0x0000(r6) # *0x80086420 800682d8: 3c028008 lui r2,0x8008 800682dc: 8c426418 lw r2,0x6418(r2) # *0x80086418 800682e0: 24650001 addiu r5,r3,0x0001 # *0x80086420 + 1 800682e4: 0045102a slt r2,r2,r5 800682e8: 10400009 beq r2,r0,0x80068310 800682ec: acc50000 sw r5,0x0000(r6) # *0x80086420 = *0x80086420 + 1 # if (*0x80086418 < *0x80086420) { 800682f0: 3c038008 lui r3,0x8008 800682f4: 8c63641c lw r3,0x641c(r3) # *0x8008641c 800682f8: 34021000 ori r2,r0,0x1000 # 0x1000 800682fc: 00a31823 subu r3,r5,r3 # *0x80086420 - *0x8008641c 80068300: 0801a0df j 0x8006837c 80068304: acc30000 sw r3,0x0000(r6) # *0x80086420 = *0x80086420 - *0x8008641c # return 0x1000; # } else { # skipNextSection = true # } # } # if (not (skipNextSection)) { 80068308: 3c018008 lui r1,0x8008 8006830c: ac206420 sw r0,0x6420(r1) # *0x80086420 = 0; # } 80068310: 30824000 andi r2,r4,0x4000 # } 80068314: 10400019 beq r2,r0,0x8006837c # if (in_buttonInput & 0x4000) { // Down button 80068318: 00001021 addu r2,r0,r0 8006831c: 3c028008 lui r2,0x8008 80068320: 8c4251bc lw r2,0x51bc(r2) # *0x800851bc 80068324: 00000000 nop 80068328: 30424000 andi r2,r2,0x4000 # *0x800851bc & 0x4000 8006832c: 10400010 beq r2,r0,0x80068370 # if (*0x800851bc & 0x4000) { 80068330: 00000000 nop 80068334: 3c058008 lui r5,0x8008 80068338: 24a56424 addiu r5,r5,0x6424 # 0x80086424 8006833c: 8ca30000 lw r3,0x0000(r5) # *0x80086424 80068340: 3c028008 lui r2,0x8008 80068344: 8c426418 lw r2,0x6418(r2) # *0x80086418 80068348: 24640001 addiu r4,r3,0x0001 # *0x80086424 + 1 8006834c: 0044102a slt r2,r2,r4 80068350: 10400009 beq r2,r0,0x80068378 80068354: aca40000 sw r4,0x0000(r5) # *0x80086424 = *0x80086424 + 1 # if (*0x80086418 >= *0x80086424) return 0; 80068358: 3c038008 lui r3,0x8008 8006835c: 8c63641c lw r3,0x641c(r3) # *0x8008641c 80068360: 34024000 ori r2,r0,0x4000 # 0x4000 80068364: 00831823 subu r3,r4,r3 # *0x80086424 - *0x8008641c 80068368: 0801a0df j 0x8006837c 8006836c: aca30000 sw r3,0x0000(r5) # *0x80086424 = *0x80086424 - *0x8008641c # return 0x4000; # } 80068370: 3c018008 lui r1,0x8008 80068374: ac206424 sw r0,0x6424(r1) # *0x80086424 = 0 # } 80068378: 00001021 addu r2,r0,r0 # return 0; 8006837c: 03e00008 jr r31 80068380: 00000000 nop