Store message/menu type

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search

00141464: 27bdffd8 addiu r29,r29,0xffd8
00141468: 34020001 ori r2,r0,0x0001
0014146c: afbf0020 sw r31,0x0020(r29)
00141470: afb1001c sw r17,0x001c(r29)
00141474: afb00018 sw r16,0x0018(r29)
00141478: 3c018016 lui r1,0x8016
0014147c: ac22607c sw r2,0x607c(r1)
00141480: 0c052947 jal 0x0014a51c               0014a51c - 0014a574 tutorial check thing?
00141484: 00000000 nop
00141488: 3c040001 lui r4,0x0001
0014148c: 34848000 ori r4,r4,0x8000             0x18000 (navigation message type?)
00141490: 3c038017 lui r3,0x8017
00141494: 8c634038 lw r3,0x4038(r3)             current thread ID
00141498: 3c028004 lui r2,0x8004
0014149c: 8c4273ac lw r2,0x73ac(r2)             options table;
001414a0: 00031a80 sll r3,r3,0x0a               thread ID (from 0x0000 (thread 0), 0x1000 (thread 1), ... 0x1 0000 (thread 0x10)
001414a4: 00441024 and r2,r2,r4                 get navigation message type
001414a8: 3c018017 lui r1,0x8017
001414ac: 00230821 addu r1,r1,r3
001414b0: 8c31986c lw r17,-0x6794(r1)          current thread parameter 0
001414b4: 10400006 beq r2,r0,0x001414d0        branch if?
001414b8: 00111080 sll r2,r17,0x02
001414bc: 00511021 addu r2,r2,r17
001414c0: 00021080 sll r2,r2,0x02
001414c4: 3c018017 lui r1,0x8017
001414c8: 00220821 addu r1,r1,r2
001414cc: 843192d0 lh r17,-0x6d30(r1)          if navigation message? instead r17 = *0x801692d0
001414d0: 0c053274 jal 0x0014c9d0              Wait For Thread wait for thread 8
001414d4: 34040008 ori r4,r0,0x0008
001414d8: 3c028016 lui r2,0x8016
001414dc: 94425ff6 lhu r2,0x5ff6(r2)
001414e0: 00000000 nop
001414e4: 14400010 bne r2,r0,0x00141528        
001414e8: 34100044 ori r16,r0,0x0044
001414ec: 0c053325 jal 0x0014cc94              Check Thread Running Status check thread 1 (event thread)
001414f0: 34040001 ori r4,r0,0x0001
001414f4: 1040000c beq r2,r0,0x00141528        branch if no event playing
001414f8: 00000000 nop
001414fc: 3c028017 lui r2,0x8017
00141500: 8c429cb8 lw r2,-0x6348(r2)
00141504: 00000000 nop
00141508: 14500003 bne r2,r16,0x00141518
0014150c: 00000000 nop
00141510: 0c053256 jal 0x0014c958              Stop Current Thread
00141514: 00000000 nop
00141518: 0c0532a0 jal 0x0014ca80              Switch To Next Thread
0014151c: 00000000 nop
00141520: 0805053b j 0x001414ec                 
00141524: 00000000 nop
00141528: 0c04b765 jal 0x0012dd94              0012dd94 - 0012ddc0
0014152c: 00000000 nop
00141530: 00111080 sll r2,r17,0x02             
00141534: 00511021 addu r2,r2,r17
00141538: 00021080 sll r2,r2,0x02              thread param 0 * 0x14
0014153c: 3c038017 lui r3,0x8017
00141540: 246392c0 addiu r3,r3,0x92c0
00141544: 00438021 addu r16,r2,r3              r16 = 801692c0 * thread param 0 * 0x14
00141548: 86030004 lh r3,0x0004(r16)           menu data halfword 2
0014154c: 86040000 lh r4,0x0000(r16)           menu data halfword 0
00141550: 3c058017 lui r5,0x8017
00141554: 8ca53cb8 lw r5,0x3cb8(r5)            menu construction info
00141558: 00031100 sll r2,r3,0x04
0014155c: 00431023 subu r2,r2,r3
00141560: 00021080 sll r2,r2,0x02
00141564: 96030002 lhu r3,0x0002(r16)          menu data halfword 1
00141568: 00451021 addu r2,r2,r5               menu construction info we're after (menu data halfword 2's menu)
0014156c: a443001c sh r3,0x001c(r2)            store menu text data to display
00141570: 96020006 lhu r2,0x0006(r16)          halfword 3
00141574: 3c018016 lui r1,0x8016
00141578: a4226ac0 sh r2,0x6ac0(r1)            ?
0014157c: 86030004 lh r3,0x0004(r16)           halfword 0 again
00141580: 3c018016 lui r1,0x8016
00141584: ac245f84 sw r4,0x5f84(r1)            store menu data halfword 0 at menu/message display byte?
00141588: 00031100 sll r2,r3,0x04
0014158c: 00431023 subu r2,r2,r3
00141590: 00021080 sll r2,r2,0x02
00141594: 96030008 lhu r3,0x0008(r16)          menu halfword 4
00141598: 00451021 addu r2,r2,r5               menu construction data we're after
0014159c: a4430020 sh r3,0x0020(r2)            store menu halfword 4 in "seems to have no effect"
001415a0: 3402001f ori r2,r0,0x001f
001415a4: 1622000e bne r17,r2,0x001415e0                       branch if thread param 0 != 0x1f (OPTION.OUT?)
001415a8: 34020008 ori r2,r0,0x0008
001415ac: 3c058014 lui r5,0x8014
001415b0: 24a5bf8c addiu r5,r5,0xbf8c
001415b4: 0c053228 jal 0x0014c8a0                              Initialize Thread thread 8 = Get and Run OPTION.OUT
001415b8: 34040008 ori r4,r0,0x0008
001415bc: 34040008 ori r4,r0,0x0008
001415c0: 00002821 addu r5,r0,r0
001415c4: 3c068017 lui r6,0x8017
001415c8: 8cc63c70 lw r6,0x3c70(r6)
001415cc: 0c05328e jal 0x0014ca38				Store Thread Function Parameters store thread 8 parameters, 0, *80173c70
001415d0: 00003821 addu r7,r0,r0
001415d4: 0c053256 jal 0x0014c958                              Stop Current Thread
001415d8: 00000000 nop
001415dc: 34020008 ori r2,r0,0x0008
001415e0: 12220003 beq r17,r2,0x001415f0                       branch if thread param 0 = 8 (?)
001415e4: 00000000 nop
001415e8: 0c050af4 jal 0x00142bd0                              0x142bd0
001415ec: 02202021 addu r4,r17,r0
001415f0: 8e05000c lw r5,0x000c(r16)
001415f4: 0c053228 jal 0x0014c8a0                              Initialize Thread thread 8 = *r16 + 0xc
001415f8: 34040008 ori r4,r0,0x0008
001415fc: 34040008 ori r4,r0,0x0008
00141600: 00003021 addu r6,r0,r0
00141604: 86020004 lh r2,0x0004(r16)
00141608: 00003821 addu r7,r0,r0
0014160c: afa00010 sw r0,0x0010(r29)
00141610: 00022900 sll r5,r2,0x04
00141614: 00a22823 subu r5,r5,r2
00141618: 3c028017 lui r2,0x8017
0014161c: 8c423cb8 lw r2,0x3cb8(r2)
00141620: 00052880 sll r5,r5,0x02
00141624: 0c053296 jal 0x0014ca58                              Store Thread Parameters (0x14ca58)
00141628: 00a22821 addu r5,r5,r2
0014162c: 3c018016 lui r1,0x8016
00141630: ac20607c sw r0,0x607c(r1)
00141634: 0c053256 jal 0x0014c958                              Stop Current Thread
00141638: 00000000 nop
0014163c: 8fbf0020 lw r31,0x0020(r29)
00141640: 8fb1001c lw r17,0x001c(r29)
00141644: 8fb00018 lw r16,0x0018(r29)
00141648: 27bd0028 addiu r29,r29,0x0028
0014164c: 03e00008 jr r31
00141650: 00000000 nop