BUNIT.OUT Copy Unit Data to Status Billboard
(Redirected from BUNIT.OUT 001c6854 - 001c6e04)
Jump to navigation
Jump to search
#See also: #ATTACK.OUT Copy Unit Data to Status Billboard #BATTLE.BIN Copy Unit Data to Status Billboard #WORLD.BIN Copy Unit Data to Status Billboard #WORLD.BIN Load party data into Formation screen data
001c6854: 27bdffd0 addiu r29,r29,-0x0030 # 001c6858: afb10014 sw r17,0x0014(r29) # 001c685c: 00808821 addu r17,r4,r0 #r17 = r4 (Unit's Data Pointer) 001c6860: afb20018 sw r18,0x0018(r29) 001c6864: 00a09021 addu r18,r5,r0 001c6868: 02402021 addu r4,r18,r0 001c686c: 00002821 addu r5,r0,r0 001c6870: 3406010c ori r6,r0,0x010c 001c6874: afbf0028 sw r31,0x0028(r29) 001c6878: afb50024 sw r21,0x0024(r29) 001c687c: afb40020 sw r20,0x0020(r29) 001c6880: afb3001c sw r19,0x001c(r29) 001c6884: 0c0088bf jal 0x000222fc #0002228c - 00022b94 KERNEL memset 001c6888: afb00010 sw r16,0x0010(r29) 001c688c: 92220022 lbu r2,0x0022(r17) 001c6890: 00000000 nop 001c6894: 2c420064 sltiu r2,r2,0x0064 001c6898: 10400002 beq r2,r0,0x001c68a4 001c689c: 34030063 ori r3,r0,0x0063 001c68a0: 92230022 lbu r3,0x0022(r17) 001c68a4: 00000000 nop 001c68a8: a6430000 sh r3,0x0000(r18) 001c68ac: 922201ba lbu r2,0x01ba(r17) 001c68b0: 00000000 nop 001c68b4: 30420030 andi r2,r2,0x0030 001c68b8: 10400002 beq r2,r0,0x001c68c4 001c68bc: 34020001 ori r2,r0,0x0001 001c68c0: a6420002 sh r2,0x0002(r18) 001c68c4: 922201ba lbu r2,0x01ba(r17) 001c68c8: 00000000 nop 001c68cc: 30420038 andi r2,r2,0x0038 001c68d0: 14400002 bne r2,r0,0x001c68dc 001c68d4: 34020002 ori r2,r0,0x0002 001c68d8: a6420002 sh r2,0x0002(r18) 001c68dc: 922201b8 lbu r2,0x01b8(r17) 001c68e0: 00000000 nop 001c68e4: 10400003 beq r2,r0,0x001c68f4 001c68e8: 00000000 nop 001c68ec: 34020003 ori r2,r0,0x0003 001c68f0: a6420002 sh r2,0x0002(r18) 001c68f4: 0c060d2f jal 0x001834bc #Check some list for Unit Battle ID 001c68f8: 02202021 addu r4,r17,r0 001c68fc: 00408021 addu r16,r2,r0 001c6900: 06000002 bltz r16,0x001c690c 001c6904: 2402ffff addiu r2,r0,-0x0001 001c6908: 26020001 addiu r2,r16,0x0001 001c690c: a6420004 sh r2,0x0004(r18) 001c6910: 92220021 lbu r2,0x0021(r17) 001c6914: 00000000 nop 001c6918: 2c420064 sltiu r2,r2,0x0064 001c691c: 10400002 beq r2,r0,0x001c6928 001c6920: 34030063 ori r3,r0,0x0063 001c6924: 92230021 lbu r3,0x0021(r17) 001c6928: 00000000 nop 001c692c: a6430008 sh r3,0x0008(r18) 001c6930: 92220001 lbu r2,0x0001(r17) 001c6934: 00000000 nop 001c6938: a642000a sh r2,0x000a(r18) 001c693c: 96220028 lhu r2,0x0028(r17) 001c6940: 00000000 nop 001c6944: 2c4203e8 sltiu r2,r2,0x03e8 001c6948: 10400002 beq r2,r0,0x001c6954 001c694c: 340303e7 ori r3,r0,0x03e7 001c6950: 96230028 lhu r3,0x0028(r17) 001c6954: 00000000 nop 001c6958: a643000c sh r3,0x000c(r18) 001c695c: 9622002a lhu r2,0x002a(r17) 001c6960: 00000000 nop 001c6964: 2c4203e8 sltiu r2,r2,0x03e8 001c6968: 10400002 beq r2,r0,0x001c6974 001c696c: 340303e7 ori r3,r0,0x03e7 001c6970: 9623002a lhu r3,0x002a(r17) 001c6974: 00000000 nop 001c6978: a6430010 sh r3,0x0010(r18) 001c697c: 9622002c lhu r2,0x002c(r17) 001c6980: 00000000 nop 001c6984: 2c4203e8 sltiu r2,r2,0x03e8 001c6988: 10400002 beq r2,r0,0x001c6994 001c698c: 340303e7 ori r3,r0,0x03e7 001c6990: 9623002c lhu r3,0x002c(r17) 001c6994: 00000000 nop 001c6998: a6430012 sh r3,0x0012(r18) 001c699c: 9622002e lhu r2,0x002e(r17) 001c69a0: 00000000 nop 001c69a4: 2c4203e8 sltiu r2,r2,0x03e8 001c69a8: 10400002 beq r2,r0,0x001c69b4 001c69ac: 340303e7 ori r3,r0,0x03e7 001c69b0: 9623002e lhu r3,0x002e(r17) 001c69b4: 00000000 nop 001c69b8: a6430016 sh r3,0x0016(r18) 001c69bc: 92230186 lbu r3,0x0186(r17) 001c69c0: 34020001 ori r2,r0,0x0001 001c69c4: 10620002 beq r3,r2,0x001c69d0 001c69c8: 34040064 ori r4,r0,0x0064 001c69cc: 92240039 lbu r4,0x0039(r17) 001c69d0: 00000000 nop 001c69d4: 28820065 slti r2,r4,0x0065 001c69d8: 14400003 bne r2,r0,0x001c69e8 001c69dc: a6440018 sh r4,0x0018(r18) 001c69e0: 34020064 ori r2,r0,0x0064 001c69e4: a6420018 sh r2,0x0018(r18) 001c69e8: 34020064 ori r2,r0,0x0064 001c69ec: a642001c sh r2,0x001c(r18) 001c69f0: 92220002 lbu r2,0x0002(r17) 001c69f4: 00000000 nop 001c69f8: a642001e sh r2,0x001e(r18) 001c69fc: 92220001 lbu r2,0x0001(r17) 001c6a00: 00000000 nop 001c6a04: a6420022 sh r2,0x0022(r18) 001c6a08: 92220003 lbu r2,0x0003(r17) 001c6a0c: 00000000 nop 001c6a10: a6420024 sh r2,0x0024(r18) 001c6a14: 92220024 lbu r2,0x0024(r17) 001c6a18: 00000000 nop 001c6a1c: a6420026 sh r2,0x0026(r18) 001c6a20: 92220026 lbu r2,0x0026(r17) 001c6a24: 00000000 nop 001c6a28: a6420028 sh r2,0x0028(r18) 001c6a2c: 96220008 lhu r2,0x0008(r17) 001c6a30: 00000000 nop 001c6a34: 00021302 srl r2,r2,0x0c 001c6a38: a642002a sh r2,0x002a(r18) 001c6a3c: 92220001 lbu r2,0x0001(r17) 001c6a40: 00000000 nop 001c6a44: a642002c sh r2,0x002c(r18) 001c6a48: 9222003a lbu r2,0x003a(r17) 001c6a4c: 00000000 nop 001c6a50: a6420030 sh r2,0x0030(r18) 001c6a54: 92220038 lbu r2,0x0038(r17) 001c6a58: 00000000 nop 001c6a5c: a6420032 sh r2,0x0032(r18) 001c6a60: 9222003b lbu r2,0x003b(r17) 001c6a64: 00000000 nop 001c6a68: a6420034 sh r2,0x0034(r18) 001c6a6c: 9222003c lbu r2,0x003c(r17) 001c6a70: 00000000 nop 001c6a74: a6420036 sh r2,0x0036(r18) 001c6a78: 9222003d lbu r2,0x003d(r17) 001c6a7c: 00000000 nop 001c6a80: a6420038 sh r2,0x0038(r18) 001c6a84: 9222003e lbu r2,0x003e(r17) 001c6a88: 00000000 nop 001c6a8c: a642003a sh r2,0x003a(r18) 001c6a90: 9222003f lbu r2,0x003f(r17) 001c6a94: 00000000 nop 001c6a98: a642003c sh r2,0x003c(r18) 001c6a9c: 92220012 lbu r2,0x0012(r17) 001c6aa0: 00000000 nop 001c6aa4: 24420050 addiu r2,r2,0x0050 001c6aa8: 304200ff andi r2,r2,0x00ff 001c6aac: 2c500030 sltiu r16,r2,0x0030 001c6ab0: a650003e sh r16,0x003e(r18) 001c6ab4: 92220036 lbu r2,0x0036(r17) 001c6ab8: 00000000 nop 001c6abc: a6420042 sh r2,0x0042(r18) 001c6ac0: 92220043 lbu r2,0x0043(r17) 001c6ac4: 00000000 nop 001c6ac8: a6420044 sh r2,0x0044(r18) 001c6acc: 92230041 lbu r3,0x0041(r17) 001c6ad0: 92240042 lbu r4,0x0042(r17) 001c6ad4: 00000000 nop 001c6ad8: 0064102b sltu r2,r3,r4 001c6adc: 10400002 beq r2,r0,0x001c6ae8 001c6ae0: 00000000 nop 001c6ae4: 00801821 addu r3,r4,r0 001c6ae8: a6430046 sh r3,0x0046(r18) 001c6aec: 92220040 lbu r2,0x0040(r17) 001c6af0: 00000000 nop 001c6af4: a6420048 sh r2,0x0048(r18) 001c6af8: 92220037 lbu r2,0x0037(r17) 001c6afc: a640004e sh r0,0x004e(r18) #Store 0 M-C-Ev to Billboard 001c6b00: a642004c sh r2,0x004c(r18) 001c6b04: 92230045 lbu r3,0x0045(r17) 001c6b08: 92240046 lbu r4,0x0046(r17) 001c6b0c: 00000000 nop 001c6b10: 0064102b sltu r2,r3,r4 001c6b14: 10400002 beq r2,r0,0x001c6b20 001c6b18: 00000000 nop 001c6b1c: 00801821 addu r3,r4,r0 001c6b20: a6430050 sh r3,0x0050(r18) 001c6b24: 92220044 lbu r2,0x0044(r17) 001c6b28: 8643003e lh r3,0x003e(r18) #Load Generic Monster flag from Billboard 001c6b2c: 00000000 nop # 001c6b30: 10600023 beq r3,r0,0x001c6bc0 #If Generic Monster /Else Branch 001c6b34: a6420052 sh r2,0x0052(r18) # 001c6b38: 92240012 lbu r4,0x0012(r17) #r4 = Unit's Primary Skillset 001c6b3c: 34050001 ori r5,r0,0x0001 #r5 = 1 001c6b40: 00008021 addu r16,r0,r0 #r16 = 0 (counter) 001c6b44: 0c01698e jal 0x0005a638 #Store Skillset's Abilities 001c6b48: 0240a021 addu r20,r18,r0 #r20 = Billboard pointer? 001c6b4c: 0040a821 addu r21,r2,r0 #r21 = Temporary Ability List Pointer 001c6b50: 02a09821 addu r19,r21,r0 #r19 = Temporary Ability List Pointer #Loop Start 001c6b54: 34020003 ori r2,r0,0x0003 #r2 = 3 001c6b58: 16020009 bne r16,r2,0x001c6b80 #If counter = 3 /Else Branch 001c6b5c: 00001821 addu r3,r0,r0 #r3 = 0 (used to skip saving to Billboard if unchanged) 001c6b60: 86a20006 lh r2,0x0006(r21) #Load 4th Ability ID in Temporary Ability List Pointer 001c6b64: 00000000 nop # 001c6b68: 1040000a beq r2,r0,0x001c6b94 #If not null /Else Branch 001c6b6c: 00000000 nop # 001c6b70: 0c06090c jal 0x00182430 #Monster Skill check prep 001c6b74: 02202021 addu r4,r17,r0 #r4 = r17 (Unit's Data Pointer) 001c6b78: 08071ae5 j 0x001c6b94 #Jump 001c6b7c: 0002182b sltu r3,r0,r2 #r3 = 1 if Monster Skill active 001c6b80: 86620000 lh r2,0x0000(r19) #Load Ability ID in Temporary Ability List Pointer 001c6b84: 00000000 nop # 001c6b88: 10400002 beq r2,r0,0x001c6b94 #If not null /Else Branch 001c6b8c: 00000000 nop # 001c6b90: 34030001 ori r3,r0,0x0001 #r3 = 1 001c6b94: 10600005 beq r3,r0,0x001c6bac #If r3 ≠ 0 /Else Branch 001c6b98: 26100001 addiu r16,r16,0x0001 #r16 counter++ 001c6b9c: 96620000 lhu r2,0x0000(r19) #Load Ability ID in Temporary Ability List Pointer 001c6ba0: 00000000 nop # 001c6ba4: a682005e sh r2,0x005e(r20) #Store Ability ID to Billboard 001c6ba8: 26940002 addiu r20,r20,0x0002 #Increment Billboard pointer to next slot? 001c6bac: 2a020004 slti r2,r16,0x0004 #Compare r16 counter to 4 001c6bb0: 1440ffe8 bne r2,r0,0x001c6b54 #Loop 3 times 001c6bb4: 26730002 addiu r19,r19,0x0002 #Increment Temporary Ability List Pointer to next Ability 001c6bb8: 08071b25 j 0x001c6c94 #Jump past non-Generic-Monster section below 001c6bbc: 00000000 nop # 001c6bc0: 9223001d lbu r3,0x001d(r17) 001c6bc4: 340200ff ori r2,r0,0x00ff 001c6bc8: 10620004 beq r3,r2,0x001c6bdc 001c6bcc: 00000000 nop 001c6bd0: 9222001d lbu r2,0x001d(r17) 001c6bd4: 08071afa j 0x001c6be8 001c6bd8: a6420054 sh r2,0x0054(r18) 001c6bdc: 9222001e lbu r2,0x001e(r17) 001c6be0: 00000000 nop 001c6be4: a6420054 sh r2,0x0054(r18) 001c6be8: 9223001f lbu r3,0x001f(r17) 001c6bec: 340200ff ori r2,r0,0x00ff 001c6bf0: 10620004 beq r3,r2,0x001c6c04 001c6bf4: 00000000 nop 001c6bf8: 9222001f lbu r2,0x001f(r17) 001c6bfc: 08071b04 j 0x001c6c10 001c6c00: a6420056 sh r2,0x0056(r18) 001c6c04: 92220020 lbu r2,0x0020(r17) 001c6c08: 00000000 nop 001c6c0c: a6420056 sh r2,0x0056(r18) 001c6c10: 9222001a lbu r2,0x001a(r17) 001c6c14: 00000000 nop 001c6c18: a6420058 sh r2,0x0058(r18) 001c6c1c: 9222001b lbu r2,0x001b(r17) 001c6c20: 00008021 addu r16,r0,r0 001c6c24: a642005a sh r2,0x005a(r18) 001c6c28: 9222001c lbu r2,0x001c(r17) 001c6c2c: 02401821 addu r3,r18,r0 001c6c30: a642005c sh r2,0x005c(r18) 001c6c34: 84620054 lh r2,0x0054(r3) 001c6c38: 00000000 nop 001c6c3c: 284200fe slti r2,r2,0x00fe 001c6c40: 14400002 bne r2,r0,0x001c6c4c 001c6c44: 26100001 addiu r16,r16,0x0001 001c6c48: a4600054 sh r0,0x0054(r3) 001c6c4c: 2a020005 slti r2,r16,0x0005 001c6c50: 1440fff8 bne r2,r0,0x001c6c34 001c6c54: 24630002 addiu r3,r3,0x0002 001c6c58: 92220012 lbu r2,0x0012(r17) 001c6c5c: 00000000 nop 001c6c60: a642005e sh r2,0x005e(r18) 001c6c64: 92220013 lbu r2,0x0013(r17) 001c6c68: 00000000 nop 001c6c6c: a6420060 sh r2,0x0060(r18) 001c6c70: 96220014 lhu r2,0x0014(r17) 001c6c74: 00000000 nop 001c6c78: a6420062 sh r2,0x0062(r18) 001c6c7c: 96220016 lhu r2,0x0016(r17) 001c6c80: 00000000 nop 001c6c84: a6420064 sh r2,0x0064(r18) 001c6c88: 96220018 lhu r2,0x0018(r17) 001c6c8c: 00000000 nop 001c6c90: a6420066 sh r2,0x0066(r18) 001c6c94: 92240001 lbu r4,0x0001(r17) 001c6c98: 0c023388 jal 0x0008ce20 #0008ce20 - 0008ce74 001c6c9c: 00000000 nop 001c6ca0: a2420071 sb r2,0x0071(r18) 001c6ca4: 922201ba lbu r2,0x01ba(r17) 001c6ca8: 00000000 nop 001c6cac: a2420072 sb r2,0x0072(r18) 001c6cb0: 92220182 lbu r2,0x0182(r17) 001c6cb4: 00000000 nop 001c6cb8: a2420073 sb r2,0x0073(r18) 001c6cbc: 92250091 lbu r5,0x0091(r17) 001c6cc0: 26440054 addiu r4,r18,0x0054 001c6cc4: 0c0719e8 jal 0x001c67a0 #BUNIT.OUT 001c67a0 - 001c6830 001c6cc8: 30a50002 andi r5,r5,0x0002 001c6ccc: a6420040 sh r2,0x0040(r18) 001c6cd0: 92220006 lbu r2,0x0006(r17) 001c6cd4: 00000000 nop 001c6cd8: a2420070 sb r2,0x0070(r18) 001c6cdc: 92220000 lbu r2,0x0000(r17) 001c6ce0: 00000000 nop 001c6ce4: a2420074 sb r2,0x0074(r18) 001c6ce8: 92240003 lbu r4,0x0003(r17) 001c6cec: 0c071a0d jal 0x001c6834 #BUNIT.OUT Special Monster check 001c6cf0: 00000000 nop 001c6cf4: 14400009 bne r2,r0,0x001c6d1c 001c6cf8: 26240096 addiu r4,r17,0x0096 001c6cfc: 8642003e lh r2,0x003e(r18) 001c6d00: 00000000 nop 001c6d04: 14400006 bne r2,r0,0x001c6d20 001c6d08: 26450075 addiu r5,r18,0x0075 001c6d0c: 86430002 lh r3,0x0002(r18) 001c6d10: 34020001 ori r2,r0,0x0001 001c6d14: 14620006 bne r3,r2,0x001c6d30 001c6d18: 00000000 nop 001c6d1c: 26450075 addiu r5,r18,0x0075 001c6d20: 0c0088b7 jal 0x000222dc #0002228c - 00022b94 KERNEL bcopy 001c6d24: 34060003 ori r6,r0,0x0003 001c6d28: 08071b57 j 0x001c6d5c 001c6d2c: 26240099 addiu r4,r17,0x0099 001c6d30: 92250006 lbu r5,0x0006(r17) 001c6d34: 262400d2 addiu r4,r17,0x00d2 001c6d38: 0c017705 jal 0x0005dc14 #Calculate Unlocked Jobs 001c6d3c: 30a50080 andi r5,r5,0x0080 001c6d40: 00408021 addu r16,r2,r0 001c6d44: 00101403 sra r2,r16,0x10 001c6d48: a2420075 sb r2,0x0075(r18) 001c6d4c: 00101203 sra r2,r16,0x08 001c6d50: a2420076 sb r2,0x0076(r18) 001c6d54: a2500077 sb r16,0x0077(r18) 001c6d58: 26240099 addiu r4,r17,0x0099 001c6d5c: 26450078 addiu r5,r18,0x0078 001c6d60: 0c0088b7 jal 0x000222dc #0002228c - 00022b94 KERNEL bcopy 001c6d64: 34060039 ori r6,r0,0x0039 001c6d68: 262400d2 addiu r4,r17,0x00d2 001c6d6c: 264500b1 addiu r5,r18,0x00b1 001c6d70: 0c0088b7 jal 0x000222dc #0002228c - 00022b94 KERNEL bcopy 001c6d74: 3406000a ori r6,r0,0x000a 001c6d78: 262400dc addiu r4,r17,0x00dc 001c6d7c: 264500bc addiu r5,r18,0x00bc 001c6d80: 0c0088b7 jal 0x000222dc #0002228c - 00022b94 KERNEL bcopy 001c6d84: 34060028 ori r6,r0,0x0028 001c6d88: 26240104 addiu r4,r17,0x0104 001c6d8c: 264500e4 addiu r5,r18,0x00e4 001c6d90: 0c0088b7 jal 0x000222dc #0002228c - 00022b94 KERNEL bcopy 001c6d94: 34060028 ori r6,r0,0x0028 001c6d98: 00008021 addu r16,r0,r0 001c6d9c: 3403270f ori r3,r0,0x270f 001c6da0: 02402021 addu r4,r18,r0 001c6da4: 948200bc lhu r2,0x00bc(r4) 001c6da8: 00000000 nop 001c6dac: 2c422710 sltiu r2,r2,0x2710 001c6db0: 14400002 bne r2,r0,0x001c6dbc 001c6db4: 00000000 nop 001c6db8: a48300bc sh r3,0x00bc(r4) 001c6dbc: 948200e4 lhu r2,0x00e4(r4) 001c6dc0: 00000000 nop 001c6dc4: 2c422710 sltiu r2,r2,0x2710 001c6dc8: 14400002 bne r2,r0,0x001c6dd4 001c6dcc: 26100001 addiu r16,r16,0x0001 001c6dd0: a48300e4 sh r3,0x00e4(r4) 001c6dd4: 2a020014 slti r2,r16,0x0014 001c6dd8: 1440fff2 bne r2,r0,0x001c6da4 001c6ddc: 24840002 addiu r4,r4,0x0002 001c6de0: 8fbf0028 lw r31,0x0028(r29) 001c6de4: 8fb50024 lw r21,0x0024(r29) 001c6de8: 8fb40020 lw r20,0x0020(r29) 001c6dec: 8fb3001c lw r19,0x001c(r29) 001c6df0: 8fb20018 lw r18,0x0018(r29) 001c6df4: 8fb10014 lw r17,0x0014(r29) 001c6df8: 8fb00010 lw r16,0x0010(r29) 001c6dfc: 27bd0030 addiu r29,r29,0x0030 001c6e00: 03e00008 jr r31 001c6e04: 00000000 nop