Difference between revisions of "AI Targeting Matrix Analysis (0019b7b8)"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Created page with "<font face='Courier New'> 0019b754: 90830002 lbu r3,0x0002(r4) 0019b758: 3c02801a lui r2,0x801a 0019b75c: 904201fe lbu r2,0x01fe(r2) load map max X 0019b760: 00000000 ...")
 
Line 1: Line 1:
 
<font face='Courier New'>
 
<font face='Courier New'>
 
   
 
   
  0019b754: 90830002 lbu r3,0x0002(r4)
+
  0019b7b8: 3c02801a lui r2,0x801a
  0019b758: 3c02801a lui r2,0x801a
+
0019b7bc: 90420d7b lbu r2,0x0d7b(r2)
  0019b75c: 904201fe lbu r2,0x01fe(r2) load map max X
+
0019b7c0: 27bdffe0 addiu r29,r29,0xffe0
  0019b760: 00000000 nop
+
0019b7c4: afb10014 sw r17,0x0014(r29)
  0019b764: 00620018 mult r3,r2
+
0019b7c8: 3c11801a lui r17,0x801a
  0019b768: 90820001 lbu r2,0x0001(r4)
+
0019b7cc: 2631f3c4 addiu r17,r17,0xf3c4
  0019b76c: 90840000 lbu r4,0x0000(r4)
+
0019b7d0: afbf001c sw r31,0x001c(r29)
  0019b770: 00021200 sll r2,r2,0x08
+
0019b7d4: afb20018 sw r18,0x0018(r29)
  0019b774: 00001812 mflo r3
+
0019b7d8: 1440009e bne r2,r0,0x0019ba54
  0019b778: 00431021 addu r2,r2,r3
+
0019b7dc: afb00010 sw r16,0x0010(r29)
  0019b77c: 00441021 addu r2,r2,r4
+
0019b7e0: 3c04fdff lui r4,0xfdff
  0019b780: 000210c0 sll r2,r2,0x03
+
0019b7e4: 3484ffff ori r4,r4,0xffff
  0019b784: 3c018019 lui r1,0x8019
+
0019b7e8: 3c03801a lui r3,0x801a
  0019b788: 00220821 addu r1,r1,r2
+
0019b7ec: 8c630078 lw r3,0x0078(r3)              load flags
  0019b78c: 9022f8cc lbu r2,-0x0734(r1)
+
0019b7f0: 34020001 ori r2,r0,0x0001
  0019b790: 3c03801a lui r3,0x801a
+
0019b7f4: 3c01801a lui r1,0x801a
  0019b794: 8463f3c6 lh r3,-0x0c3a(r3)
+
0019b7f8: a022f3d9 sb r2,-0x0c27(r1)
  0019b798: 3042003f andi r2,r2,0x003f
+
0019b7fc: 3c01801a lui r1,0x801a
  0019b79c: 3c018006 lui r1,0x8006
+
0019b800: a020020d sb r0,0x020d(r1)
  0019b7a0: 00220821 addu r1,r1,r2
+
0019b804: 00641824 and r3,r3,r4               remove 0x02000000 flag
  0019b7a4: 9022e9d0 lbu r2,-0x1630(r1)
+
0019b808: 3c01801a lui r1,0x801a
  0019b7a8: 00000000 nop
+
0019b80c: ac230078 sw r3,0x0078(r1)
  0019b7ac: 00431026 xor r2,r2,r3
+
0019b810: 92250e49 lbu r5,0x0e49(r17)               load unit ID
  0019b7b0: 03e00008 jr r31
+
  0019b814: 3c048019 lui r4,0x8019
  0019b7b4: 2c420001 sltiu r2,r2,0x0001
+
0019b818: 248408cc addiu r4,r4,0x08cc
 +
0019b81c: 000518c0 sll r3,r5,0x03
 +
0019b820: 00651823 subu r3,r3,r5
 +
0019b824: 00031980 sll r3,r3,0x06
 +
0019b828: 00051100 sll r2,r5,0x04
 +
0019b82c: 2442182c addiu r2,r2,0x182c
 +
0019b830: 02228021 addu r16,r17,r2                r16 = ai decision data
 +
0019b834: 92020007 lbu r2,0x0007(r16)
 +
0019b838: 00000000 nop
 +
0019b83c: 30420010 andi r2,r2,0x0010
 +
0019b840: 144000a2 bne r2,r0,0x0019bacc          branch if untargetable
 +
0019b844: 00649021 addu r18,r3,r4
 +
  0019b848: 92220e2e lbu r2,0x0e2e(r17)            load acting unit ID
 +
0019b84c: 00000000 nop
 +
0019b850: 10a2009e beq r5,r2,0x0019bacc          branch if not same unit
 +
0019b854: 02402821 addu r5,r18,r0
 +
0019b858: 92240001 lbu r4,0x0001(r17)             load CT
 +
0019b85c: 0c067bc9 jal 0x0019ef24 [[Check if Status Should/Can be Added]]
 +
0019b860: 34060026 ori r6,r0,0x0026
 +
0019b864: 10400099 beq r2,r0,0x0019bacc            branch if not inflicting status (stop?)
 +
0019b868: 00000000 nop
 +
0019b86c: 92240e49 lbu r4,0x0e49(r17)            load ??
 +
0019b870: 0c067c36 jal 0x0019f0d8 [[See if ability should be used based on CT]]
 +
0019b874: 00000000 nop
 +
0019b878: 14400094 bne r2,r0,0x0019bacc
 +
0019b87c: 00000000 nop
 +
0019b880: 92020007 lbu r2,0x0007(r16)           
 +
  0019b884: 00000000 nop
 +
  0019b888: 30420020 andi r2,r2,0x0020
 +
  0019b88c: 10400007 beq r2,r0,0x0019b8ac            branch if not dead unit w/o reraise
 +
0019b890: 26250c74 addiu r5,r17,0x0c74
 +
 +
0019b894: 92300001 lbu r16,0x0001(r17)            load CT
 +
0019b898: 0c066722 jal 0x00199c88 [[00199c88 - 00199d1c]]
 +
0019b89c: 02402021 addu r4,r18,r0
 +
0019b8a0: 0050102a slt r2,r2,r16
 +
0019b8a4: 14400089 bne r2,r0,0x0019bacc
 +
0019b8a8: 26250c74 addiu r5,r17,0x0c74
 +
0019b8ac: 92240e49 lbu r4,0x0e49(r17)
 +
0019b8b0: 34020005 ori r2,r0,0x0005
 +
0019b8b4: 0c067ca9 jal 0x0019f2a4 [[Transfer Unit Coordinates to AI]]
 +
0019b8b8: a2220026 sb r2,0x0026(r17)               store ability uses weapon-specific animation?
 +
0019b8bc: 92230026 lbu r3,0x0026(r17)
 +
0019b8c0: 34020006 ori r2,r0,0x0006
 +
0019b8c4: 14620002 bne r3,r2,0x0019b8d0            branch if ability uses target-specific animation?
 +
0019b8c8: 34040001 ori r4,r0,0x0001
 +
0019b8cc: 34040003 ori r4,r0,0x0003
 +
0019b8d0: 0c06723b jal 0x0019c8ec [[0019c8ec - 0019cb90]]
 +
0019b8d4: 00002821 addu r5,r0,r0
 +
0019b8d8: 26240bdc addiu r4,r17,0x0bdc
 +
0019b8dc: 26250b4c addiu r5,r17,0x0b4c
 +
0019b8e0: 0c066ac2 jal 0x0019ab08 [[Transfer Halfword Values]]
 +
  0019b8e4: 34060048 ori r6,r0,0x0048
 +
0019b8e8: a2200e4a sb r0,0x0e4a(r17)
 +
0019b8ec: 92240e4a lbu r4,0x0e4a(r17)                    load unit ID
 +
0019b8f0: 00000000 nop
 +
0019b8f4: 02241021 addu r2,r17,r4
 +
0019b8f8: 90420c8d lbu r2,0x0c8d(r2)                    load targetable unit list
 +
0019b8fc: 00000000 nop
 +
0019b900: 10400069 beq r2,r0,0x0019baa8                branch if not targetable
 +
0019b904: 00000000 nop
 +
0019b908: 92220e49 lbu r2,0x0e49(r17)
 +
0019b90c: 00000000 nop
 +
0019b910: 10820065 beq r4,r2,0x0019baa8
 +
0019b914: 00000000 nop
 +
0019b918: 92220e2e lbu r2,0x0e2e(r17)                 load acting unit
 +
  0019b91c: 00000000 nop
 +
0019b920: 10820061 beq r4,r2,0x0019baa8                branch if unit is acting unit
 +
0019b924: 00000000 nop
 +
0019b928: 0c067c36 jal 0x0019f0d8 [[See if ability should be used based on CT]]
 +
0019b92c: 00000000 nop
 +
0019b930: 1440005d bne r2,r0,0x0019baa8
 +
  0019b934: 00000000 nop
 +
0019b938: 92240e4a lbu r4,0x0e4a(r17)                  load unit id
 +
0019b93c: 0c067976 jal 0x0019e5d8 [[AI Abiltiy Use Decisions]]
 +
0019b940: 00002821 addu r5,r0,r0
 +
0019b944: 34030001 ori r3,r0,0x0001
 +
  0019b948: 14430057 bne r2,r3,0x0019baa8
 +
0019b94c: 00000000 nop
 +
0019b950: 92230e4a lbu r3,0x0e4a(r17)
 +
0019b954: 92250e3a lbu r5,0x0e3a(r17)                    load map max X
 +
0019b958: 000310c0 sll r2,r3,0x03
 +
  0019b95c: 00431023 subu r2,r2,r3
 +
  0019b960: 00021180 sll r2,r2,0x06
 +
0019b964: 92430047 lbu r3,0x0047(r18)                      load X coordinate
 +
  0019b968: 3c018019 lui r1,0x8019
 +
  0019b96c: 00220821 addu r1,r1,r2
 +
  0019b970: 90220913 lbu r2,0x0913(r1)                       load X coordinate
 +
0019b974: 00031840 sll r3,r3,0x01                          X coordinate*2
 +
  0019b978: 00621823 subu r3,r3,r2                          X coordinate
 +
  0019b97c: a2230018 sb r3,0x0018(r17)                      store acting unit's X Coordinate
 +
0019b980: 92440048 lbu r4,0x0048(r18)                      load Y coordinate
 +
0019b984: 92230e4a lbu r3,0x0e4a(r17)                     load Y coordinate
 +
0019b988: 00042040 sll r4,r4,0x01
 +
0019b98c: 000310c0 sll r2,r3,0x03
 +
0019b990: 00431023 subu r2,r2,r3
 +
  0019b994: 00021180 sll r2,r2,0x06
 +
  0019b998: 3c018019 lui r1,0x8019
 +
  0019b99c: 00220821 addu r1,r1,r2
 +
  0019b9a0: 90230914 lbu r3,0x0914(r1)
 +
0019b9a4: 92220018 lbu r2,0x0018(r17)
 +
0019b9a8: 00832023 subu r4,r4,r3
 +
0019b9ac: 0045102b sltu r2,r2,r5
 +
0019b9b0: 1040003d beq r2,r0,0x0019baa8
 +
0019b9b4: a224001a sb r4,0x001a(r17)                          store Y coordinate
 +
0019b9b8: 9222001a lbu r2,0x001a(r17)
 +
0019b9bc: 92230e3b lbu r3,0x0e3b(r17)
 +
0019b9c0: 00000000 nop
 +
0019b9c4: 0043102b sltu r2,r2,r3
 +
0019b9c8: 10400037 beq r2,r0,0x0019baa8
 +
0019b9cc: 00000000 nop
 +
0019b9d0: a2200e4b sb r0,0x0e4b(r17)
 +
0019b9d4: 92230e2d lbu r3,0x0e2d(r17)
 +
0019b9d8: 92220e4b lbu r2,0x0e4b(r17)
 +
0019b9dc: 000320c0 sll r4,r3,0x03
 +
0019b9e0: 00832021 addu r4,r4,r3
 +
0019b9e4: 000420c0 sll r4,r4,0x03
 +
0019b9e8: 00912021 addu r4,r4,r17
 +
0019b9ec: 92230e4b lbu r3,0x0e4b(r17)
 +
0019b9f0: 24840a74 addiu r4,r4,0x0a74
 +
0019b9f4: a2220019 sb r2,0x0019(r17)                  store map level
 +
0019b9f8: 000310c0 sll r2,r3,0x03
 +
0019b9fc: 00431021 addu r2,r2,r3
 +
0019ba00: 00021080 sll r2,r2,0x02
 +
0019ba04: 9223001a lbu r3,0x001a(r17)
 +
0019ba08: 00441021 addu r2,r2,r4
 +
0019ba0c: 00031840 sll r3,r3,0x01
 +
0019ba10: 00621821 addu r3,r3,r2
 +
0019ba14: 94620000 lhu r2,0x0000(r3)
 +
0019ba18: 92230018 lbu r3,0x0018(r17)                  X coordinate
 +
0019ba1c: 00000000 nop
 +
0019ba20: 00621004 sllv r2,r2,r3
 +
0019ba24: 30428000 andi r2,r2,0x8000
 +
0019ba28: 10400016 beq r2,r0,0x0019ba84
 +
0019ba2c: 00000000 nop
 +
0019ba30: 0c066ec8 jal 0x0019bb20 [[0019bb20 - 0019bbb8]]
 +
0019ba34: 00000000 nop
 +
0019ba38: 34020001 ori r2,r0,0x0001
 +
0019ba3c: a2220014 sb r2,0x0014(r17)
 +
0019ba40: a2200ed8 sb r0,0x0ed8(r17)
 +
0019ba44: 0c066d3d jal 0x0019b4f4 [[0019b4f4 - 0019b6ac]]
 +
0019ba48: 26240e30 addiu r4,r17,0x0e30
 +
0019ba4c: 10400006 beq r2,r0,0x0019ba68
 +
0019ba50: 00000000 nop
 +
0019ba54: 0c067367 jal 0x0019cd9c [[0019cd9c - 0019d214]]
 +
0019ba58: 00000000 nop
 +
0019ba5c: 2403ffff addiu r3,r0,0xffff
 +
0019ba60: 10430028 beq r2,r3,0x0019bb04
 +
0019ba64: 2402ffff addiu r2,r0,0xffff
 +
0019ba68: 92220ed8 lbu r2,0x0ed8(r17)
 +
0019ba6c: 00000000 nop
 +
0019ba70: 14400004 bne r2,r0,0x0019ba84
 +
0019ba74: 34020001 ori r2,r0,0x0001
 +
0019ba78: a2220ed8 sb r2,0x0ed8(r17)
 +
0019ba7c: 08066e91 j 0x0019ba44
 +
0019ba80: a2200014 sb r0,0x0014(r17)
 +
0019ba84: 92220e4b lbu r2,0x0e4b(r17)
 +
0019ba88: 00000000 nop
 +
0019ba8c: 24420001 addiu r2,r2,0x0001
 +
0019ba90: a2220e4b sb r2,0x0e4b(r17)
 +
0019ba94: 92220e4b lbu r2,0x0e4b(r17)
 +
0019ba98: 00000000 nop
 +
0019ba9c: 2c420002 sltiu r2,r2,0x0002
 +
0019baa0: 1440ffcc bne r2,r0,0x0019b9d4
 +
0019baa4: 00000000 nop
 +
0019baa8: 92220e4a lbu r2,0x0e4a(r17)
 +
  0019baac: 00000000 nop
 +
  0019bab0: 24420001 addiu r2,r2,0x0001
 +
0019bab4: a2220e4a sb r2,0x0e4a(r17)
 +
0019bab8: 92220e4a lbu r2,0x0e4a(r17)
 +
  0019babc: 00000000 nop
 +
  0019bac0: 2c420015 sltiu r2,r2,0x0015
 +
0019bac4: 1440ff89 bne r2,r0,0x0019b8ec
 +
0019bac8: 00000000 nop
 +
 
 +
0019bacc: 92220e49 lbu r2,0x0e49(r17)
 +
0019bad0: 00000000 nop
 +
0019bad4: 24420001 addiu r2,r2,0x0001
 +
0019bad8: a2220e49 sb r2,0x0e49(r17)
 +
0019badc: 92220e49 lbu r2,0x0e49(r17)
 +
0019bae0: 00000000 nop
 +
0019bae4: 2c420015 sltiu r2,r2,0x0015
 +
0019bae8: 1440ff49 bne r2,r0,0x0019b810
 +
0019baec: 00000000 nop
 +
0019baf0: 0c067c96 jal 0x0019f258 [[Store units coordinates]]
 +
0019baf4: 26240e30 addiu r4,r17,0x0e30
 +
0019baf8: 0c065bf1 jal 0x00196fc4 [[00196fc4 - 001970b8]]
 +
0019bafc: a2200015 sb r0,0x0015(r17)
 +
0019bb00: 00001021 addu r2,r0,r0
 +
0019bb04: 8fbf001c lw r31,0x001c(r29)
 +
0019bb08: 8fb20018 lw r18,0x0018(r29)
 +
0019bb0c: 8fb10014 lw r17,0x0014(r29)
 +
0019bb10: 8fb00010 lw r16,0x0010(r29)
 +
0019bb14: 27bd0020 addiu r29,r29,0x0020
 +
0019bb18: 03e00008 jr r31
 +
0019bb1c: 00000000 nop
 
</font>
 
</font>

Revision as of 16:55, 22 February 2015

0019b7b8: 3c02801a lui r2,0x801a
0019b7bc: 90420d7b lbu r2,0x0d7b(r2)
0019b7c0: 27bdffe0 addiu r29,r29,0xffe0
0019b7c4: afb10014 sw r17,0x0014(r29)
0019b7c8: 3c11801a lui r17,0x801a
0019b7cc: 2631f3c4 addiu r17,r17,0xf3c4
0019b7d0: afbf001c sw r31,0x001c(r29)
0019b7d4: afb20018 sw r18,0x0018(r29)
0019b7d8: 1440009e bne r2,r0,0x0019ba54
0019b7dc: afb00010 sw r16,0x0010(r29)
0019b7e0: 3c04fdff lui r4,0xfdff
0019b7e4: 3484ffff ori r4,r4,0xffff
0019b7e8: 3c03801a lui r3,0x801a
0019b7ec: 8c630078 lw r3,0x0078(r3)              load flags
0019b7f0: 34020001 ori r2,r0,0x0001
0019b7f4: 3c01801a lui r1,0x801a
0019b7f8: a022f3d9 sb r2,-0x0c27(r1)
0019b7fc: 3c01801a lui r1,0x801a
0019b800: a020020d sb r0,0x020d(r1)
0019b804: 00641824 and r3,r3,r4               remove 0x02000000 flag
0019b808: 3c01801a lui r1,0x801a
0019b80c: ac230078 sw r3,0x0078(r1)
0019b810: 92250e49 lbu r5,0x0e49(r17)               load unit ID
0019b814: 3c048019 lui r4,0x8019
0019b818: 248408cc addiu r4,r4,0x08cc
0019b81c: 000518c0 sll r3,r5,0x03
0019b820: 00651823 subu r3,r3,r5
0019b824: 00031980 sll r3,r3,0x06
0019b828: 00051100 sll r2,r5,0x04
0019b82c: 2442182c addiu r2,r2,0x182c
0019b830: 02228021 addu r16,r17,r2                r16 = ai decision data
0019b834: 92020007 lbu r2,0x0007(r16)
0019b838: 00000000 nop
0019b83c: 30420010 andi r2,r2,0x0010
0019b840: 144000a2 bne r2,r0,0x0019bacc           branch if untargetable
0019b844: 00649021 addu r18,r3,r4
0019b848: 92220e2e lbu r2,0x0e2e(r17)             load acting unit ID
0019b84c: 00000000 nop
0019b850: 10a2009e beq r5,r2,0x0019bacc           branch if not same unit
0019b854: 02402821 addu r5,r18,r0
0019b858: 92240001 lbu r4,0x0001(r17)             load CT
0019b85c: 0c067bc9 jal 0x0019ef24			Check if Status Should/Can be Added
0019b860: 34060026 ori r6,r0,0x0026
0019b864: 10400099 beq r2,r0,0x0019bacc            branch if not inflicting status (stop?)
0019b868: 00000000 nop
0019b86c: 92240e49 lbu r4,0x0e49(r17)             load ??
0019b870: 0c067c36 jal 0x0019f0d8			See if ability should be used based on CT
0019b874: 00000000 nop
0019b878: 14400094 bne r2,r0,0x0019bacc
0019b87c: 00000000 nop
0019b880: 92020007 lbu r2,0x0007(r16)             
0019b884: 00000000 nop
0019b888: 30420020 andi r2,r2,0x0020
0019b88c: 10400007 beq r2,r0,0x0019b8ac            branch if not dead unit w/o reraise
0019b890: 26250c74 addiu r5,r17,0x0c74

0019b894: 92300001 lbu r16,0x0001(r17)             load CT
0019b898: 0c066722 jal 0x00199c88			00199c88 - 00199d1c
0019b89c: 02402021 addu r4,r18,r0
0019b8a0: 0050102a slt r2,r2,r16
0019b8a4: 14400089 bne r2,r0,0x0019bacc
0019b8a8: 26250c74 addiu r5,r17,0x0c74
0019b8ac: 92240e49 lbu r4,0x0e49(r17)
0019b8b0: 34020005 ori r2,r0,0x0005
0019b8b4: 0c067ca9 jal 0x0019f2a4			Transfer Unit Coordinates to AI
0019b8b8: a2220026 sb r2,0x0026(r17)               store ability uses weapon-specific animation?
0019b8bc: 92230026 lbu r3,0x0026(r17)
0019b8c0: 34020006 ori r2,r0,0x0006
0019b8c4: 14620002 bne r3,r2,0x0019b8d0            branch if ability uses target-specific animation?
0019b8c8: 34040001 ori r4,r0,0x0001
0019b8cc: 34040003 ori r4,r0,0x0003
0019b8d0: 0c06723b jal 0x0019c8ec			0019c8ec - 0019cb90
0019b8d4: 00002821 addu r5,r0,r0
0019b8d8: 26240bdc addiu r4,r17,0x0bdc
0019b8dc: 26250b4c addiu r5,r17,0x0b4c
0019b8e0: 0c066ac2 jal 0x0019ab08			Transfer Halfword Values
0019b8e4: 34060048 ori r6,r0,0x0048
0019b8e8: a2200e4a sb r0,0x0e4a(r17)
0019b8ec: 92240e4a lbu r4,0x0e4a(r17)                    load unit ID
0019b8f0: 00000000 nop
0019b8f4: 02241021 addu r2,r17,r4
0019b8f8: 90420c8d lbu r2,0x0c8d(r2)                    load targetable unit list
0019b8fc: 00000000 nop
0019b900: 10400069 beq r2,r0,0x0019baa8                 branch if not targetable
0019b904: 00000000 nop
0019b908: 92220e49 lbu r2,0x0e49(r17)
0019b90c: 00000000 nop
0019b910: 10820065 beq r4,r2,0x0019baa8
0019b914: 00000000 nop
0019b918: 92220e2e lbu r2,0x0e2e(r17)                  load acting unit
0019b91c: 00000000 nop
0019b920: 10820061 beq r4,r2,0x0019baa8                branch if unit is acting unit
0019b924: 00000000 nop
0019b928: 0c067c36 jal 0x0019f0d8			See if ability should be used based on CT
0019b92c: 00000000 nop
0019b930: 1440005d bne r2,r0,0x0019baa8
0019b934: 00000000 nop
0019b938: 92240e4a lbu r4,0x0e4a(r17)                   load unit id
0019b93c: 0c067976 jal 0x0019e5d8			AI Abiltiy Use Decisions
0019b940: 00002821 addu r5,r0,r0
0019b944: 34030001 ori r3,r0,0x0001
0019b948: 14430057 bne r2,r3,0x0019baa8
0019b94c: 00000000 nop
0019b950: 92230e4a lbu r3,0x0e4a(r17)
0019b954: 92250e3a lbu r5,0x0e3a(r17)                     load map max X
0019b958: 000310c0 sll r2,r3,0x03
0019b95c: 00431023 subu r2,r2,r3
0019b960: 00021180 sll r2,r2,0x06
0019b964: 92430047 lbu r3,0x0047(r18)                       load X coordinate
0019b968: 3c018019 lui r1,0x8019
0019b96c: 00220821 addu r1,r1,r2
0019b970: 90220913 lbu r2,0x0913(r1)                       load X coordinate
0019b974: 00031840 sll r3,r3,0x01                          X coordinate*2
0019b978: 00621823 subu r3,r3,r2                           X coordinate
0019b97c: a2230018 sb r3,0x0018(r17)                       store acting unit's X Coordinate
0019b980: 92440048 lbu r4,0x0048(r18)                      load Y coordinate
0019b984: 92230e4a lbu r3,0x0e4a(r17)                     load Y coordinate
0019b988: 00042040 sll r4,r4,0x01
0019b98c: 000310c0 sll r2,r3,0x03
0019b990: 00431023 subu r2,r2,r3
0019b994: 00021180 sll r2,r2,0x06
0019b998: 3c018019 lui r1,0x8019
0019b99c: 00220821 addu r1,r1,r2
0019b9a0: 90230914 lbu r3,0x0914(r1)
0019b9a4: 92220018 lbu r2,0x0018(r17)
0019b9a8: 00832023 subu r4,r4,r3
0019b9ac: 0045102b sltu r2,r2,r5
0019b9b0: 1040003d beq r2,r0,0x0019baa8
0019b9b4: a224001a sb r4,0x001a(r17)                          store Y coordinate
0019b9b8: 9222001a lbu r2,0x001a(r17)
0019b9bc: 92230e3b lbu r3,0x0e3b(r17)
0019b9c0: 00000000 nop
0019b9c4: 0043102b sltu r2,r2,r3
0019b9c8: 10400037 beq r2,r0,0x0019baa8
0019b9cc: 00000000 nop
0019b9d0: a2200e4b sb r0,0x0e4b(r17)
0019b9d4: 92230e2d lbu r3,0x0e2d(r17)
0019b9d8: 92220e4b lbu r2,0x0e4b(r17)
0019b9dc: 000320c0 sll r4,r3,0x03
0019b9e0: 00832021 addu r4,r4,r3
0019b9e4: 000420c0 sll r4,r4,0x03
0019b9e8: 00912021 addu r4,r4,r17
0019b9ec: 92230e4b lbu r3,0x0e4b(r17)
0019b9f0: 24840a74 addiu r4,r4,0x0a74
0019b9f4: a2220019 sb r2,0x0019(r17)                   store map level
0019b9f8: 000310c0 sll r2,r3,0x03
0019b9fc: 00431021 addu r2,r2,r3
0019ba00: 00021080 sll r2,r2,0x02
0019ba04: 9223001a lbu r3,0x001a(r17)
0019ba08: 00441021 addu r2,r2,r4
0019ba0c: 00031840 sll r3,r3,0x01
0019ba10: 00621821 addu r3,r3,r2
0019ba14: 94620000 lhu r2,0x0000(r3)
0019ba18: 92230018 lbu r3,0x0018(r17)                   X coordinate
0019ba1c: 00000000 nop
0019ba20: 00621004 sllv r2,r2,r3
0019ba24: 30428000 andi r2,r2,0x8000
0019ba28: 10400016 beq r2,r0,0x0019ba84
0019ba2c: 00000000 nop
0019ba30: 0c066ec8 jal 0x0019bb20			0019bb20 - 0019bbb8
0019ba34: 00000000 nop
0019ba38: 34020001 ori r2,r0,0x0001
0019ba3c: a2220014 sb r2,0x0014(r17)
0019ba40: a2200ed8 sb r0,0x0ed8(r17)
0019ba44: 0c066d3d jal 0x0019b4f4			0019b4f4 - 0019b6ac
0019ba48: 26240e30 addiu r4,r17,0x0e30
0019ba4c: 10400006 beq r2,r0,0x0019ba68
0019ba50: 00000000 nop
0019ba54: 0c067367 jal 0x0019cd9c			0019cd9c - 0019d214
0019ba58: 00000000 nop
0019ba5c: 2403ffff addiu r3,r0,0xffff
0019ba60: 10430028 beq r2,r3,0x0019bb04
0019ba64: 2402ffff addiu r2,r0,0xffff
0019ba68: 92220ed8 lbu r2,0x0ed8(r17)
0019ba6c: 00000000 nop
0019ba70: 14400004 bne r2,r0,0x0019ba84
0019ba74: 34020001 ori r2,r0,0x0001
0019ba78: a2220ed8 sb r2,0x0ed8(r17)
0019ba7c: 08066e91 j 0x0019ba44
0019ba80: a2200014 sb r0,0x0014(r17)
0019ba84: 92220e4b lbu r2,0x0e4b(r17)
0019ba88: 00000000 nop
0019ba8c: 24420001 addiu r2,r2,0x0001
0019ba90: a2220e4b sb r2,0x0e4b(r17)
0019ba94: 92220e4b lbu r2,0x0e4b(r17)
0019ba98: 00000000 nop
0019ba9c: 2c420002 sltiu r2,r2,0x0002
0019baa0: 1440ffcc bne r2,r0,0x0019b9d4
0019baa4: 00000000 nop
0019baa8: 92220e4a lbu r2,0x0e4a(r17)
0019baac: 00000000 nop
0019bab0: 24420001 addiu r2,r2,0x0001
0019bab4: a2220e4a sb r2,0x0e4a(r17)
0019bab8: 92220e4a lbu r2,0x0e4a(r17)
0019babc: 00000000 nop
0019bac0: 2c420015 sltiu r2,r2,0x0015
0019bac4: 1440ff89 bne r2,r0,0x0019b8ec
0019bac8: 00000000 nop
0019bacc: 92220e49 lbu r2,0x0e49(r17)
0019bad0: 00000000 nop
0019bad4: 24420001 addiu r2,r2,0x0001
0019bad8: a2220e49 sb r2,0x0e49(r17)
0019badc: 92220e49 lbu r2,0x0e49(r17)
0019bae0: 00000000 nop
0019bae4: 2c420015 sltiu r2,r2,0x0015
0019bae8: 1440ff49 bne r2,r0,0x0019b810
0019baec: 00000000 nop
0019baf0: 0c067c96 jal 0x0019f258			Store units coordinates
0019baf4: 26240e30 addiu r4,r17,0x0e30
0019baf8: 0c065bf1 jal 0x00196fc4			00196fc4 - 001970b8
0019bafc: a2200015 sb r0,0x0015(r17)
0019bb00: 00001021 addu r2,r0,r0
0019bb04: 8fbf001c lw r31,0x001c(r29)
0019bb08: 8fb20018 lw r18,0x0018(r29)
0019bb0c: 8fb10014 lw r17,0x0014(r29)
0019bb10: 8fb00010 lw r16,0x0010(r29)
0019bb14: 27bd0020 addiu r29,r29,0x0020
0019bb18: 03e00008 jr r31
0019bb1c: 00000000 nop