From b4efd90fdccdf86a5abf528e63d099ec536efa9a Mon Sep 17 00:00:00 2001 From: Martin Michelsen Date: Sun, 7 Jul 2024 16:39:52 -0700 Subject: [PATCH] replace q050 and q052 with direct backports --- system/quests/download/q050-d1-e.bin | Bin 2963 -> 0 bytes system/quests/download/q050-d1-e.bin.txt | 1065 ++++++++++++++++++++++ system/quests/download/q052-d1-e.bin | Bin 5194 -> 0 bytes system/quests/download/q052-d1-e.bin.txt | 811 ++++++++++++++++ 4 files changed, 1876 insertions(+) delete mode 100644 system/quests/download/q050-d1-e.bin create mode 100755 system/quests/download/q050-d1-e.bin.txt delete mode 100644 system/quests/download/q052-d1-e.bin create mode 100755 system/quests/download/q052-d1-e.bin.txt diff --git a/system/quests/download/q050-d1-e.bin b/system/quests/download/q050-d1-e.bin deleted file mode 100644 index 8081f3eb983d8f853f6134064598a3598e85343a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2963 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 a=W_!_EE%&CyTe6QWy1`I5jPtW0R9g~K$LC( diff --git a/system/quests/download/q050-d1-e.bin.txt b/system/quests/download/q050-d1-e.bin.txt new file mode 100755 index 00000000..14ca1505 --- /dev/null +++ b/system/quests/download/q050-d1-e.bin.txt @@ -0,0 +1,1065 @@ +.version DC_V1 +.quest_num 15 +.language 1 +.name "Soul of a Blacksmith" +.short_desc "A blacksmith\nwants to make\na weapon using\nRagol\'s unknown\nmaterials." +.long_desc "Client: Ozwald\nQuest:\nI want to make a new\nweapon using unknown\nmaterials on Ragol.\nReward: 2500 Meseta" + +start: + call random_setup + get_difficulty_level_v1 r83 + set_floor_handler 0x00000000, floor_handler_0 + set_floor_handler 0x00000001, floor_handler_1 + set_floor_handler 0x00000002, floor_handler_2 + set_floor_handler 0x00000003, floor_handler_3 + set_floor_handler 0x00000004, floor_handler_4 + set_floor_handler 0x00000005, floor_handler_5 + set_floor_handler 0x0000000B, floor_handler_B + leti r60, 0x00000000 + leti r61, 0x00000000 + leti r62, 0x00000000 + leti r63, 0x00000000 + map_designate r60-r63 + leti r60, 0x00000001 + leti r61, 0x00000000 + leti r62, 0x00000000 + leti r63, 0x00000003 + map_designate r60-r63 + leti r60, 0x00000002 + leti r61, 0x00000000 + leti r62, 0x00000000 + leti r63, 0x00000003 + map_designate r60-r63 + leti r60, 0x00000003 + leti r61, 0x00000000 + leti r62, 0x00000002 + leti r63, 0x00000000 + map_designate r60-r63 + leti r60, 0x00000004 + leti r61, 0x00000000 + leti r62, 0x00000002 + leti r63, 0x00000000 + map_designate r60-r63 + leti r60, 0x00000005 + leti r61, 0x00000000 + leti r62, 0x00000001 + leti r63, 0x00000001 + map_designate r60-r63 + leti r60, 0x0000000B + leti r61, 0x00000000 + leti r62, 0x00000000 + leti r63, 0x00000000 + map_designate r60-r63 + set_qt_success on_quest_success + ret + +return: + ret + +floor_handler_0: + set_mainwarp 0x00000001 + set_mainwarp 0x00000003 + jmpi_eq r200, 0x00000001, return + leti r60, 0x000000E6 + leti r61, 0x00000000 + leti r62, 0x0000014D + leti r63, 0x00000000 + p_setpos 0x00000000, r60-r63 + call label0136 + set r200 + ret + +on_quest_success: + gset 0x0081 + window_msg "You\'ve been awarded 2500 Meseta." + bgm 0x00000001 + winend + pl_add_meseta 0x00000000, 0x000009C4 + ret + +floor_handler_1: + leti r60, 0xFFFFFEEC + leti r61, 0x00000010 + leti r62, 0xFFFFFDDD + leti r63, 0x0000000F + leti r64, 0x00000168 + at_coords_call r60-r64 + leti r60, 0x000001E3 + leti r61, 0x0000001F + leti r62, 0xFFFFFFBF + leti r63, 0x0000000F + leti r64, 0x00000169 + at_coords_call r60-r64 + ret + +floor_handler_2: + ret + +floor_handler_3: + leti r60, 0x00000033 + leti r61, 0x00000000 + leti r62, 0x00000370 + leti r63, 0x00000028 + leti r64, 0x0000016A + at_coords_call r60-r64 + switch_on 0x00000005 + switch_on 0x0000000A + ret + +floor_handler_4: + leti r60, 0x000005A9 + leti r61, 0x00000000 + leti r62, 0xFFFFFCA6 + leti r63, 0x00000028 + leti r64, 0x0000016B + at_coords_call r60-r64 + ret + +floor_handler_5: + leti r60, 0x00000204 + leti r61, 0x00000000 + leti r62, 0xFFFFFB99 + leti r63, 0x00000012 + leti r64, 0x0000016C + at_coords_call r60-r64 + ret + +floor_handler_B: + thread_stg label00CC + ret + +label0136@0x0136: + jmpi_eq r8, 0x00000001, label013C + jmpi_eq r255, 0x00000001, label013B + jmp_on label013A, [r3, r2, r6] + jmp_on label013A, [r1, r2, r6] + jmp_on label0139, [r1, r2, r5] + jmp_on label0139, [r3, r2, r5] + jmp_on label0138, [r1, r2, r4] + jmp_on label0138, [r3, r2, r4] + jmpi_eq r0, 0x00000001, label0137 + call label00DC + message 0x00000065, "Are you a \nfrom the Hunter\'s\nGuild?" + add_msg "I\'m Ozwald, a\nblacksmith. Nice to\nmeet you." + add_msg "I think it\'ll be an easy\njob for you, too." + add_msg "It\'s simple. Go to\nRagol to collect some\nraw weapon material." + add_msg "The weapon made by the\nmaterials on Ragol will\nbe yours. Good deal?" + add_msg "I\'m just interested in\nthe creation process\nusing unknown materials." + add_msg "Now, I want you to\ncollect three different\nmaterials on Ragol." + add_msg "Take this memo with you.\nThat is a list of\nwhat I want." + add_msg "Oh, one more thing!" + add_msg "About the third one. I\'m\nnot sure that kind of\nmaterial exists there." + add_msg "So, it\'s up to you.\nJust bring back what\nyou think is good." + add_msg "Find something good\nto make a strong\nweapon. OK?" + add_msg "Here\'s the list.\nRead it carefully." + add_msg "Don\'t disappoint me,\nOK?" + mesend + set r0 + window_msg "Got the material memo!" + winend + bgm 0x00000001 + call label00DD + set_quest_board_handler 0x00000000, label0123, "Material Memo" + set r74 + ret + +label0137@0x0137: + message 0x00000065, "Hey, what\'s up?\nNot done yet?" + add_msg "Hurry up, hurry it up.\nI can\'t wait." + mesend + ret + +label0138@0x0138: + message 0x00000065, "Yes, yes!\nYou finally came back." + add_msg "Well, I\'ve never seen\nthis mineral before." + mesend + list r100, "Blade\nGun\nStaff\nWait and reconsider." + switch_jmp r100, [label014B, label014E, label0151, label01AE] + ret + +label014B@0x014B: + message 0x00000065, "OK, just wait a few\nminutes!" + mesend + call label0122 + add_msg "Hey, I\'m back." + add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." + add_msg "This is yours. I hope\nit helps you." + mesend + leti r:item_data1_0@110, 0x00 + leti r:item_data1_1@111, 0x02 + leti r:item_data1_2@112, 0x00 + leti r:item_data1_3@113, 0x00 + leti r:item_data1_4@114, 0x18 + leti r:item_data1_5@115, 0x00 + leti r:item_data1_6@116, 0x00 + leti r:item_data1_7@117, 0x00 + leti r:item_data1_8@118, 0x00 + leti r:item_data1_9@119, 0x00 + leti r:item_data1_A@120, 0x00 + leti r:item_data1_B@121, 0x00 + item_create2 r110-r121, r:item_id + set r172 + jmpi_eq r:item_id, 0xFFFFFFFF, label01AF + window_msg "Got a Fire Sword!" + set r255 + call label012C + winend + bgm 0x00000000 + playbgm_epi 0x00000001 + ret + +label014E@0x014E: + message 0x00000065, "OK, just wait a few\nminutes!" + mesend + call label0122 + add_msg "Hey, I\'m back." + add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." + add_msg "This is yours. I hope\nit helps you." + mesend + leti r:item_data1_0, 0x00 + leti r:item_data1_1, 0x07 + leti r:item_data1_2, 0x00 + leti r:item_data1_3, 0x00 + leti r:item_data1_4, 0x18 + leti r:item_data1_5, 0x00 + leti r:item_data1_6, 0x00 + leti r:item_data1_7, 0x00 + leti r:item_data1_8, 0x00 + leti r:item_data1_9, 0x00 + leti r:item_data1_A, 0x00 + leti r:item_data1_B, 0x00 + item_create2 r110-r121, r:item_id + set r172 + jmpi_eq r:item_id, 0xFFFFFFFF, label01AF + window_msg "Got a Fire Rifle!" + set r255 + call label012C + winend + bgm 0x00000000 + playbgm_epi 0x00000001 + ret + +label0151@0x0151: + message 0x00000065, "OK, just wait a few\nminutes!" + mesend + call label0122 + add_msg "Hey, I\'m back." + add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." + add_msg "This is yours. I hope\nit helps you." + mesend + leti r:item_data1_0, 0x00 + leti r:item_data1_1, 0x0B + leti r:item_data1_2, 0x00 + leti r:item_data1_3, 0x00 + leti r:item_data1_4, 0x18 + leti r:item_data1_5, 0x00 + leti r:item_data1_6, 0x00 + leti r:item_data1_7, 0x00 + leti r:item_data1_8, 0x00 + leti r:item_data1_9, 0x00 + leti r:item_data1_A, 0x00 + leti r:item_data1_B, 0x00 + item_create2 r110-r121, r:item_id + set r172 + jmpi_eq r:item_id, 0xFFFFFFFF, label01AF + window_msg "Got a Fire Rod!" + set r255 + call label012C + winend + bgm 0x00000000 + playbgm_epi 0x00000001 + ret + +label0139@0x0139: + message 0x00000065, "Yes, yes!\nFinally, you came back." + add_msg "Well, it seems like it\'s\ngood quality mineral..." + mesend + list r100, "Blade\nGun\nStaff\nWait and reconsider." + switch_jmp r100, [label0155, label0158, label015B, label01AE] + +label0155@0x0155: + message 0x00000065, "OK, just wait a few\nminutes!" + mesend + call label0122 + add_msg "Hey, I\'m back." + add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." + add_msg "This is yours. I hope\nit helps you." + mesend + leti r:item_data1_0, 0x00 + leti r:item_data1_1, 0x02 + leti r:item_data1_2, 0x00 + leti r:item_data1_3, 0x00 + leti r:item_data1_4, 0x10 + leti r:item_data1_5, 0x00 + leti r:item_data1_6, 0x00 + leti r:item_data1_7, 0x00 + leti r:item_data1_8, 0x00 + leti r:item_data1_9, 0x00 + leti r:item_data1_A, 0x00 + leti r:item_data1_B, 0x00 + item_create2 r110-r121, r:item_id + set r172 + jmpi_eq r:item_id, 0xFFFFFFFF, label01AF + window_msg "Got a Frost Sword!" + set r255 + call label012C + winend + bgm 0x00000000 + playbgm_epi 0x00000001 + ret + +label0158@0x0158: + message 0x00000065, "OK, just wait a few\nminutes!" + mesend + call label0122 + add_msg "Hey, I\'m back." + add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." + add_msg "This is yours.\nI hope it helps you." + mesend + leti r:item_data1_0, 0x00 + leti r:item_data1_1, 0x08 + leti r:item_data1_2, 0x00 + leti r:item_data1_3, 0x00 + leti r:item_data1_4, 0x10 + leti r:item_data1_5, 0x00 + leti r:item_data1_6, 0x00 + leti r:item_data1_7, 0x00 + leti r:item_data1_8, 0x00 + leti r:item_data1_9, 0x00 + leti r:item_data1_A, 0x00 + leti r:item_data1_B, 0x00 + item_create2 r110-r121, r:item_id + set r172 + jmpi_eq r:item_id, 0xFFFFFFFF, label01AF + window_msg "Got a Frost Mechgun!" + set r255 + call label012C + winend + bgm 0x00000000 + playbgm_epi 0x00000001 + ret + +label015B@0x015B: + message 0x00000065, "OK, just wait a few\nminutes!" + mesend + call label0122 + add_msg "Hey, I\'m back." + add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." + add_msg "This is yours. I hope\nit helps you." + mesend + leti r:item_data1_0, 0x00 + leti r:item_data1_1, 0x0B + leti r:item_data1_2, 0x00 + leti r:item_data1_3, 0x00 + leti r:item_data1_4, 0x10 + leti r:item_data1_5, 0x00 + leti r:item_data1_6, 0x00 + leti r:item_data1_7, 0x00 + leti r:item_data1_8, 0x00 + leti r:item_data1_9, 0x00 + leti r:item_data1_A, 0x00 + leti r:item_data1_B, 0x00 + item_create2 r110-r121, r:item_id + set r172 + jmpi_eq r:item_id, 0xFFFFFFFF, label01AF + window_msg "Got a Frost Rod!" + set r255 + call label012C + winend + bgm 0x00000000 + playbgm_epi 0x00000001 + ret + +label013A@0x013A: + jmpi_eq r83, 0x00000000, label015E + jmpi_eq r83, 0x00000001, label0172 + jmpi_eq r83, 0x00000002, label017C + ret + +label015E@0x015E: + message 0x00000065, "Yes, yes!\nYou\'re finally back." + add_msg "Hmmm...!\nI think you found a\nvery special mineral!!" + mesend + list r100, "Blade\nGun\nStaff\nWait and reconsider." + switch_jmp r100, [label015F, label0162, label0165, label01AE] + +label015F@0x015F: + message 0x00000065, "OK, just wait a few\nminutes!" + mesend + call label0122 + add_msg "Hey, I\'m back." + add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." + add_msg "This is yours. I hope\nit helps you." + mesend + leti r:item_data1_0, 0x00 + leti r:item_data1_1, 0x04 + leti r:item_data1_2, 0x00 + leti r:item_data1_3, 0x00 + leti r:item_data1_4, 0x25 + leti r:item_data1_5, 0x00 + call generate_bonuses + leti r:item_data1_A, 0x00 + leti r:item_data1_B, 0x00 + item_create2 r110-r121, r:item_id + set r172 + jmpi_eq r:item_id, 0xFFFFFFFF, label01AF + window_msg "Got a Havoc Partisan!" + set r255 + call label012C + winend + bgm 0x00000000 + playbgm_epi 0x00000001 + ret + +label0162@0x0162: + message 0x00000065, "OK, just wait a few\nminutes!" + mesend + call label0122 + add_msg "Hey, I\'m back." + add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." + add_msg "This is yours. I hope\nit helps you." + mesend + leti r:item_data1_0, 0x00 + leti r:item_data1_1, 0x08 + leti r:item_data1_2, 0x00 + leti r:item_data1_3, 0x00 + leti r:item_data1_4, 0x25 + leti r:item_data1_5, 0x00 + call generate_bonuses + leti r:item_data1_A, 0x00 + leti r:item_data1_B, 0x00 + item_create2 r110-r121, r:item_id + set r172 + jmpi_eq r:item_id, 0xFFFFFFFF, label01AF + window_msg "Got a Havoc Mechgun!" + set r255 + call label012C + winend + bgm 0x00000000 + playbgm_epi 0x00000001 + ret + +label0165@0x0165: + message 0x00000065, "OK, just wait a few\nminutes!" + mesend + call label0122 + add_msg "Hey, I\'m back." + add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." + add_msg "This is yours. I hope\nit helps you." + mesend + leti r:item_data1_0, 0x00 + leti r:item_data1_1, 0x0C + leti r:item_data1_2, 0x00 + leti r:item_data1_3, 0x00 + leti r:item_data1_4, 0x25 + leti r:item_data1_5, 0x00 + call generate_bonuses + leti r:item_data1_A, 0x00 + leti r:item_data1_B, 0x00 + item_create2 r110-r121, r:item_id + set r172 + jmpi_eq r:item_id, 0xFFFFFFFF, label01AF + window_msg "Got a Havoc Wand!" + set r255 + call label012C + winend + bgm 0x00000000 + playbgm_epi 0x00000001 + ret + +label0172@0x0172: + message 0x00000065, "Yes, yes!\nYou\'re finally back." + add_msg "Hmmm...!\nI think you found a\nvery special mineral!!" + mesend + list r100, "Blade\nGun\nStaff\nWait and reconsider." + switch_jmp r100, [label0173, label0176, label0179, label01AE] + +label0173@0x0173: + message 0x00000065, "OK, just wait a few\nminutes!" + mesend + call label0122 + add_msg "Hey, I\'m back." + add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." + add_msg "This is yours. I hope\nit helps you." + mesend + leti r:item_data1_0, 0x00 + leti r:item_data1_1, 0x05 + leti r:item_data1_2, 0x02 + leti r:item_data1_3, 0x00 + leti r:item_data1_4, 0x1D + leti r:item_data1_5, 0x00 + call generate_bonuses + leti r:item_data1_A, 0x00 + leti r:item_data1_B, 0x00 + item_create2 r110-r121, r:item_id + set r172 + jmpi_eq r:item_id, 0xFFFFFFFF, label01AF + window_msg "Got a Storm Cutter!" + set r255 + call label012C + winend + bgm 0x00000000 + playbgm_epi 0x00000001 + ret + +label0176@0x0176: + message 0x00000065, "OK, just wait a few\nminutes!" + mesend + call label0122 + add_msg "Hey, I\'m back." + add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." + add_msg "This is yours. I hope\nit helps you." + mesend + leti r:item_data1_0, 0x00 + leti r:item_data1_1, 0x09 + leti r:item_data1_2, 0x02 + leti r:item_data1_3, 0x00 + leti r:item_data1_4, 0x1D + leti r:item_data1_5, 0x00 + call generate_bonuses + leti r:item_data1_A, 0x00 + leti r:item_data1_B, 0x00 + item_create2 r110-r121, r:item_id + set r172 + jmpi_eq r:item_id, 0xFFFFFFFF, label01AF + window_msg "Got a Storm Cannon!" + set r255 + call label012C + winend + bgm 0x00000000 + playbgm_epi 0x00000001 + ret + +label0179@0x0179: + message 0x00000065, "OK, just wait a few\nminutes!" + mesend + call label0122 + add_msg "Hey, I\'m back." + add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." + add_msg "This is yours. I hope\nit helps you." + mesend + leti r:item_data1_0, 0x00 + leti r:item_data1_1, 0x0C + leti r:item_data1_2, 0x02 + leti r:item_data1_3, 0x00 + leti r:item_data1_4, 0x1D + leti r:item_data1_5, 0x00 + call generate_bonuses + leti r:item_data1_A, 0x00 + leti r:item_data1_B, 0x00 + item_create2 r110-r121, r:item_id + set r172 + jmpi_eq r:item_id, 0xFFFFFFFF, label01AF + window_msg "Got a Storm Baton!" + set r255 + call label012C + winend + bgm 0x00000000 + playbgm_epi 0x00000001 + ret + +label017C@0x017C: + message 0x00000065, "Yes, yes!\nYou\'re finally back." + add_msg "Hmmm...!\nI think you found a\nvery special mineral!!" + mesend + list r100, "Blade\nGun\nStaff\nWait and reconsider." + switch_jmp r100, [label017D, label0180, label0183, label01AE] + +label017D@0x017D: + message 0x00000065, "OK, just wait a few\nminutes!" + mesend + call label0122 + add_msg "Hey, I\'m back." + add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." + add_msg "This is yours. I hope\nit helps you." + mesend + leti r:item_data1_0, 0x00 + leti r:item_data1_1, 0x04 + leti r:item_data1_2, 0x03 + leti r:item_data1_3, 0x00 + leti r:item_data1_4, 0x11 + leti r:item_data1_5, 0x00 + call generate_bonuses + leti r:item_data1_A, 0x00 + leti r:item_data1_B, 0x00 + item_create2 r110-r121, r:item_id + set r172 + jmpi_eq r:item_id, 0xFFFFFFFF, label01AF + window_msg "Got a Freeze Berdys!" + set r255 + call label012C + winend + bgm 0x00000000 + playbgm_epi 0x00000001 + ret + +label0180@0x0180: + message 0x00000065, "OK, just wait a few\nminutes!" + mesend + call label0122 + add_msg "Hey, I\'m back." + add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." + add_msg "This is yours. I hope\nit helps you." + mesend + leti r:item_data1_0, 0x00 + leti r:item_data1_1, 0x07 + leti r:item_data1_2, 0x03 + leti r:item_data1_3, 0x00 + leti r:item_data1_4, 0x11 + leti r:item_data1_5, 0x00 + call generate_bonuses + leti r:item_data1_A, 0x00 + leti r:item_data1_B, 0x00 + item_create2 r110-r121, r:item_id + set r172 + jmpi_eq r:item_id, 0xFFFFFFFF, label01AF + window_msg "Got a Freeze Beam!" + set r255 + call label012C + winend + bgm 0x00000000 + playbgm_epi 0x00000001 + ret + +label0183@0x0183: + message 0x00000065, "OK, just wait a few\nminutes!" + mesend + call label0122 + add_msg "Hey, I\'m back." + add_msg "Look, this was made with\nthe materials that you\nfound on Ragol." + add_msg "This is yours. I hope\nit helps you." + mesend + leti r:item_data1_0, 0x00 + leti r:item_data1_1, 0x0B + leti r:item_data1_2, 0x03 + leti r:item_data1_3, 0x00 + leti r:item_data1_4, 0x11 + leti r:item_data1_5, 0x00 + call generate_bonuses + leti r:item_data1_A, 0x00 + leti r:item_data1_B, 0x00 + item_create2 r110-r121, r:item_id + set r172 + jmpi_eq r:item_id, 0xFFFFFFFF, label01AF + window_msg "Got a Freeze Striker!" + set r255 + call label012C + winend + bgm 0x00000000 + playbgm_epi 0x00000001 + ret + +label013B@0x013B: + message 0x00000065, "The Guild will pay your\nreward. Sorry, I know\nit\'s not much Meseta." + add_msg "That quality material\nyou brought back really\nexcited me. Thank you!" + set r8 + mesend + ret + +label013C@0x013C: + message 0x00000065, "The Guild will pay your\nreward. Sorry it\'s\nnot much Meseta." + add_msg "You did a good job!\nSee you." + mesend + ret + +label01AE@0x01AE: + jmp_on label01B0, [r101, r102, r103] + message 0x00000065, "Well...\nThere may have also still\nbeen other minerals." + mesend + ret + +label01AF@0x01AF: + window_msg "Your inventory is full." + winend + ret + +label01B0@0x01B0: + ret + +label0140@0x0140: + // Could not determine data type; disassembling as code + jmpi_eq r255, 0x00000001, label0142 + jmp_on label0141, [r1, r2, r6] + jmp_on label0141, [r1, r2, r5] + jmp_on label0141, [r1, r2, r4] + jmp_on label0141, [r3, r2, r6] + jmp_on label0141, [r3, r2, r5] + jmp_on label0141, [r3, r2, r4] + message 0x00000066, "Let me apologize for\nmy husband for asking\nsuch a big favor..." + add_msg "His ambition is to be\nbetter than the \"big\nthree\" blacksmiths." + add_msg "\"Big three\" is a\nrewarded name for famous\ntalented blacksmiths." + add_msg "Good luck, anyway." + mesend + ret + +label0141@0x0141: + message 0x00000066, "Did you find all the\nmaterials on the list?\nOh, that\'s wonderful!" + add_msg "He\'ll be excited when he\nsees them. He sometimes\nacts just like a kid." + mesend + ret + +label0142@0x0142: + message 0x00000066, "Thank you." + add_msg "I helped him with his\ntask for several days." + add_msg "I\'m sure it\'s a good\nweapon. Please use it." + mesend + ret + +label0168@0x0168: + // Could not determine data type; disassembling as code + jmpi_eq r90, 0x00000001, return + jmpi_eq r3, 0x00000001, label019A + jmpi_eq r1, 0x00000001, return + call start_cutscene + set_quest_board_handler 0x00000001, label0124, "Miwontite" + set r75 + set r1 + window_msg "Got a miwontite!" + winend + bgm 0x00000001 + call end_cutscene + ret + +label0169@0x0169: + // Could not determine data type; disassembling as code + jmpi_eq r90, 0x00000001, return + jmpi_eq r1, 0x00000001, label019A + jmpi_eq r3, 0x00000001, return + call start_cutscene + set_quest_board_handler 0x00000001, label0124, "Miwontite" + set r75 + set r3 + window_msg "Got a miwontite!" + winend + bgm 0x00000001 + call end_cutscene + ret + +label019A@0x019A: + call start_cutscene + set r90 + window_msg "Miwontite is\nalready in the inventory. " + winend + call end_cutscene + ret + +label016A@0x016A: + // Could not determine data type; disassembling as code + jmpi_eq r255, 0x00000001, return + set r101 + jmpi_eq r4, 0x00000001, label0190 + jmpi_eq r5, 0x00000001, label0191 + jmpi_eq r6, 0x00000001, label0192 + call start_cutscene + window_msg "Got a red mineral!" + winend + bgm 0x00000001 + call end_cutscene + set r4 + set_quest_board_handler 0x00000003, label0126, "Red Mineral" + set r77 + ret + +label016B@0x016B: + // Could not determine data type; disassembling as code + jmpi_eq r255, 0x00000001, return + set r102 + jmpi_eq r4, 0x00000001, label0193 + jmpi_eq r5, 0x00000001, label0190 + jmpi_eq r6, 0x00000001, label0194 + call start_cutscene + window_msg "Got a green mineral!" + winend + bgm 0x00000001 + call end_cutscene + set r5 + set_quest_board_handler 0x00000003, label0127, "Green Mineral" + set r77 + ret + +label016C@0x016C: + // Could not determine data type; disassembling as code + jmpi_eq r255, 0x00000001, return + set r103 + jmpi_eq r4, 0x00000001, label0195 + jmpi_eq r5, 0x00000001, label0196 + jmpi_eq r6, 0x00000001, label0190 + call start_cutscene + window_msg "Got a blue mineral!" + winend + bgm 0x00000001 + call end_cutscene + set r6 + set_quest_board_handler 0x00000003, label0128, "Blue Mineral" + set r77 + ret + +label0190@0x0190: + call start_cutscene + window_msg "The mineral is\nalready in the inventory. " + winend + call end_cutscene + ret + +label0191@0x0191: + call start_cutscene + window_msg "Got a red mineral!" + bgm 0x00000001 + add_msg "..." + add_msg "Photon in another mineral\ndisappeared!" + winend + call end_cutscene + clear r5 + set r4 + clear_quest_board_handler 0x00000003 + set_quest_board_handler 0x00000003, label0126, "Red Mineral\n" + ret + +label0192@0x0192: + call start_cutscene + window_msg "Got a red mineral!" + bgm 0x00000001 + add_msg "..." + add_msg "Photon in another mineral\ndisappeared!" + winend + call end_cutscene + clear r6 + set r4 + clear_quest_board_handler 0x00000003 + set_quest_board_handler 0x00000003, label0126, "Red Mineral\n" + ret + +label0193@0x0193: + call start_cutscene + window_msg "Got a green mineral!" + bgm 0x00000001 + add_msg "..." + add_msg "Photon in another mineral\ndisappeared!" + winend + call end_cutscene + clear r4 + set r5 + clear_quest_board_handler 0x00000003 + set_quest_board_handler 0x00000003, label0127, "Green Mineral\n" + ret + +label0194@0x0194: + call start_cutscene + window_msg "Got a green mineral!" + bgm 0x00000001 + add_msg "..." + add_msg "Photon in another mineral\ndisappeared!" + winend + call end_cutscene + clear r6 + set r5 + clear_quest_board_handler 0x00000003 + set_quest_board_handler 0x00000003, label0127, "Green Mineral\n" + ret + +label0195@0x0195: + call start_cutscene + window_msg "Got a blue mineral!" + bgm 0x00000001 + add_msg "..." + add_msg "Photon in another mineral\ndisappeared!" + winend + call end_cutscene + clear r4 + set r6 + clear_quest_board_handler 0x00000003 + set_quest_board_handler 0x00000003, label0128, "blue Mineral\n" + ret + +label0196@0x0196: + call start_cutscene + window_msg "Got a blue mineral!" + bgm 0x00000001 + add_msg "..." + add_msg "Photon in another mineral\ndisappeared!" + winend + call end_cutscene + clear r5 + set r6 + clear_quest_board_handler 0x00000003 + set_quest_board_handler 0x00000003, label0128, "Blue Mineral\n" + ret + +label0123@0x0123: + disp_msg_qb "1. Miwontite\nOften found in the river" + add_msg "2. Dragon fang\nGrown in Dragon\'s jaws." + add_msg "3. Mineral\nUse your best judgement." + close_msg_qb + ret + +label0124@0x0124: + disp_msg_qb "Miwontite" + close_msg_qb + ret + +label0125@0x0125: + disp_msg_qb "Dragon fang" + close_msg_qb + ret + +label0126@0x0126: + disp_msg_qb "Red Mineral" + close_msg_qb + ret + +label0127@0x0127: + disp_msg_qb "Green Mineral" + close_msg_qb + ret + +label0128@0x0128: + disp_msg_qb "Blue Mineral" + close_msg_qb + ret + +label00DC@0x00DC: + p_action_disable + npc_nont + disable_movement1 0x00000000 + hud_hide + p_look_at 0x00000000, 0x00000001 + cine_enable + cam_zmin + call label00CF + ret + +label00DD@0x00DD: + cam_zmout + cine_disable + hud_show + enable_movement1 0x00000000 + npc_talk + p_action_enable + ret + +start_cutscene: + cine_enable + p_action_disable + disable_movement1 0x00000000 + ret + +end_cutscene: + enable_movement1 0x00000000 + p_action_enable + cine_disable + ret + +label0122@0x0122: + fadeout + call label00CF + fadein + ret + +label012C@0x012C: + clear_quest_board_handler 0x00000000 + clear_quest_board_handler 0x00000001 + clear_quest_board_handler 0x00000002 + clear_quest_board_handler 0x00000003 + clear r74 + clear r75 + clear r76 + clear r77 + ret + +label00CC@0x00CC: + jmpi_eq r2, 0x00000001, return + sync + leti r54, 0x0000000B + leti r55, 0x00000001 + if_zone_clear r56, r54-r55 + jmpi_eq r56, 0x00000000, label00CC + cine_enable + p_action_disable + disable_movement1 0x00000000 + window_msg "Got a dragon fang!" + winend + bgm 0x00000001 + enable_movement1 0x00000000 + p_action_enable + cine_disable + set r2 + set_quest_board_handler 0x00000002, label0125, "Dragon fang" + set r76 + ret + +label00CF@0x00CF: + leti r72, 0x00000000 + +label00D0@0x00D0: + sync + addi r72, 0x00000001 + jmpi_le r72, 0x0000001E, label00D0 + ret + +generate_bonuses: + leti r:rand_low, 0 + leti r:rand_high, 4 + call random + let r:item_data1_6, r:rand_st + + leti r:rand_low, 4 + leti r:rand_high, 12 + call random + let r:item_data1_7, r:rand_st + muli r:item_data1_7, 5 + subi r:item_data1_7, 10 + + leti r:rand_low, 0 + leti r:rand_high, 4 + call random + jmpi_ge r:rand_st, 2, generate_bonuses_no_hit + leti r:item_data1_8, 5 + leti r:rand_low, 4 + leti r:rand_high, 12 + call random + let r:item_data1_9, r:rand_st + muli r:item_data1_9, 5 + subi r:item_data1_9, 10 + ret +generate_bonuses_no_hit: + leti r:item_data1_8, 0x00000000 + leti r:item_data1_9, 0x00000000 + ret + +random_setup: + leti r:rand_st, 0x811C9DC5 + ret + +random: + getmtime r:rand_gen + + let r:rand_buf, r:rand_gen + andi r:rand_buf, 0xFF000000 + divi r:rand_buf, 0x01000000 + xor r:rand_st, r:rand_buf + muli r:rand_st, 0x01000193 + + let r:rand_buf, r:rand_gen + andi r:rand_buf, 0x00FF0000 + divi r:rand_buf, 0x00010000 + xor r:rand_st, r:rand_buf + muli r:rand_st, 0x01000193 + + let r:rand_buf, r:rand_gen + andi r:rand_buf, 0x0000FF00 + divi r:rand_buf, 0x00000100 + xor r:rand_st, r:rand_buf + muli r:rand_st, 0x01000193 + + andi r:rand_gen, 0x000000FF + xor r:rand_st, r:rand_gen + muli r:rand_st, 0x01000193 + + // This is biased to rand_min, but that matches Sega's implementation in V2+ + let r:rand_result, r:rand_st + mod2 r:rand_result, r:rand_high + jmp_ge r:rand_result, r:rand_low, random_done + let r:rand_result, r:rand_low + +random_done: + ret diff --git a/system/quests/download/q052-d1-e.bin b/system/quests/download/q052-d1-e.bin deleted file mode 100644 index a7420395b420cb9c5a1f29912f26f1528f07359e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5194 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 L#cf%6*zfp1*&Zq? diff --git a/system/quests/download/q052-d1-e.bin.txt b/system/quests/download/q052-d1-e.bin.txt new file mode 100755 index 00000000..5a76b200 --- /dev/null +++ b/system/quests/download/q052-d1-e.bin.txt @@ -0,0 +1,811 @@ +.version DC_V1 +.quest_num 19 +.language 1 +.name "The Retired Hunter" +.short_desc "I will kill\n10000 monsters\nbefore I die!" +.long_desc "Client: Donoph\nQuest:\n An old hunter, Donoph,\n is about to die.\n Defeat 99 monsters to\n fulfill his dream.\nReward: 8000 Meseta\n" + +start@0x0000: + gget 0x0073, r40 + set_floor_handler 0x00000000, label0096 + set_floor_handler 0x00000002, label0098 + set_floor_handler 0x0000000A, label00A0 + set_qt_success label00FA + get_difficulty_level_v1 r83 + leti r60, 0x00000000 + leti r61, 0x00000000 + leti r62, 0x00000000 + leti r63, 0x00000000 + map_designate r60-r63 + leti r60, 0x00000002 + leti r61, 0x00000000 + leti r62, 0x00000000 + leti r63, 0x00000003 + map_designate r60-r63 + leti r60, 0x0000000A + leti r61, 0x00000000 + leti r62, 0x00000002 + leti r63, 0x00000000 + map_designate r60-r63 + ret + +label0001@0x0001: + ret + +label0096@0x0096: + thread_stg label00D1 + jmpi_eq r255, 0x00000001, label0120 + jmpi_eq r253, 0x00000001, label00FB + thread_stg label00C8 + jmpi_eq r10, 0x00000001, label00BC + leti r60, 0x000000ED + leti r61, 0x00000000 + leti r62, 0x0000014D + leti r63, 0x00000000 + p_setpos 0x00000000, r60-r63 + leti r60, 0x000000E1 + leti r61, 0x00000000 + leti r62, 0x00000163 + leti r63, 0x000000AF + leti r64, 0x00000000 + leti r65, 0x00000001 + leti r66, 0x00000006 + npc_crp_id r60-r66, 0x00000007 + npc_stop 0x00000001 + call label0136 + set r10 + set_mainwarp 0x0000000A + ret + +label00BC@0x00BC: + clear r11 + ret + +label0120@0x0120: + npc_kill 0x00000001 + playbgm_epi 0x00000002 + ret + +label00FA@0x00FA: + gset 0x0089 + jmpi_eq r83, 0x00000000, label00FC + jmpi_eq r83, 0x00000001, label00FD + jmpi_eq r83, 0x00000002, label00FE + ret + +label00FC@0x00FC: + window_msg "You\'ve been awarded 8000 Meseta." + winend + bgm 0x00000001 + pl_add_meseta 0x00000000, 0x00001F40 + ret + +label00FD@0x00FD: + window_msg "You\'ve been awarded 12000 Meseta." + winend + bgm 0x00000001 + pl_add_meseta 0x00000000, 0x00002EE0 + ret + +label00FE@0x00FE: + window_msg "You\'ve been awarded 18000 Meseta." + winend + bgm 0x00000001 + pl_add_meseta 0x00000000, 0x00004650 + ret + +label00FB@0x00FB: + p_enablewarp + warp_on + npc_kill 0x00000001 + disable_movement1 0x00000000 + p_talk_guild 0x00000000 + ret + +label0098@0x0098: + ret + +label00A0@0x00A0: + call label0107 + thread_stg label00C8 + thread_stg label00D1 + thread_stg label0108 + thread_stg label0119 + thread_stg label011B + switch_on 0x00000008 + switch_on 0x0000005C + switch_on 0x0000005D + switch_on 0x00000035 + leti r60, 0x00000006 + leti r61, 0x00000027 + leti r62, 0x0000000B + leti r63, 0x00000046 + leti r64, 0x0000000A + leti r65, 0x00000012 + leti r66, 0x00000032 + leti r67, 0x0000001E + leti r68, 0x0000001E + leti r69, 0x0000000A + leti r70, 0x0000000A + leti r71, 0x00000050 + leti r72, 0x0000000A + leti r73, 0x00000032 + npc_param r60-r73, 0x00000006 + leti r60, 0xFFFFF92A + leti r61, 0x00000000 + leti r62, 0xFFFFF911 + leti r63, 0x00000032 + leti r64, 0x00000121 + leti r65, 0x00000078 + leti r66, 0xFFFFF9F2 + leti r67, 0x00000000 + leti r68, 0xFFFFF911 + col_plinaw r60-r68 + leti r60, 0xFFFFFFCE + leti r61, 0x00000000 + leti r62, 0xFFFFFC4A + leti r63, 0x00000032 + leti r64, 0x00000121 + leti r65, 0x00000078 + leti r66, 0x000000FA + leti r67, 0x00000000 + leti r68, 0xFFFFFC4A + col_plinaw r60-r68 + leti r60, 0xFFFFFFCE + leti r61, 0x00000000 + leti r62, 0xFFFFFBB4 + leti r63, 0x00000032 + leti r64, 0x00000121 + leti r65, 0x00000078 + leti r66, 0x000000FA + leti r67, 0x00000000 + leti r68, 0xFFFFFBB4 + col_plinaw r60-r68 + jmpi_eq r7, 0x00000001, label0001 + leti r60, 0x000001DA + leti r61, 0x00000000 + leti r62, 0x0000001F + leti r63, 0x0000001E + leti r64, 0x000000A1 + at_coords_call r60-r64 + ret + +label00A1@0x00A1: + // Could not determine data type; disassembling as code + jmpi_eq r11, 0x00000001, label0001 + set r11 + fadeout + leti r60, 0x000001DB + leti r61, 0x00000000 + leti r62, 0xFFFFFF06 + leti r63, 0xFFFFFFA6 + leti r64, 0x00000000 + leti r65, 0x00000001 + leti r66, 0x00000006 + npc_crp_id r60-r66, 0x00000007 + npc_stop 0x00000001 + leti r60, 0x000001DB + leti r61, 0x00000000 + leti r62, 0xFFFFFF9C + leti r63, 0x00000032 + leti r64, 0x0000015E + at_coords_call r60-r64 + fadein + ret + +label0121@0x0121: + // Could not determine data type; disassembling as code + npc_chkwarp + ret + +label0136@0x0136: + call label00DC + call label00CF + call label00CF + message 0x00000001, "Are you ?\nNice to meet you,\nI\'m Donoph." + add_msg "It\'s very simple. You\nhelp me defeat monsters.\nThat\'s it." + add_msg "I\'m a hunter, too.\nI worked very hard and\nkilled lots of monsters." + add_msg "My life\'s ambition was\nto kill 10000 monsters!" + add_msg "I almost succeeded when\nI retired just 10 years\nago." + add_msg "The last monster I\nkilled was my 9901th. I\nhad only 99 more to go!" + add_msg "I know I won\'t live much\nlonger. I want my dream\nto come true." + add_msg "I can\'t die a happy man\nunless I kill 99 more\nmonsters. Understand?" + mesend + list r100, "??\n!!" + switch_jmp r100, [label0138, label0139] + +label0138@0x0138: + message 0x00000001, "What?" + se 0x00000014 + add_msg "You\'re exactly the same\nas the other numbskulls." + add_msg "Cough, cough.\nIt\'s OK. All people\nthink differently." + jmp label013A + +label0139@0x0139: + message 0x00000001, "Good, good. I think\nyou understand what it\nis to be a MAN." + set r41 + jmp label013A + +label013A@0x013A: + message 0x00000001, "Now, listen." + add_msg "I only have 30 minutes\nto live, starting now." + add_msg "Trust me. I know this\nbecause, well I just do!" + add_msg "It means that I have to\nkill 99 monsters before\n30 minutes are up." + add_msg "And..." + add_msg "Oh, no, nothing.\nI\'ll go down now.\nPlease come later." + add_msg "Cough, cough!" + add_msg "I\'m OK, thank you.\nAh, by the way... if\nyou could..." + add_msg "Please don\'t tell\nanybody about this.\nOK?" + mesend + leti r60, 0x000000B9 + leti r61, 0x00000000 + leti r62, 0x00000127 + leti r63, 0x00000001 + pl_walk r60-r63, 0x00000004 + call label00CF + call label00CF + npc_kill 0x00000001 + call label00DD + set r0 + thread_stg label00D1 + ret + +label0140@0x0140: + // Could not determine data type; disassembling as code + jmpi_eq r255, 0x00000001, label0141 + message 0x00000065, "People die without\nexception." + add_msg "So people struggle to\nlive their lives." + add_msg "Don\'t you think so?" + mesend + ret + +label0141@0x0141: + message 0x00000065, "He wasn\'t just an old\nhunter. He\'s special!" + mesend + ret + +label0143@0x0143: + // Could not determine data type; disassembling as code + jmpi_eq r9, 0x00000001, label0141 + message 0x00000065, "People die without\nexception." + add_msg "So people struggle to\nlive their lives." + add_msg "Am I right, Donoph?" + mesend + ret + +label014A@0x014A: + // Could not determine data type; disassembling as code + jmpi_eq r1, 0x00000001, label014D + jmpi_eq r255, 0x00000001, label014C + jmpi_eq r7, 0x00000001, label014E + jmpi_eq r6, 0x00000001, label014B + jmpi_eq r40, 0x00000001, label014F + message 0x00000066, "You were with Donoph.\nYou don\'t have to\nbe secretive with me." + add_msg "His best friend was on\n\"Pioneer 1\". Heathcliff.\nThey were like brothers." + add_msg "So I think Donoph wanted\nto stand on the same\nground with him." + set r6 + mesend + ret + +label014F@0x014F: + message 0x00000066, "Hi ... \nHow have you been?" + add_msg "You were with Donoph.\nYou don\'t have to\nbe secretive with me." + add_msg "His best friend was on\n\"Pioneer 1\". Heathclif.\nThey were like brothers." + add_msg "So I think Donoph wanted\nto stand on the same\nground with him." + set r6 + mesend + ret + +label014E@0x014E: + jmpi_eq r9, 0x00000001, label014B + jmpi_eq r40, 0x00000000, label014B + message 0x00000066, "Donoph..." + add_msg ",\nDonoph needs your help." + mesend + ret + +label014B@0x014B: + message 0x00000066, "... ... ..." + add_msg "He needs your help." + mesend + ret + +label014C@0x014C: + message 0x00000066, "I think it was better\nfor him than sleeping\nin a comfortable bed." + add_msg "Thanks for taking care\nof him." + mesend + jmpi_eq r83, 0x00000000, label0001 + jmpi_eq r83, 0x00000001, label0001 + jmpi_eq r40, 0x00000000, label0001 + jmpi_eq r41, 0x00000000, label0001 + jmpi_eq r42, 0x00000001, label0001 + set_mainwarp 0x00000002 + bgm 0x00000000 + set r42 + ret + +label014D@0x014D: + message 0x00000066, "Heath adopted me." + add_msg "He didn\'t want to get on\nboard Pioneer 1..." + add_msg "He refused orders to\nleave with Pioneer 1\nseveral times." + add_msg "When he was finally\nforced to go, he told me\njust before he left that" + add_msg "evolution and damnation\nmay be two sides of the\nsame coin." + add_msg "It\'s all up to the\npeople living in it..." + add_msg "We may be in the same\nsituation..." + mesend + ret + +label0154@0x0154: + // Could not determine data type; disassembling as code + jmpi_eq r255, 0x00000001, label0156 + jmpi_eq r7, 0x00000001, label0157 + jmpi_eq r5, 0x00000001, label0155 + message 0x00000067, "DI...di...DID you SEE\nMr. Donoph?\nOops, I\'m sorry!" + add_msg "I...I\'m a bit nervous...\nSorry for shouting\nout so suddenly." + add_msg "Mr. Donoph is an old\nhunter. Did you see him?" + add_msg "Of course not...\nThanks." + add_msg "Where is he? He must\nstay in bed..." + set r5 + mesend + ret + +label0155@0x0155: + message 0x00000067, "Where has he gone?" + mesend + ret + +label0156@0x0156: + message 0x00000067, "Did he say that?\n...Mr. Donoph..." + add_msg "But I\'m a nurse. I can\'t\nlet him walk around\nwhile I know about it!" + mesend + ret + +label0157@0x0157: + jmpi_eq r9, 0x00000001, label0155 + message 0x00000067, "Mr. Donoph! Please come\nback to the hospital!" + add_msg "I know you\'re hiding\naround here!" + mesend + ret + +label015E@0x015E: + // Could not determine data type; disassembling as code + jmpi_eq r7, 0x00000001, label0001 + npc_play 0x00000000 + call label00E4 + message 0x00000001, "Ah, you came. I was\na little worried that\nyou might not come." + add_msg "Cough, cough!\n(Breath)" + add_msg "No, I\'m OK! I must live\nuntil I kill 10000\nmonsters!" + add_msg "Ha, ha, ha!\nNow, let\'s go!" + mesend + set r7 + bgm 0x00000001 + call label00E5 + ret + +label015F@0x015F: + // Could not determine data type; disassembling as code + call label00E4 + message 0x00000001, "No, not now..." + mesend + call label00E5 + ret + +label0160@0x0160: + jmpi_eq r255, 0x00000001, label0001 + set r254 + call label00E4 + message 0x00000001, "Cough!\nCough!" + add_msg "Finally... I killed\n10000 of them..." + add_msg "Thank you. Now I can\ngo ...cough!\nCough!" + add_msg "You go back to the Guild\nto receive your reward.\nI\'ll stay here." + add_msg "I have lived... enough.\n...Heath..." + mesend + set r255 + bgm 0x00000001 + fadeout + call label00CF + npc_kill 0x00000001 + call label00CF + fadein + call label00E5 + ret + +label041A@0x041A: + // Could not determine data type; disassembling as code + p_action_disable + npc_nont + disable_movement1 0x00000000 + hud_hide + cine_enable + cam_zmin + call label00CF + jmpi_eq r1, 0x00000001, label016B + window_msg "Main computer access..." + add_msg "Access denied." + add_msg "." + add_msg ".." + add_msg "Local computer access..." + add_msg "Access OK." + add_msg "." + add_msg ".." + add_msg "Search Heathcliff..." + add_msg "." + add_msg ".." + add_msg "..." + add_msg "Search result: 1" + add_msg "Heathcliff Flowen" + add_msg "...W... in 084 year, died" + add_msg "There is a message.\nDo you want to play\nthe message?" + winend + list r100, "Yes\nNo" + switch_jmp r100, [label016A, label016B] + +label016A@0x016A: + window_msg "Start playing the\nmessage." + add_msg "I know who is watching\nthis..." + add_msg "I decided to leave a\nlittle ahead of you." + add_msg "It\'s sad that we can\'t\nsee each other, but I\ndon\'t want to tempt fate." + add_msg "It\'s very peaceful here.\nIt\'s boring because it\'s\ntoo peaceful." + add_msg "Donoph... This is not the\nright place for you. \nEspecially, for you..." + add_msg "Ha ha ha" + add_msg "My daughter will take\ncare of you. Don\'t cause\nany problems, old man." + add_msg "You are her favorite.\nEver since she was a\nsmall child, I\'d imagine." + add_msg "... ... ..." + add_msg "And, Zook, I know you\nwant \"out,\" but don\'t do\nanything stupid." + add_msg "You\'re such a stubborn\nguy. Even when we were\nyoung." + add_msg "Well... I did something\nthat I\'m not really \nproud of..." + add_msg "We are so old now. I hope\nyou understand." + add_msg "Don\'t let that girl worry\nabout you so much." + add_msg "We still have a lot to\ntalk about, but I guess\nit\'ll be a while." + add_msg "See you again...\nover there." + add_msg "..." + add_msg "... ..." + add_msg "... ... ..." + add_msg "Finish playing." + set r1 + winend + cam_zmout + cine_disable + hud_show + enable_movement1 0x00000000 + npc_talk + p_action_enable + ret + +label016B@0x016B: + window_msg "Go back to normal\nfunction." + winend + cam_zmout + cine_disable + hud_show + enable_movement1 0x00000000 + npc_talk + p_action_enable + ret + +label00DC@0x00DC: + p_action_disable + npc_nont + disable_movement1 0x00000000 + hud_hide + p_look_at 0x00000000, 0x00000001 + p_look_at 0x00000001, 0x00000000 + cine_enable + cam_zmin + call label00CF + ret + +label00DD@0x00DD: + cam_zmout + cine_disable + hud_show + enable_movement1 0x00000000 + npc_talk + p_action_enable + ret + +label00E4@0x00E4: + p_action_disable + npc_nont + disable_movement1 0x00000000 + p_look 0x00000000 + p_look_at 0x00000001, 0x00000000 + hud_hide + cine_enable + cam_zmin + call label00CF + ret + +label00E5@0x00E5: + cam_zmout + cine_disable + hud_show + enable_movement1 0x00000000 + npc_talk + p_action_enable + ret + +label00CF@0x00CF: + leti r72, 0x00000000 + +label00D0@0x00D0: + sync + addi r72, 0x00000001 + jmpi_le r72, 0x0000001E, label00D0 + ret + +label00D1@0x00D1: + jmpi_eq r254, 0x00000001, label0001 + jmpi_eq r253, 0x00000001, label0001 + jmpi_eq r0, 0x00000000, label0001 + jmpi_gt r200, 0x00000000, label00D2 + leti r200, 0x0000D2F0 + +label00D2@0x00D2: + window_time + sync + subi r200, 0x00000001 + let r70, r200 + divi r70, 0x0000001E + winset_time r70 + jmpi_eq r254, 0x00000001, label00D4 + jmpi_gt r70, 0x00000000, label00D2 + set r253 + disable_movement1 0x00000000 + thread_stg label00D3 + window_msg "TIME UP!" + winend + ret + +label00D3@0x00D3: + call label00CF + fadeout + winend_time + p_return_guild + ret + +label00D4@0x00D4: + winend_time + ret + +label0108@0x0108: + sync + chk_ene_num r234 + jmpi_le r234, 0x00000005, label0108 + jmpi_eq r99, 0x00000000, label0116 + jmpi_le r234, 0x00000009, label0108 + jmpi_eq r86, 0x00000000, label0109 + jmpi_le r234, 0x00000013, label0108 + jmpi_eq r87, 0x00000000, label010A + jmpi_le r234, 0x0000001D, label0108 + jmpi_eq r88, 0x00000000, label010B + jmpi_le r234, 0x00000027, label0108 + jmpi_eq r89, 0x00000000, label010C + jmpi_le r234, 0x00000031, label0108 + jmpi_eq r90, 0x00000000, label010D + jmpi_le r234, 0x0000003B, label0108 + jmpi_eq r91, 0x00000000, label010E + jmpi_le r234, 0x00000040, label0108 + jmpi_eq r100, 0x00000000, label0117 + jmpi_le r234, 0x00000045, label0108 + jmpi_eq r92, 0x00000000, label010F + jmpi_le r234, 0x0000004F, label0108 + jmpi_eq r93, 0x00000000, label0110 + jmpi_le r234, 0x00000059, label0108 + jmpi_eq r94, 0x00000000, label0111 + jmpi_le r234, 0x0000005E, label0108 + jmpi_eq r95, 0x00000000, label0112 + jmpi_le r234, 0x0000005F, label0108 + jmpi_eq r96, 0x00000000, label0113 + jmpi_le r234, 0x00000060, label0108 + jmpi_eq r97, 0x00000000, label0114 + jmpi_le r234, 0x00000061, label0108 + jmpi_eq r98, 0x00000000, label0115 + jmpi_le r234, 0x00000062, label0108 + call label00CF + jmp label0160 + ret + +label0109@0x0109: + p_action_disable + message 0x00000001, "This is number 10!" + mesend + set r86 + p_action_enable + jmp label0108 + ret + +label010A@0x010A: + p_action_disable + message 0x00000001, "20!" + mesend + set r87 + p_action_enable + jmp label0108 + ret + +label010B@0x010B: + p_action_disable + message 0x00000001, "30!" + mesend + set r88 + p_action_enable + jmp label0108 + ret + +label010C@0x010C: + p_action_disable + message 0x00000001, "40!" + mesend + set r89 + p_action_enable + jmp label0108 + ret + +label010D@0x010D: + p_action_disable + message 0x00000001, "50!" + mesend + set r90 + p_action_enable + jmp label0108 + ret + +label010E@0x010E: + p_action_disable + message 0x00000001, "60!" + mesend + set r91 + p_action_enable + jmp label0108 + ret + +label010F@0x010F: + p_action_disable + message 0x00000001, "70!" + mesend + set r92 + p_action_enable + jmp label0108 + ret + +label0110@0x0110: + p_action_disable + message 0x00000001, "80!" + mesend + set r93 + p_action_enable + jmp label0108 + ret + +label0111@0x0111: + p_action_disable + message 0x00000001, "90!" + mesend + set r94 + p_action_enable + jmp label0108 + ret + +label0112@0x0112: + p_action_disable + message 0x00000001, "95!" + mesend + set r95 + p_action_enable + jmp label0108 + ret + +label0113@0x0113: + p_action_disable + message 0x00000001, "96!" + mesend + set r96 + p_action_enable + jmp label0108 + ret + +label0114@0x0114: + p_action_disable + message 0x00000001, "97!" + mesend + set r97 + p_action_enable + jmp label0108 + ret + +label0115@0x0115: + p_action_disable + message 0x00000001, "98!" + mesend + set r98 + p_action_enable + jmp label0108 + ret + +label0116@0x0116: + call label00CF + call label00E4 + message 0x00000001, "Ah ha!\nThis is going really well.\nI\'m just mowing them down!" + mesend + call label00E5 + set r99 + jmp label0108 + ret + +label011A@0x011A: + jmpi_eq r91, 0x00000001, label0001 + call label00E4 + message 0x00000001, "Half way done... There\nshould only be about 50 more\nenemies left to finish off!" + mesend + call label00E5 + jmp label0108 + ret + +label0117@0x0117: + call label00CF + call label00E4 + message 0x00000001, "Cough! Cough!\nAlmost done..." + add_msg "Almost there.\nI\'ve got to hang on!" + mesend + call label00E5 + set r100 + jmp label0108 + ret + +label0119@0x0119: + jmpi_eq r85, 0x00000001, label0001 + sync + leti r60, 0x0000000A + leti r61, 0x0000002A + if_zone_clear r62, r60-r61 + jmpi_eq r62, 0x00000000, label0119 + call label00CF + set r85 + jmp label011A + ret + +label011B@0x011B: + jmpi_eq r85, 0x00000001, label0001 + sync + leti r60, 0x0000000A + leti r61, 0x0000001F + if_zone_clear r62, r60-r61 + jmpi_eq r62, 0x00000000, label011B + call label00CF + set r85 + jmp label011A + ret + +label00C8@0x00C8: + sync + p_dead r58, 0x00000000 + nop + nop + nop + jmpi_eq r58, 0x00000001, label00CA + p_dead r238, 0x01000000 + nop + nop + nop + jmpi_eq r238, 0x00000000, label00C8 + warp_off + p_disablewarp + call label00CF + call label00CF + set r253 + fadeout + npc_kill 0x00000001 + p_return_guild + ret + +label00CA@0x00CA: + ret + +label0107@0x0107: + npc_text 0x00000004, "What can I do..." + npc_text 0x0000000B, "Let\'s move on." + npc_text 0x0000000D, "Gyaaah!" + npc_text 0x0000000E, "I\'m still OK!" + npc_text 0x0000000F, "Mph!" + ret