Image Loading Setup (0xfdaa4)
Jump to navigation
Jump to search
# ROUTINE: Image loading setup (0xfdaa4) # This routine is an analog to Image Loading Setup (0x14a5e8) in BATTLE.BIN. # Parameters: # r4 = (displayPointer) Reference to struct for image display: 52 bytes 800fdaa4: 27bdffe8 addiu r29,r29,-0x0018 800fdaa8: 3c028015 lui r2,0x8015 800fdaac: 944232d6 lhu r2,0x32d6(r2) # 0x801532d6 800fdab0: 00803821 addu r7,r4,r0 # displayPointer 800fdab4: 10400005 beq r2,r0,0x800fdacc # if (0x801532d6 != 0) { 800fdab8: afbf0010 sw r31,0x0010(r29) 800fdabc: 0c0092f6 jal 0x80024bd8 # SYS DrawPrim (displayPointer); 800fdac0: 00000000 nop 800fdac4: 0803f6c3 j 0x800fdb0c 800fdac8: 00000000 nop # } else { 800fdacc: 3c0400ff lui r4,0x00ff 800fdad0: 3484ffff ori r4,r4,0xffff # 0x00ffffff 800fdad4: 3c06ff00 lui r6,0xff00 # 0xff000000 800fdad8: 3c05801d lui r5,0x801d 800fdadc: 8ca5d814 lw r5,-0x27ec(r5) # *0x801cd814 800fdae0: 8ce30000 lw r3,0x0000(r7) # *displayPointer 800fdae4: 8ca20000 lw r2,0x0000(r5) # **0x801cd814 800fdae8: 00661824 and r3,r3,r6 # *displayPointer & 0xff000000 800fdaec: 00441024 and r2,r2,r4 # **0x801cd814 & 0x00ffffff 800fdaf0: 00621825 or r3,r3,r2 # (*displayPointer & 0xff000000) | (**0x801cd814 & 0x00ffffff) 800fdaf4: ace30000 sw r3,0x0000(r7) # *displayPointer = (*displayPointer & 0xff000000) | (**0x801cd814 & 0x00ffffff) 800fdaf8: 8ca20000 lw r2,0x0000(r5) # **0x801cd814 800fdafc: 00e42024 and r4,r7,r4 # displayPointer & 0x00ffffff 800fdb00: 00461024 and r2,r2,r6 # **0x801cd814 & 0xff000000 800fdb04: 00441025 or r2,r2,r4 # (**0x801cd814 & 0xff000000) | (displayPointer & 0x00ffffff) 800fdb08: aca20000 sw r2,0x0000(r5) # *0x801cd814 = (**0x801cd814 & 0xff000000) | (displayPointer & 0x00ffffff) # } 800fdb0c: 8fbf0010 lw r31,0x0010(r29) 800fdb10: 27bd0018 addiu r29,r29,0x0018 800fdb14: 03e00008 jr r31 800fdb18: 00000000 nop