Skilled player (1748)
Joined: 9/17/2009
Posts: 4993
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I was bingeing Inuyasha, and I thought I could try playing this game. This game is kinda really bad due to very high encounter rate, but that appears to be luck-manipulatable. I made a script that displays stuff: Download InuyashaDS.lua
Language: lua

client.SetGameExtraPadding(0, 0, 200, 0) text = gui.pixelText memory.usememorydomain("Main RAM") read8 = memory.read_u8 read16 = memory.read_u16_le read24 = memory.read_u24_be read32 = memory.read_u32_le local Addresses = { --to use ARM 7/9 System Bus, add 02000000 to the addresses --[[ there's 3 Janis characters 1. Start 2. Spells unlocked 3. Spear unlocked ]]-- Area = 0x0B40C4, --2 bytes; 7 is battle; 579 total Money = 0x0C4AB0, -- Janis1_Start = 0x0c6469, --Janis without any spells Janis1_Item_1 = 0x0C64A4, --4 bytes Janis1_Item_2 = 0x0C64A8, --4 bytes Janis1_Item_3 = 0x0C64AC, --4 bytes Janis1_Item_4 = 0x0C64B0, --4 bytes Janis1_Item_5 = 0x0C64B4, --4 bytes Janis1_Item_6 = 0x0C64B8, --4 bytes Janis1_Item_7 = 0x0C64BC, --4 bytes Janis1_Item_8 = 0x0C64C0, --4 bytes Janis1_Item_9 = 0x0C64C4, --4 bytes Janis1_Item_10 = 0x0C64C8, --4 bytes Janis1_EXP = 0x0C64D6, --2 bytes Janis1_HP = 0x0C64D8, --2 bytes Janis1_EP = 0x0C64DA, --2 bytes Janis1_MAX_HP = 0x0C64DC,--2 bytes Janis1_MAX_EP = 0x0C64DE,--2 bytes Janis1_LVL = 0x0C64FC, Janis1_ATK = 0x0C64FD, Janis1_DEF = 0x0C64FE, Janis1_DEX = 0x0C64FF, Janis1_AGI = 0x0C6500, --Janis with spells unlocked Janis2_Item_1 = 0x0C6538, --4 bytes Janis2_Item_2 = 0x0C653C, --4 bytes Janis2_Item_3 = 0x0C6540, --4 bytes Janis2_Item_4 = 0x0C6544, --4 bytes Janis2_Item_5 = 0x0C6548, --4 bytes Janis2_Item_6 = 0x0C654C, --4 bytes Janis2_Item_7 = 0x0C6550, --4 bytes Janis2_Item_8 = 0x0C6554, --4 bytes Janis2_Item_9 = 0x0C6558, --4 bytes Janis2_Item_10 = 0x0C655C, --4 bytes Janis2_EXP = 0x0C656A, --2 bytes Janis2_HP = 0x0C656C, --2 bytes Janis2_EP = 0x0C656CE, --2 bytes Janis2_MAX_HP = 0x0C6570,--2 bytes Janis2_MAX_EP = 0x0C6572,--2 bytes Janis2_LVL = 0x0C6590, Janis2_ATK = 0x0C6591, Janis2_DEF = 0x0C6592, Janis2_DEX = 0x0C6593, Janis2_AGI = 0x0C6594, --Janis with spear unlocked Janis3_Item_1 = 0x0C65CC, --4 bytes Janis3_Item_2 = 0x0C65D0, --4 bytes Janis3_Item_3 = 0x0C65D4, --4 bytes Janis3_Item_4 = 0x0C65D8, --4 bytes Janis3_Item_5 = 0x0C65DC, --4 bytes Janis3_Item_6 = 0x0C65E0, --4 bytes Janis3_Item_7 = 0x0C65E4, --4 bytes Janis3_Item_8 = 0x0C65E8, --4 bytes Janis3_Item_9 = 0x0C65EC, --4 bytes Janis3_Item_10 = 0x0C65F0, --4 bytes Janis3_EXP = 0x0C65FE, --2 bytes Janis3_HP = 0x0C6600, --2 bytes Janis3_EP = 0x0C6602, --2 bytes Janis3_MAX_HP = 0x0C6604,--2 bytes Janis3_MAX_EP = 0x0C6606,--2 bytes Janis3_LVL = 0x0C6624, Janis3_ATK = 0x0C6625, Janis3_DEF = 0x0C6626, Janis3_DEX = 0x0C6627, Janis3_AGI = 0x0C6628, --Inu Yasha Inuyasha1_Item_1 = 0x0C6660, --4 bytes Inuyasha1_Item_2 = 0x0C6664, --4 bytes Inuyasha1_Item_3 = 0x0C6668, --4 bytes Inuyasha1_Item_4 = 0x0C666C, --4 bytes Inuyasha1_Item_5 = 0x0C6670, --4 bytes Inuyasha1_Item_6 = 0x0C6674, --4 bytes Inuyasha1_Item_7 = 0x0C6678, --4 bytes Inuyasha1_Item_8 = 0x0C667C, --4 bytes Inuyasha1_Item_9 = 0x0C6680, --4 bytes Inuyasha1_Item_10 = 0x0C6684, --4 bytes Inuyasha1_EXP = 0x0C6692, --2 bytes Inuyasha1_HP = 0x0C6694, --2 bytes Inuyasha1_EP = 0x0C6696, --2 bytes Inuyasha1_MAX_HP = 0x0C6698,--2 bytes Inuyasha1_MAX_EP = 0x0C669A,--2 bytes Inuyasha1_LVL = 0x0C66B8, Inuyasha1_ATK = 0x0C66B9, Inuyasha1_DEF = 0x0C66BA, Inuyasha1_DEX = 0x0C66BB, Inuyasha1_AGI = 0x0C66BC, --Inu Yasha (Human) Inuyasha2_Item_1 = 0x0C66F4, --4 bytes Inuyasha2_Item_2 = 0x0C66F8, --4 bytes Inuyasha2_Item_3 = 0x0C66FC, --4 bytes Inuyasha2_Item_4 = 0x0C6700, --4 bytes Inuyasha2_Item_5 = 0x0C6704, --4 bytes Inuyasha2_Item_6 = 0x0C6708, --4 bytes Inuyasha2_Item_7 = 0x0C670C, --4 bytes Inuyasha2_Item_8 = 0x0C6710, --4 bytes Inuyasha2_Item_9 = 0x0C6714, --4 bytes Inuyasha2_Item_10 = 0x0C6718, --4 bytes Inuyasha2_EXP = 0x0C6726, --2 bytes Inuyasha2_HP = 0x0C6728, --2 bytes Inuyasha2_EP = 0x0C672A, --2 bytes Inuyasha2_MAX_HP = 0x0C672C,--2 bytes Inuyasha2_MAX_EP = 0x0C672E,--2 bytes Inuyasha2_LVL = 0x0C674C, Inuyasha2_ATK = 0x0C674D, Inuyasha2_DEF = 0x0C674E, Inuyasha2_DEX = 0x0C674F, Inuyasha2_AGI = 0x0C6750, Kagome_Item_1 = 0x0C6788, --4 bytes Kagome_Item_2 = 0x0C678C, --4 bytes Kagome_Item_3 = 0x0C6790, --4 bytes Kagome_Item_4 = 0x0C6794, --4 bytes Kagome_Item_5 = 0x0C6798, --4 bytes Kagome_Item_6 = 0x0C679C, --4 bytes Kagome_Item_7 = 0x0C67A0, --4 bytes Kagome_Item_8 = 0x0C67A4, --4 bytes Kagome_Item_9 = 0x0C67A8, --4 bytes Kagome_Item_10 = 0x0C67AC, --4 bytes Kagome_EXP = 0x0C67BA, --2 bytes Kagome_HP = 0x0C67BC, --2 bytes Kagome_EP = 0x0C67BE, --2 bytes Kagome_MAX_HP = 0x0C67C0,--2 bytes Kagome_MAX_EP = 0x0C67C2,--2 bytes Kagome_LVL = 0x0C67E0, Kagome_ATK = 0x0C67E1, Kagome_DEF = 0x0C67E2, Kagome_DEX = 0x0C67E3, Kagome_AGI = 0x0C67E4, Miroku_Item_1 = 0x0C681C, --4 bytes Miroku_Item_2 = 0x0C6820, --4 bytes Miroku_Item_3 = 0x0C6824, --4 bytes Miroku_Item_4 = 0x0C6828, --4 bytes Miroku_Item_5 = 0x0C682C, --4 bytes Miroku_Item_6 = 0x0C6830, --4 bytes Miroku_Item_7 = 0x0C6834, --4 bytes Miroku_Item_8 = 0x0C6838, --4 bytes Miroku_Item_9 = 0x0C683C, --4 bytes Miroku_Item_10 = 0x0C6840, --4 bytes Miroku_EXP = 0x0C684E, Miroku_HP = 0x0C6850, Miroku_EP = 0x0C6852, Miroku_MAX_HP = 0x0C6854, Miroku_MAX_EP = 0x0C6856, Miroku_LVL = 0x0C6874, Miroku_ATK = 0x0C6875, Miroku_DEF = 0x0C6876, Miroku_DEX = 0x0C6877, Miroku_AGI = 0x0C6878, Sango_Item_1 = 0x0C68B0, --4 bytes Sango_Item_2 = 0x0C68B4, --4 bytes Sango_Item_3 = 0x0C68B8, --4 bytes Sango_Item_4 = 0x0C68BC, --4 bytes Sango_Item_5 = 0x0C68C0, --4 bytes Sango_Item_6 = 0x0C68C4, --4 bytes Sango_Item_7 = 0x0C68C8, --4 bytes Sango_Item_8 = 0x0C68CC, --4 bytes Sango_Item_9 = 0x0C68D0, --4 bytes Sango_Item_10 = 0x0C68D4, --4 bytes Sango_EXP = 0x0C68E2, Sango_HP = 0x0C68E4, Sango_EP = 0x0C68E6, Sango_MAX_HP = 0x0C68E8, Sango_MAX_EP = 0x0C68EA, Sango_LVL = 0x0C6908, Sango_ATK = 0x0C6909, Sango_DEF = 0x0C690A, Sango_DEX = 0x0C690B, Sango_AGI = 0x0C690C, Shippo1_Item_1 = 0x0C6944, --4 bytes Shippo1_Item_2 = 0x0C6948, --4 bytes Shippo1_Item_3 = 0x0C694C, --4 bytes Shippo1_Item_4 = 0x0C6950, --4 bytes Shippo1_Item_5 = 0x0C6954, --4 bytes Shippo1_Item_6 = 0x0C6958, --4 bytes Shippo1_Item_7 = 0x0C695C, --4 bytes Shippo1_Item_8 = 0x0C6960, --4 bytes Shippo1_Item_9 = 0x0C6964, --4 bytes Shippo1_Item_10 = 0x0C6968, --4 bytes Shippo1_EXP = 0x0C6976, Shippo1_HP = 0x0C6978, Shippo1_EP = 0x0C697A, Shippo1_MAX_HP = 0x0C697C, Shippo1_MAX_EP = 0x0C697E, Shippo1_LVL = 0x0C699C, Shippo1_ATK = 0x0C699D, Shippo1_DEF = 0x0C699E, Shippo1_DEX = 0x0C699F, Shippo1_AGI = 0x0C69A0, Shippo2_Item_1 = 0x0C69D8, --4 bytes Shippo2_Item_2 = 0x0C69DC, --4 bytes Shippo2_Item_3 = 0x0C69E0, --4 bytes Shippo2_Item_4 = 0x0C69E4, --4 bytes Shippo2_Item_5 = 0x0C69E8, --4 bytes Shippo2_Item_6 = 0x0C69EC, --4 bytes Shippo2_Item_7 = 0x0C69F0, --4 bytes Shippo2_Item_8 = 0x0C69F4, --4 bytes Shippo2_Item_9 = 0x0C69F8, --4 bytes Shippo2_Item_10 = 0x0C69FC, --4 bytes Shippo2_EXP = 0x0C6A0A, Shippo2_HP = 0x0C6A0C, Shippo2_EP = 0x0C6A0E, Shippo2_MAX_HP = 0x0C6A10, Shippo2_MAX_EP = 0x0C6A12, Shippo2_LVL = 0x0C6A30, Shippo2_ATK = 0x0C6A31, Shippo2_DEF = 0x0C6A32, Shippo2_DEX = 0x0C6A33, Shippo2_AGI = 0x0C6A34, --Shikioni 1 Shikioni1_EXP = 0x0C6CEE, --2 bytes Shikioni1_HP = 0x0C6CF0, --2 bytes Shikioni1_EP = 0x0C6CF2, --2 bytes Shikioni1_MAX_HP = 0x0C6CF4,--2 bytes Shikioni1_MAX_EP = 0x0C6CF6,--2 bytes Shikioni1_LVL = 0x0C6D14, Shikioni1_ATK = 0x0C6D15, Shikioni1_DEF = 0x0C6D16, Shikioni1_DEX = 0x0C6D17, Shikioni1_AGI = 0x0C6D18, --0C6DC8 NPC1_EXP = 0x0C6E16, --related to how much they will give me NPC1_HP = 0x0C6E18, NPC1_EP = 0x0C6E1A, NPC1_MAX_HP = 0x0C6E1C, NPC1_MAX_EP = 0x0C6E1E, NPC1_Sprite_ID = 0x0C6E24, --2 bytes? NPC1_Sprite_Palette = 0x0C6E34, --2 bytes? NPC1_LVL = 0x0C6E3C, NPC1_ATK = 0x0C6E3D, NPC1_DEF = 0x0C6E3E, NPC1_DEX = 0x0C6E3F, NPC1_AGI = 0x0C6E40, RNG1 = 0x107B98, RNG2 = 0x107B9C, X = 0x2AD49C, Y = 0x2AD4A0 } local Battle = { EXP = {0,0,0,0,0,0,0,0,0,0,0,0,0}, HP = {0,0,0,0,0,0,0,0,0,0,0,0,0}, EP = {0,0,0,0,0,0,0,0,0,0,0,0,0}, Max_HP = {0,0,0,0,0,0,0,0,0,0,0,0,0}, Max_EP = {0,0,0,0,0,0,0,0,0,0,0,0,0}, Sprite_ID = {0,0,0,0,0,0,0,0,0,0,0,0,0}, Sprite_ID2 = {0,0,0,0,0,0,0,0,0,0,0,0,0}, Sprite_Palette = {0,0,0,0,0,0,0,0,0,0,0,0,0}, Sprite_Palette2 = {0,0,0,0,0,0,0,0,0,0,0,0,0}, LVL = {0,0,0,0,0,0,0,0,0,0,0,0,0}, ATK = {0,0,0,0,0,0,0,0,0,0,0,0,0}, DEF = {0,0,0,0,0,0,0,0,0,0,0,0,0}, DEX = {0,0,0,0,0,0,0,0,0,0,0,0,0}, AGI = {0,0,0,0,0,0,0,0,0,0,0,0,0} } --starts from 1, 24BF06 for menu, 0C4A64 for overworld local Character = { "Janis 1", --1 start "Janis 2", --2 spell unlocked "Janis 3", --3 spear unlocked "Inuyasha 1", --4 Demon "Inuyasha 2", --5 Human "Kagome", --6 "Miroku", --7 "Sango", --8 "Shippo 1", --9 Alone, no Kirara "Shippo 2", --10 Riding Kirara --not sure if following are playable "Kohaku", --11 "Koga", --12 "Tsugumi", --13 "Sesshomaru", --14 "Shiki Demon 1", --15 from start "Shiki Demon 2", --16 from start } --total amount of experience at current level to reach next. So you need 17 xp total to reach level 2 from 1 local XP = { [1] = 17, [2] = 49, [3] = 94, [4] = 153, [5] = 231, [6] = 330, [7] = 450, [8] = 590, [9] = 746, [10] = 919, [11] = 1109, [12] = 1314, [13] = 1533, [14] = 1769, [15] = 2026, [16] = 2300, [17] = 2589, [18] = 2899, [19] = 3227, [20] = 3572, [21] = 3933, [22] = 4308, [23] = 4698, [24] = 5102, [25] = 5523, [26] = 5959, [27] = 6412, [28] = 6884, [29] = 7377, [30] = 7889, [31] = 8422, [32] = 8977, [33] = 9551, [34] = 10147, [35] = 10765, [36] = 11401, [37] = 12056, [38] = 12734, [39] = 13433, [40] = 14154, [41] = 14896, [42] = 15661, [43] = 16443, [44] = 17244, [45] = 18066, [46] = 18905, [47] = 19764, [48] = 20645, [49] = 21545, [50] = 22466, [51] = 23404, [52] = 24363, [53] = 25342, [54] = 26342, [55] = 27342, [56] = 28342, [57] = 29342, [58] = 30342, [59] = 31367, [60] = 32392, [61] = 33417, [62] = 34442, [63] = 35467, [64] = 36517, [65] = 37567, [66] = 38617, [67] = 39667, [68] = 40717, [69] = 41817, [70] = 42917, [71] = 44017, [72] = 45117, [73] = 46217, [74] = 47367, [75] = 48517, [76] = 49667, [77] = 50817, [78] = 51967, [79] = 53167, [80] = 54367, [81] = 55567, [82] = 56767, [83] = 57967, [84] = 59217, [85] = 60467, [86] = 61717, [87] = 62967, [88] = 64217, [89] = 65535, [90] = 0 } --checks the mouse position during a click relative to the client and see if its within some range function get_mouse_pos(x,y,width,height) mx = input.getmouse().X my = input.getmouse().Y --input.getmouse() is already relative to client :) gui.drawRectangle(x, y, width, height, "red", nil) --So I know where the heck are the clickboxes --subtract 192, since top of bottom screen is y == 0 for mouse Y if (mx >= x and mx <= x+width) and (my >= y-192 and my <= y+height*2-192) then return true end return false end function MLA(A,B,C) --http://tasvideos.org/forum/viewtopic.php?p=489512#489512 local reslow = A * (B%0x10000) -- A multiplied with lower 16 bits of B local reshigh = A * (math.floor(B/0x10000)%0x10000) -- A multiplied with higher 16 bits of B (shifted down) reshigh = reshigh%0x10000 -- only 16 bits can matter here if result is 32 bits return (reshigh*0x10000 + reslow + C)%0x100000000 -- recombine and cut off to 32 bits end function MUL64(A,B) --http://tasvideos.org/forum/viewtopic.php?p=489523#489523 local reslow = A * (B%0x10000) -- 0x0000LLLLLLLLLLLL local reshigh = A * math.floor(B/0x10000) -- 0xHHHHHHHHHHHH0000 local reslow_lo = reslow%0x100000000 -- 0x00000000LLLLLLLL local reslow_hi = math.floor(reslow/0x100000000) -- 0x0000LLLL00000000 local reshigh_lo = reshigh%0x10000 -- 0x00000000HHHH0000 local reshigh_hi = math.floor(reshigh/0x10000) -- 0xHHHHHHHH00000000 local low32 = reshigh_lo*0x10000 + reslow_lo local high32 = reshigh_hi + reslow_hi high32 = high32 + math.floor(low32/0x100000000) -- add what carries over low32 = low32%0x100000000 -- 32 bit high32 = high32%0x100000000 -- 32 bit return low32,high32 end function rng(r0, rng1, rng2) --020461c4: e59f1050 ldr r1, [pc, #+0x50] local r1 = 0 local r2, r3 = 0,0 local r4, lr, carry = 0,0,0 local rng1_2, rng2_2 = 0, 0 r4, lr = MUL64(0x6C078965, rng1) lr = MLA(0x6C078965, rng2, lr) lr = MLA(0x5D588B65, rng1, lr) r3 = 0x00269EC3 + r4 carry = r3 > 4294967295 and 1 or 0 rng1_2 = r3 % 4294967296 --107b98 r4 = lr + carry rng2_2 = r4 --107b9c if (r0 ~= 0) then r4 = (r4 * r0) >> 0x20 end r0 = r4 return r0, rng1_2, rng2_2 end function update_battle() local start = Addresses.NPC1_EXP --0x94 long for i = 0, 9 do Battle.EXP[i+1] = read16(start + (i * 0x94)) Battle.HP[i+1] = read16(start + 0x2 + (i * 0x94)) Battle.EP[i+1] = read16(start + 0x4 + (i * 0x94)) Battle.Max_HP[i+1] = read16(start + 0x6 + (i * 0x94)) Battle.Max_EP[i+1] = read16(start + 0x8 + (i * 0x94)) Battle.Sprite_ID[i+1] = read8(start + 0xE + (i * 0x94)) Battle.Sprite_ID2[i+1] = read8(start + 0xF + (i * 0x94)) Battle.Sprite_Palette[i+1] = read8(start + 0x1E + (i * 0x94)) Battle.Sprite_Palette2[i+1] = read8(start + 0x1F + (i * 0x94)) Battle.LVL[i+1] = read8(start + 0x26 + (i * 0x94)) Battle.ATK[i+1] = read8(start + 0x27 + (i * 0x94)) Battle.DEF[i+1] = read8(start + 0x28 + (i * 0x94)) Battle.DEX[i+1] = read8(start + 0x29 + (i * 0x94)) Battle.AGI[i+1] = read8(start + 0x2A + (i * 0x94)) end end function display_battle() local text_x = 260 local text_y = 0 for i = 1, 13 do if Battle.Max_HP[i] > 0 then text(text_x,text_y, string.format('%d LV: %d HP: %d/%d EP: %d/%d', i, Battle.LVL[i], Battle.HP[i], Battle.Max_HP[i], Battle.EP[i], Battle.Max_EP[i])) text_y = text_y + 8 text(text_x,text_y, string.format('ATK: %d DEF: %d DEX: %d AGI: %d EXP: %d', Battle.ATK[i], Battle.DEF[i], Battle.DEX[i], Battle.AGI[i], Battle.EXP[i])) text_y = text_y + 8 end end end local toggle = {0,0,1,1,0,1,1,1,0,1} function display_stats() local text_x = 260 local text_y = 216 local box_y = 192; local box_x = {[1] = 0, [2] = 12, [3] = 24, [4] = 36, [5] = 48, [6] = 60, [7] = 72, [8] = 84, [9] = 96, [10] = 108}; local box_width = 8; local box_height = 8; local start = Addresses.Janis1_EXP for i = 1, 10 do if toggle[i] == 1 then local XP = read16(start + (i-1) * 0x94) local HP = read16(start + 0x2 + (i-1) * 0x94) local EP = read16(start + 0x4 + (i-1) * 0x94) local Max_HP = read16(start + 0x6 + (i-1) * 0x94) local Max_EP = read16(start + 0x8 + (i-1) * 0x94) local LVL = read8(start + 0x26 + (i-1) * 0x94) local ATK = read8(start + 0x27 + (i-1) * 0x94) local DEF = read8(start + 0x28 + (i-1) * 0x94) local DEX = read8(start + 0x29 + (i-1) * 0x94) local AGI = read8(start + 0x2A + (i-1) * 0x94) color = "yellow" text(text_x,text_y, string.format('%s', Character[i])) text_y = text_y + 8 text(text_x,text_y, string.format('LV: %d HP: %d/%d EP: %d/%d', LVL, HP, Max_HP, EP, Max_EP)) text_y = text_y + 8 text(text_x,text_y, string.format('ATK: %d DEF: %d DEX: %d AGI: %d EXP: %d', ATK, DEF, DEX, AGI, XP)) text_y = text_y + 8 else color = "green" end gui.drawRectangle(box_x[i]+text_x,box_y,box_width,box_height, color, nil) if (input.getmouse().Left and get_mouse_pos(box_x[i]+text_x,box_y,box_width,box_height)) then toggle[i] = (toggle[i] == 1 and 0 or 1) --flip them end end end local i = 1 console.clear() update_battle() console.log(string.format('%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d', Battle.Sprite_ID[i], Battle.Sprite_ID2[i], Battle.Sprite_Palette[i], Battle.Sprite_Palette2[i], Battle.EXP[i], Battle.Max_HP[i], Battle.Max_EP[i], Battle.LVL[i], Battle.ATK[i], Battle.DEF[i], Battle.DEX[i], Battle.AGI[i])) local toggle = 1 while true do local text_x = 260 local text_y = 202 local area = read16(Addresses.Area) local x = read32(Addresses.X) local y = read32(Addresses.Y) display_stats() text(text_x, text_y, string.format('X: %d Y: %d\nArea: %d', x, y, area)) text_y = text_y + 40 -- text(text_x, text_y, string.format('MX: %d MY: %d', input.getmouse().X, input.getmouse().Y)) if area == 7 then update_battle() display_battle() end emu.frameadvance() end
Notes: 1. There's 3 Janis characters. 1st one is from the start. You're completely defenseless, and cannot escape from battle. The 2nd one is after unlocking spells. The last one has a spear. 2. Similarly, there's 2 Inuyasha's (demon/human) and 2 Shippos (with/without Kirara) 3. Every character uses the same XP to next amount. They cap at level 90 4. Attack/Charge is based on your Attack/Dex, and the opponent's DEF. However, specials like Wind Scar is entirely based on your level. Unfortunately, this means you need to grind. 5. I couldn't figure out the NPC ids, but I did record their sprite/palletehttps://docs.google.com/spreadsheets/d/13ly3T8zQA1WYVDUFytGlAuNMhFBxtflyWnkJAUxzjRA/edit?usp=sharing
Skilled player (1748)
Joined: 9/17/2009
Posts: 4993
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Ok, so I actually finally finished the game. It turns out quite a number of things in this are optional. For instance, the entire initial park event, Akagane subplot, and Sesshomaru subplot are not needed at all. In fact, after unlocking fly, you can basically head north immediately. Minimum things to do: 1. Get to Shrine 2. Reach level 2 or 3 using Giant Centipede (or else Little Devil fight later OHKOs you) 3. Head to Kaede's Village 4. Head to Mikage Creek 5. Head to Masuko Village. Maybe level? 6. Beat bosses Masuko, Usuba somehow. 7. Head to Mt. Habaki 8. Beat Poisonous Centipede (1160 HP) guarding the item 9. Head to Jinenji’s Home 10. Head to Minatori Village 11. Somehow beat Demon Puppet (2400 HP) 12. Go through Mountain Pass 13. Head to Yamasachi Village 14. Head to Abandoned Shrine, then back to Yamasachi Village 15. Somehow beat Demon of Misfortune (1230 HP) 16. Head to Sara’s Lair 17. Somehow beat Sara (2550 HP) 18. Head to Sakata Village. Immediately leave 19. Head to Inuyasha's Forest 20. Unlock flying by finding Hachi. Fly to upper right of the map to Habi Village 21. Talk to villagers (priest, then elder) to unlock going north 22. Go to Tanuki Plains to the north, then pay 300 to fly to north The difficulty now radically increases 23. Head to Susuki Plains Village 24. Head to Mt. Mansetsu Fortress 25. Save the villagers, then go through Mt. Mansetsu 26. Go to Datara's Shrine 27. Go to the far left/right to unlock both Mitsurugi's Tower and Sugagaki's Waterfall 28. Go to Mitsurugi's Tower 29. Somehow beat Mitsurugi (4400 HP; 1850 more than previous boss) 30. Head to Sugagaki's Waterfall at upper left of map 31. Somehow beat Sugagaki (4000 HP) 32. Go back to Datara's Shrine. You will be transported 500 years back in time 33. Go to Shinonome Village. Talk to Tsugumi's Mother. 34. Go to Izayoi's Mansion 35. Beat all the enemies Ninestar Demon (2150 HP), Iron-Souled Demon (2640 HP), Shrouded Demon (2020 HP) somehow 36. Reach the shrine basement 37. Beat Gorai (7800 HP) somehow 38. Go back to Shinonome Village. Go to the elder to sleep 39. Talk to the elder, then Izayoi. Head to lower left of map 40. Beat the monsters somehow 41. You're back in the present. Head to Datara's Shrine to regroup. 42. Head to Mt. Mansetsu then go through it again 43. Beat Burai (9999 HP) somehow 44. Go back to Tanuki Plains. Get Hachi to fly to Demon Fortress south 45. Go through Demon Fortress. 46. Beat Gorai again (9200 HP) followed by 2 Demon Puppets (6750 HP) 47. Leave, then go to Tanuki Forest 48. Fly to Inuyasha's Forest 49. Go to present day. Head to the park 50. Find the shrine, go through the maze to find red orb 51. Go back to Inuyasha's Forest. Fly to north Tanuki Plains, then fly north 52. Fly to Tempest Tower 53. Beat Monk Sen (8230 HP) 54. Go through the tower. You will fight Mitsurugi and Sugagaki again at the same time, both 6600 HP 55. Head to the top 56. Beat Gorai (10000 HP) and Datara (15800 HP, all stats 255) at the same time The sudden jump in difficulty means you must grind levels. The enemies XP is divided by the amount of teammates rounded down, which is usually 6 members. The best npc to grind at the start are Giant Centipedes, and I haven't figured out the rest of the route.
Skilled player (1748)
Joined: 9/17/2009
Posts: 4993
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Download Wind Scar.lua
Language: lua

local text = gui.pixelText memory.usememorydomain("Main RAM") local read8 = memory.read_u8 local read16 = memory.read_u16_le local read24 = memory.read_u24_be local read32 = memory.read_u32_le local frameadvance = emu.frameadvance local write8 = memory.write_u8 local write16 = memory.write_u16_le local write24 = memory.write_u24_be local write32 = memory.write_u32_le console.clear() --[[ First name of attack in J starts at 022079 First name of monsters for status screen at 021625 ]]-- function MLA(A,B,C) --http://tasvideos.org/forum/viewtopic.php?p=489512#489512 local reslow = A * (B%0x10000) -- A multiplied with lower 16 bits of B local reshigh = A * (math.floor(B/0x10000)%0x10000) -- A multiplied with higher 16 bits of B (shifted down) reshigh = reshigh%0x10000 -- only 16 bits can matter here if result is 32 bits return (reshigh*0x10000 + reslow + C)%0x100000000 -- recombine and cut off to 32 bits end function MUL64(A,B) --http://tasvideos.org/forum/viewtopic.php?p=489523#489523 local reslow = A * (B%0x10000) -- 0x0000LLLLLLLLLLLL local reshigh = A * math.floor(B/0x10000) -- 0xHHHHHHHHHHHH0000 local reslow_lo = reslow%0x100000000 -- 0x00000000LLLLLLLL local reslow_hi = math.floor(reslow/0x100000000) -- 0x0000LLLL00000000 local reshigh_lo = reshigh%0x10000 -- 0x00000000HHHH0000 local reshigh_hi = math.floor(reshigh/0x10000) -- 0xHHHHHHHH00000000 local low32 = reshigh_lo*0x10000 + reslow_lo local high32 = reshigh_hi + reslow_hi high32 = high32 + math.floor(low32/0x100000000) -- add what carries over low32 = low32%0x100000000 -- 32 bit high32 = high32%0x100000000 -- 32 bit return low32,high32 end function rng(r0, rng1, rng2) --020461c4: e59f1050 ldr r1, [pc, #+0x50] local r1 = 0 local r2, r3 = 0,0 local r4, lr, carry = 0,0,0 local rng1_2, rng2_2 = 0, 0 r4, lr = MUL64(0x6C078965, rng1) lr = MLA(0x6C078965, rng2, lr) lr = MLA(0x5D588B65, rng1, lr) r3 = 0x00269EC3 + r4 carry = r3 > 4294967295 and 1 or 0 rng1_2 = r3 % 4294967296 --107b98 r4 = lr + carry rng2_2 = r4 --107b9c if (r0 ~= 0) then r4 = (r4 * r0) >> 0x20 end r0 = r4 return r0, rng1_2, rng2_2 end local r0, rng1_1, rng2_1 = 0,0,0 local save = 1 local limit = 10 local level = 1 local hp = 10000 Inuyasha1_LVL = 0x0C66B8 Inuyasha1_AGI = 0x0C66BC NPC1_HP = 0x0C6E18 NPC1_MAX_HP = 0x0C6E1C RNG1 = 0x107B98 RNG2 = 0x107B9C function Wind_Scar_Bot(limit, level) local file = io.open("Wind Scar " .. level .. ".txt","w") io.output(file) io.write(string.format("RNG1\tRNG2\tDamage\n")) write8(Inuyasha1_LVL,level) write8(Inuyasha1_AGI,1) write16(NPC1_MAX_HP,hp) write16(NPC1_HP,hp) savestate.saveslot(save) local min_damage = 0 local max_damage = 0 for i = 1, limit do savestate.loadslot(save) write8(Inuyasha1_LVL,level) write16(NPC1_HP,hp) write32(RNG1,rng1_1) write32(RNG2,rng2_1) frameadvance() r0, rng1_1, rng2_1 = rng(r0, rng1_1, rng2_1) local damage = hp-read16(NPC1_HP) if min_damage == 0 then min_damage = damage else min_damage = (damage < min_damage) and damage or min_damage end if max_damage == 0 then max_damage = damage else max_damage = (damage > max_damage) and damage or max_damage end io.write(string.format("%d\t%d\t%d\n", rng1_1, rng2_1, damage)) end io.close(file) savestate.loadslot(save) return min_damage, max_damage end --loop levels, calling wind scar bot function Loop(limit1, start, level) --limit 1 is how many loops for wind scar bot --limit 2 is how many levels to loop local start_line = "Level\tMin\tMax\n" local line = "" for i = start, level do local min_damage = 0 local max_damage = 0 min_damage, max_damage = Wind_Scar_Bot(limit1,i) line = line .. string.format("%d\t%d\t%d\n",i, min_damage, max_damage) end local file = io.open("Wind Scar damage.txt","w") io.output(file) io.write(string.format("Level\tMin\tMax\n")) io.write(line) io.close(file) end Loop(1000, 1, 90) client.pause()
I made a script that I ran right before damage was dealt using Wind Scar. It appears damage from Wind Scar is solely based on Inuyasha's level, independent of his attack stats, nor enemy's defence. It never misses, and it does not seem criticals are a thing. Edit: The rng values and the resultant damage doesn't match for some reason.
Skilled player (1748)
Joined: 9/17/2009
Posts: 4993
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Based on the trace logs and Ghidra, I made a prediction script for Wind Scar. Download Wind Scar Damage.lua
Language: lua

--[[ 02008d04: e3a0100f mov r1, #0xF r0:432f0000 r1:00000094 r2:020c6468 r3:00000250 r4:0000000f r5:000000af r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00269ec3 SP:027e3748 LR:02008cf8 PC:02008d0c Cy:39999750071 ARM9 Get inuyashas level 02008d08: e7d22003 ldrb r2, [r2, r3, lsl #0] r0:432f0000 r1:0000000f r2:020c6468 r3:00000250 r4:0000000f r5:000000af r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00269ec3 SP:027e3748 LR:02008cf8 PC:02008d10 Cy:39999750071 ARM9 02008d0c: e1a05000 mov r5, r0, lsl #0 r0:432f0000 r1:0000000f r2:0000005a r3:00000250 r4:0000000f r5:000000af r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00269ec3 SP:027e3748 LR:02008cf8 PC:02008d14 Cy:39999750073 ARM9 02008d10: e0000192 mul r0, r2, r1 r0:432f0000 r1:0000000f r2:0000005a r3:00000250 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00269ec3 SP:027e3748 LR:02008cf8 PC:02008d18 Cy:39999750073 ARM9 02008d14: e2800055 add r0, r0, #0x55 r0:00000546 r1:0000000f r2:0000005a r3:00000250 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00269ec3 SP:027e3748 LR:02008cf8 PC:02008d1c Cy:39999750074 ARM9 02008d18: eb017fd1 bl #0x5FF4C r0:0000059b r1:0000000f r2:0000005a r3:00000250 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00269ec3 SP:027e3748 LR:02008cf8 PC:02008d20 Cy:39999750075 ARM9 r0 = 0xF x inuyashas level + 0x55 02068c64: e2102102 ands r2, r0, #0x80000000 r0:0000059b r1:0000000f r2:0000005a r3:00000250 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00269ec3 SP:027e3748 LR:02008d1c PC:02068c6c Cy:39999750077 ARM9 02068c68: 42600000 rsbmi r0, r0, #0x0 r0:0000059b r1:0000000f r2:00000000 r3:00000250 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00269ec3 SP:027e3748 LR:02008d1c PC:02068c70 Cy:39999750077 ARM9 02068c6c: e3500000 cmp r0, #0x0 r0:0000059b r1:0000000f r2:00000000 r3:00000250 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00269ec3 SP:027e3748 LR:02008d1c PC:02068c74 Cy:39999750078 ARM9 02068c70: 012fff1e bxeq lr r0:0000059b r1:0000000f r2:00000000 r3:00000250 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00269ec3 SP:027e3748 LR:02008d1c PC:02068c78 Cy:39999750078 ARM9 02068c74: e16f3f10 clz r3, r0 r0:0000059b r1:0000000f r2:00000000 r3:00000250 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00269ec3 SP:027e3748 LR:02008d1c PC:02068c7c Cy:39999750079 ARM9 02068c78: e1b00310 movs r0, r0, lsl r3 r0:0000059b r1:0000000f r2:00000000 r3:00000015 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00269ec3 SP:027e3748 LR:02008d1c PC:02068c80 Cy:39999750079 ARM9 02068c7c: e263309e rsb r3, r3, #0x9E r0:b3600000 r1:0000000f r2:00000000 r3:00000015 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00269ec3 SP:027e3748 LR:02008d1c PC:02068c84 Cy:39999750081 ARM9 02068c80: e21010ff ands r1, r0, #0xFF r0:b3600000 r1:0000000f r2:00000000 r3:00000089 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00269ec3 SP:027e3748 LR:02008d1c PC:02068c88 Cy:39999750082 ARM9 02068c84: e0800000 add r0, r0, r0, lsl #0 r0:b3600000 r1:00000000 r2:00000000 r3:00000089 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00269ec3 SP:027e3748 LR:02008d1c PC:02068c8c Cy:39999750082 ARM9 02068c88: e18204a0 orr r0, r2, r0, lsr #9 r0:66c00000 r1:00000000 r2:00000000 r3:00000089 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00269ec3 SP:027e3748 LR:02008d1c PC:02068c90 Cy:39999750083 ARM9 02068c8c: e1800b83 orr r0, r0, r3, lsl #23 r0:00336000 r1:00000000 r2:00000000 r3:00000089 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00269ec3 SP:027e3748 LR:02008d1c PC:02068c94 Cy:39999750083 ARM9 02068c90: 012fff1e bxeq lr r0:44b36000 r1:00000000 r2:00000000 r3:00000089 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00269ec3 SP:027e3748 LR:02008d1c PC:02068c98 Cy:39999750084 ARM9 ]]-- function Count_Leading_Zeroes(num) --given a number, count the amount of 0s to the left of it in terms of binary local shifts = 0 while num ~= 0 do num = num >> 1 shifts = shifts + 1 end return 32 - shifts end function MLA(A,B,C) --http://tasvideos.org/forum/viewtopic.php?p=489512#489512 local reslow = A * (B%0x10000) -- A multiplied with lower 16 bits of B local reshigh = A * (math.floor(B/0x10000)%0x10000) -- A multiplied with higher 16 bits of B (shifted down) reshigh = reshigh%0x10000 -- only 16 bits can matter here if result is 32 bits return (reshigh*0x10000 + reslow + C)%0x100000000 -- recombine and cut off to 32 bits end function MUL64(A,B) --http://tasvideos.org/forum/viewtopic.php?p=489523#489523 local reslow = A * (B%0x10000) -- 0x0000LLLLLLLLLLLL local reshigh = A * math.floor(B/0x10000) -- 0xHHHHHHHHHHHH0000 local reslow_lo = reslow%0x100000000 -- 0x00000000LLLLLLLL local reslow_hi = math.floor(reslow/0x100000000) -- 0x0000LLLL00000000 local reshigh_lo = reshigh%0x10000 -- 0x00000000HHHH0000 local reshigh_hi = math.floor(reshigh/0x10000) -- 0xHHHHHHHH00000000 local low32 = reshigh_lo*0x10000 + reslow_lo local high32 = reshigh_hi + reslow_hi high32 = high32 + math.floor(low32/0x100000000) -- add what carries over low32 = low32%0x100000000 -- 32 bit high32 = high32%0x100000000 -- 32 bit return low32,high32 end function rng(r0, rng1, rng2) --020461c4: e59f1050 ldr r1, [pc, #+0x50] local r1 = 0 local r2, r3 = 0,0 local r4, lr, carry = 0,0,0 local rng1_2, rng2_2 = 0, 0 r4, lr = MUL64(0x6C078965, rng1) lr = MLA(0x6C078965, rng2, lr) lr = MLA(0x5D588B65, rng1, lr) r3 = 0x00269EC3 + r4 carry = r3 > 4294967295 and 1 or 0 rng1_2 = r3 % 4294967296 --107b98 r4 = lr + carry rng2_2 = r4 --107b9c if (r0 ~= 0) then r4 = (r4 * r0) >> 0x20 end r0 = r4 return r0, rng1_2, rng2_2 end function FUN_02068c64_Skill(r0) --02068c90: 012fff1e bxeq lr always branches for skills local r2 = r0 & 0x80000000 --why lol if r2 < 0 then r0 = -1* r0 end if r0 == 0 then return 0 end local r3 = Count_Leading_Zeroes(r0) r0 = r0 << r3 r3 = 0x9E - r3 --local r1 = r0 & 0xFF r0 = (r0 + r0) & 0xFFFFFFFF --make sure it doesnt set bit 32 in lua r0 = r0 >> 9 --r2 is 0, so you can pretend it doesnt exist r0 = r0 | (r3 << 23) return r0 end console.clear() -- local value = 0x87 -- console.log(bizstring.hex(FUN_02068c64_Skill(value))) -- console.log(bizstring.hex((FUN_02068c64_Skill(value) >> 23) & 0xFF)) local Attack = { --value for FUN_02068c64 [1] = {Name = "Attack", EP = 1, Value = 0x00}, [2] = {Name = "Charge", EP = 2, Value = 0}, [3] = {Name = "Shoot", EP = 1, Value = 0}, [4] = {Name = "Defense", EP = 0, Value = 0}, [6] = {Name = "?", EP = 0, Value = 0}, [7] = {Name = "?", EP = 0, Value = 0}, [8] = {Name = "?", EP = 0, Value = 0}, [9] = {Name = "?", EP = 0, Value = 0}, [10] = {Name = "Spirit Up", EP = 0, Value = 0}, [11] = {Name = "Item", EP = 0, Value = 0}, [12] = {Name = "?", EP = 0, Value = 0}, [13] = {Name = "Lightning Arrow", EP = 2, Value = 0x7B}, [14] = {Name = "Infernal Meteor", EP = 3, Value = 0x64}, [15] = {Name = "Heavenly Essence",EP = 3, Value = 0}, --heals [16] = {Name = "Power Leaf", EP = 2, Value = 0}, --boost attack for 3 turns [17] = {Name = "Iron Reaver", EP = 2, Value = 0x5F}, [18] = {Name = "Blades Of Blood", EP = 3, Value = 0x5A}, [19] = {"Wind Scar", EP = 4, Value = 0xAF}, [20] = {Name = "Backlash Wave", EP = 5, Value = 0xBE}, [21] = {Name = "Sacred Arrow", EP = 3, Value = 0x87}, [22] = {Name = "Purifying Light", EP = 3, Value = 0}, --Heals status [23] = {Name = "Divine Barrier", EP = 3, Value = 0}, [24] = {Name = "Wind Tunnel", EP = 5, Value = 0}, [25] = {Name = "Healing Sutra", EP = 3, Value = 0}, [26] = {Name = "Sealing Barrier", EP = 4, Value = 0}, [27] = {Name = "Binding Sutra", EP = 3, Value = 0}, [28] = {Name = "Fury Of Taishaku", EP = 3, Value = 0x6E}, [29] = {Name = "Hiraikotsu", EP = 3, Value = 0x82}, [30] = {Name = "Great Cannon", EP = 3, Value = 0x5A}, [31] = {Name = "Fox Fire", EP = 1, Value = 0x41}, [32] = {Name = "Smashing Top", EP = 2, Value = 0x50}, [33] = {Name = "Smoke Illusion", EP = 2, Value = 0} } --[[ 02068cac: e0202001 eor r2, r0, r1, lsl #0 r0:432f0000 r1:44b36000 r2:00000000 r3:00000089 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00269ec3 SP:027e3748 LR:02008d28 PC:02068cb4 Cy:39999750090 ARM9 02068cb0: e2022102 and r2, r2, #0x80000000 r0:432f0000 r1:44b36000 r2:079c6000 r3:00000089 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00269ec3 SP:027e3748 LR:02008d28 PC:02068cb8 Cy:39999750090 ARM9 02068cb4: e3a0c0ff mov r12, #0xFF r0:432f0000 r1:44b36000 r2:00000000 r3:00000089 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00269ec3 SP:027e3748 LR:02008d28 PC:02068cbc Cy:39999750091 ARM9 02068cb8: e01c3ba0 ands r3, r12, r0, lsr #23 r0:432f0000 r1:44b36000 r2:00000000 r3:00000089 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:000000ff SP:027e3748 LR:02008d28 PC:02068cc0 Cy:39999750091 ARM9 02068cbc: e1a00400 mov r0, r0, lsl #8 r0:432f0000 r1:44b36000 r2:00000000 r3:00000086 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:000000ff SP:027e3748 LR:02008d28 PC:02068cc4 Cy:39999750093 ARM9 02068cc0: 135300ff cmpne r3, #0xFF r0:2f000000 r1:44b36000 r2:00000000 r3:00000086 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:000000ff SP:027e3748 LR:02008d28 PC:02068cc8 Cy:39999750093 ARM9 02068cc4: 0a000017 beq #0x64 r0:2f000000 r1:44b36000 r2:00000000 r3:00000086 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:000000ff SP:027e3748 LR:02008d28 PC:02068ccc Cy:39999750094 ARM9 02068cc8: e3800102 orr r0, r0, #0x80000000 r0:2f000000 r1:44b36000 r2:00000000 r3:00000086 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:000000ff SP:027e3748 LR:02008d28 PC:02068cd0 Cy:39999750094 ARM9 02068ccc: e01ccba1 ands r12, r12, r1, lsr #23 r0:af000000 r1:44b36000 r2:00000000 r3:00000086 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:000000ff SP:027e3748 LR:02008d28 PC:02068cd4 Cy:39999750095 ARM9 02068cd0: e1a01401 mov r1, r1, lsl #8 r0:af000000 r1:44b36000 r2:00000000 r3:00000086 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d28 PC:02068cd8 Cy:39999750095 ARM9 02068cd4: 135c00ff cmpne r12, #0xFF r0:af000000 r1:b3600000 r2:00000000 r3:00000086 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d28 PC:02068cdc Cy:39999750096 ARM9 02068cd8: 0a000022 beq #0x90 r0:af000000 r1:b3600000 r2:00000000 r3:00000086 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d28 PC:02068ce0 Cy:39999750096 ARM9 02068cdc: e3811102 orr r1, r1, #0x80000000 r0:af000000 r1:b3600000 r2:00000000 r3:00000086 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d28 PC:02068ce4 Cy:39999750098 ARM9 02068ce0: e083c00c add r12, r3, r12, lsl #0 r0:af000000 r1:b3600000 r2:00000000 r3:00000086 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d28 PC:02068ce8 Cy:39999750098 ARM9 02068ce4: e0831190 umull r1, r3, r0, r1 r0:af000000 r1:b3600000 r2:00000000 r3:00000086 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000010f SP:027e3748 LR:02008d28 PC:02068cec Cy:39999750099 ARM9 02068ce8: e1b00003 movs r0, r3, lsl #0 r0:af000000 r1:00000000 r2:00000000 r3:7a9ea000 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000010f SP:027e3748 LR:02008d28 PC:02068cf0 Cy:39999750100 ARM9 02068cec: 50800000 addpl r0, r0, r0, lsl #0 r0:7a9ea000 r1:00000000 r2:00000000 r3:7a9ea000 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000010f SP:027e3748 LR:02008d28 PC:02068cf4 Cy:39999750100 ARM9 02068cf0: 524cc001 subpl r12, r12, #0x1 r0:f53d4000 r1:00000000 r2:00000000 r3:7a9ea000 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000010f SP:027e3748 LR:02008d28 PC:02068cf8 Cy:39999750101 ARM9 02068cf4: e25cc07f subs r12, r12, #0x7F r0:f53d4000 r1:00000000 r2:00000000 r3:7a9ea000 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000010e SP:027e3748 LR:02008d28 PC:02068cfc Cy:39999750101 ARM9 02068cf8: 4a00003d bmi #0xFC r0:f53d4000 r1:00000000 r2:00000000 r3:7a9ea000 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000008f SP:027e3748 LR:02008d28 PC:02068d00 Cy:39999750102 ARM9 02068cfc: e35c00fe cmp r12, #0xFE r0:f53d4000 r1:00000000 r2:00000000 r3:7a9ea000 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000008f SP:027e3748 LR:02008d28 PC:02068d04 Cy:39999750103 ARM9 02068d00: aa000056 bge #0x160 r0:f53d4000 r1:00000000 r2:00000000 r3:7a9ea000 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000008f SP:027e3748 LR:02008d28 PC:02068d08 Cy:39999750104 ARM9 02068d04: e21030ff ands r3, r0, #0xFF r0:f53d4000 r1:00000000 r2:00000000 r3:7a9ea000 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000008f SP:027e3748 LR:02008d28 PC:02068d0c Cy:39999750104 ARM9 02068d08: e1820420 orr r0, r2, r0, lsr #8 r0:f53d4000 r1:00000000 r2:00000000 r3:00000000 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000008f SP:027e3748 LR:02008d28 PC:02068d10 Cy:39999750105 ARM9 02068d0c: e0800b8c add r0, r0, r12, lsl #23 r0:00f53d40 r1:00000000 r2:00000000 r3:00000000 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000008f SP:027e3748 LR:02008d28 PC:02068d14 Cy:39999750105 ARM9 02068d10: e3130080 tst r3, #0x80 r0:48753d40 r1:00000000 r2:00000000 r3:00000000 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000008f SP:027e3748 LR:02008d28 PC:02068d18 Cy:39999750106 ARM9 02068d14: 012fff1e bxeq lr r0:48753d40 r1:00000000 r2:00000000 r3:00000000 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000008f SP:027e3748 LR:02008d28 PC:02068d1c Cy:39999750106 ARM9 02068cac: e0202001 eor r2, r0, r1, lsl #0 r0:451cf400 r1:3f666666 r2:01680000 r3:00e66666 r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:00000006 SP:027e3748 LR:02008d50 PC:02068cb4 Cy:39999750301 ARM9 02068cb0: e2022102 and r2, r2, #0x80000000 r0:451cf400 r1:3f666666 r2:7a7a9266 r3:00e66666 r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:00000006 SP:027e3748 LR:02008d50 PC:02068cb8 Cy:39999750301 ARM9 02068cb4: e3a0c0ff mov r12, #0xFF r0:451cf400 r1:3f666666 r2:00000000 r3:00e66666 r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:00000006 SP:027e3748 LR:02008d50 PC:02068cbc Cy:39999750302 ARM9 02068cb8: e01c3ba0 ands r3, r12, r0, lsr #23 r0:451cf400 r1:3f666666 r2:00000000 r3:00e66666 r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:000000ff SP:027e3748 LR:02008d50 PC:02068cc0 Cy:39999750302 ARM9 02068cbc: e1a00400 mov r0, r0, lsl #8 r0:451cf400 r1:3f666666 r2:00000000 r3:0000008a r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:000000ff SP:027e3748 LR:02008d50 PC:02068cc4 Cy:39999750304 ARM9 02068cc0: 135300ff cmpne r3, #0xFF r0:1cf40000 r1:3f666666 r2:00000000 r3:0000008a r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:000000ff SP:027e3748 LR:02008d50 PC:02068cc8 Cy:39999750304 ARM9 02068cc4: 0a000017 beq #0x64 r0:1cf40000 r1:3f666666 r2:00000000 r3:0000008a r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:000000ff SP:027e3748 LR:02008d50 PC:02068ccc Cy:39999750305 ARM9 02068cc8: e3800102 orr r0, r0, #0x80000000 r0:1cf40000 r1:3f666666 r2:00000000 r3:0000008a r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:000000ff SP:027e3748 LR:02008d50 PC:02068cd0 Cy:39999750305 ARM9 02068ccc: e01ccba1 ands r12, r12, r1, lsr #23 r0:9cf40000 r1:3f666666 r2:00000000 r3:0000008a r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:000000ff SP:027e3748 LR:02008d50 PC:02068cd4 Cy:39999750306 ARM9 02068cd0: e1a01401 mov r1, r1, lsl #8 r0:9cf40000 r1:3f666666 r2:00000000 r3:0000008a r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:0000007e SP:027e3748 LR:02008d50 PC:02068cd8 Cy:39999750306 ARM9 02068cd4: 135c00ff cmpne r12, #0xFF r0:9cf40000 r1:66666600 r2:00000000 r3:0000008a r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:0000007e SP:027e3748 LR:02008d50 PC:02068cdc Cy:39999750307 ARM9 02068cd8: 0a000022 beq #0x90 r0:9cf40000 r1:66666600 r2:00000000 r3:0000008a r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:0000007e SP:027e3748 LR:02008d50 PC:02068ce0 Cy:39999750307 ARM9 02068cdc: e3811102 orr r1, r1, #0x80000000 r0:9cf40000 r1:66666600 r2:00000000 r3:0000008a r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:0000007e SP:027e3748 LR:02008d50 PC:02068ce4 Cy:39999750309 ARM9 02068ce0: e083c00c add r12, r3, r12, lsl #0 r0:9cf40000 r1:e6666600 r2:00000000 r3:0000008a r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:0000007e SP:027e3748 LR:02008d50 PC:02068ce8 Cy:39999750309 ARM9 02068ce4: e0831190 umull r1, r3, r0, r1 r0:9cf40000 r1:e6666600 r2:00000000 r3:0000008a r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:00000108 SP:027e3748 LR:02008d50 PC:02068cec Cy:39999750310 ARM9 02068ce8: e1b00003 movs r0, r3, lsl #0 r0:9cf40000 r1:38000000 r2:00000000 r3:8d41ffc1 r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:00000108 SP:027e3748 LR:02008d50 PC:02068cf0 Cy:39999750311 ARM9 02068cec: 50800000 addpl r0, r0, r0, lsl #0 r0:8d41ffc1 r1:38000000 r2:00000000 r3:8d41ffc1 r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:00000108 SP:027e3748 LR:02008d50 PC:02068cf4 Cy:39999750311 ARM9 02068cf0: 524cc001 subpl r12, r12, #0x1 r0:8d41ffc1 r1:38000000 r2:00000000 r3:8d41ffc1 r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:00000108 SP:027e3748 LR:02008d50 PC:02068cf8 Cy:39999750312 ARM9 02068cf4: e25cc07f subs r12, r12, #0x7F r0:8d41ffc1 r1:38000000 r2:00000000 r3:8d41ffc1 r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:00000108 SP:027e3748 LR:02008d50 PC:02068cfc Cy:39999750312 ARM9 02068cf8: 4a00003d bmi #0xFC r0:8d41ffc1 r1:38000000 r2:00000000 r3:8d41ffc1 r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d50 PC:02068d00 Cy:39999750313 ARM9 02068cfc: e35c00fe cmp r12, #0xFE r0:8d41ffc1 r1:38000000 r2:00000000 r3:8d41ffc1 r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d50 PC:02068d04 Cy:39999750314 ARM9 02068d00: aa000056 bge #0x160 r0:8d41ffc1 r1:38000000 r2:00000000 r3:8d41ffc1 r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d50 PC:02068d08 Cy:39999750315 ARM9 02068d04: e21030ff ands r3, r0, #0xFF r0:8d41ffc1 r1:38000000 r2:00000000 r3:8d41ffc1 r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d50 PC:02068d0c Cy:39999750315 ARM9 02068d08: e1820420 orr r0, r2, r0, lsr #8 r0:8d41ffc1 r1:38000000 r2:00000000 r3:000000c1 r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d50 PC:02068d10 Cy:39999750316 ARM9 02068d0c: e0800b8c add r0, r0, r12, lsl #23 r0:008d41ff r1:38000000 r2:00000000 r3:000000c1 r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d50 PC:02068d14 Cy:39999750316 ARM9 02068d10: e3130080 tst r3, #0x80 r0:450d41ff r1:38000000 r2:00000000 r3:000000c1 r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d50 PC:02068d18 Cy:39999750317 ARM9 02068d14: 012fff1e bxeq lr r0:450d41ff r1:38000000 r2:00000000 r3:000000c1 r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d50 PC:02068d1c Cy:39999750317 ARM9 02068d18: e1911c83 orrs r1, r1, r3, lsl #25 r0:450d41ff r1:38000000 r2:00000000 r3:000000c1 r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d50 PC:02068d20 Cy:39999750318 ARM9 02068d1c: 02103001 andseq r3, r0, #0x1 r0:450d41ff r1:ba000000 r2:00000000 r3:000000c1 r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d50 PC:02068d24 Cy:39999750319 ARM9 02068d20: 12800001 addne r0, r0, #0x1 r0:450d41ff r1:ba000000 r2:00000000 r3:000000c1 r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d50 PC:02068d28 Cy:39999750320 ARM9 02068d24: e12fff1e bx lr r0:450d4200 r1:ba000000 r2:00000000 r3:000000c1 r4:00000000 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4044bebb r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d50 PC:02068d2c Cy:39999750320 ARM9 ]]-- function FUN_02068cac_Skill(r0, r1) --r0 is from AF --r1 is from inuyashas level formula local r2 = (r0 ~ r1) & 0x80000000 local r12 = 0xFF local r3 = (r0 >> 23) & r12 r0 = (r0 << 8) & 0xFFFFFFFF --make sure it remains 32 bit -- r0 is related to those hard coded values for skills. checking every case, it appears this branch never gets taken -- if r3 == 0 or r3 == 0xFF then -- end r0 = r0 | 0x80000000 r12 = (r1 >> 23) & r12 r1 = (r1 << 8) & 0xFFFFFFFF --make sure it remains 32 bit -- r1 is related to player level. checking every case, it appears this branch never gets taken -- if r12 == 0 or r12 == 0xFF then -- end r1 = r1 | 0x80000000 r12 = r3 + r12 --02068ce4: e0831190 umull r1, r3, r0, r1 r1, r3 = MUL64(r0, r1) r0 = r3 if bit.check(r0, 31) == false then --check if sign bit set r0 = (r0 + r0) & 0xFFFFFFFF --make sure it remains 32 bit r12 = r12 - 1 -- else --debug -- console.log("FUN_02068cac_Skill") -- console.log(string.format("r0: 0x%08X r1: 0x%08X",r0, r1)) end r12 = r12 - 0x7F -- if r12 < 0 then -- end if r12 >= 0xFE then r0 = r2 | 0x7F800000 return r0 end r3 = r0 & 0xFF r0 = r2 | (r0 >> 8) r0 = (r0 + (r12 << 23)) & 0xFFFFFFFF --make sure it remains 32 bit if (r3 & 0x80) == 0 then return r0 else r1 = r1 | (r3 << 0x19) r3 = r0 & 0x1 r0 = r0 + 0x1 return r0 end end --[[ 020687ac: e92d4000 stmdb sp!, {lr} r0:48753d40 r1:42c80000 r2:00000000 r3:00000000 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000008f SP:027e3748 LR:02008d30 PC:020687b4 Cy:39999750112 ARM9 020687b0: e3a0c0ff mov r12, #0xFF r0:48753d40 r1:42c80000 r2:00000000 r3:00000000 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000008f SP:027e3744 LR:02008d30 PC:020687b8 Cy:39999750112 ARM9 020687b4: e01c3ba0 ands r3, r12, r0, lsr #23 r0:48753d40 r1:42c80000 r2:00000000 r3:00000000 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:000000ff SP:027e3744 LR:02008d30 PC:020687bc Cy:39999750113 ARM9 020687b8: 135300ff cmpne r3, #0xFF r0:48753d40 r1:42c80000 r2:00000000 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:000000ff SP:027e3744 LR:02008d30 PC:020687c0 Cy:39999750113 ARM9 020687bc: 0a00006f beq #0x1C4 r0:48753d40 r1:42c80000 r2:00000000 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:000000ff SP:027e3744 LR:02008d30 PC:020687c4 Cy:39999750115 ARM9 020687c0: e01ccba1 ands r12, r12, r1, lsr #23 r0:48753d40 r1:42c80000 r2:00000000 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:000000ff SP:027e3744 LR:02008d30 PC:020687c8 Cy:39999750115 ARM9 020687c4: 135c00ff cmpne r12, #0xFF r0:48753d40 r1:42c80000 r2:00000000 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:02008d30 PC:020687cc Cy:39999750116 ARM9 020687c8: 0a00007b beq #0x1F4 r0:48753d40 r1:42c80000 r2:00000000 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:02008d30 PC:020687d0 Cy:39999750116 ARM9 020687cc: e3811502 orr r1, r1, #0x800000 r0:48753d40 r1:42c80000 r2:00000000 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:02008d30 PC:020687d4 Cy:39999750117 ARM9 020687d0: e3800502 orr r0, r0, #0x800000 r0:48753d40 r1:42c80000 r2:00000000 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:02008d30 PC:020687d8 Cy:39999750117 ARM9 020687d4: e3c024ff bic r2, r0, #0xFF000000 r0:48f53d40 r1:42c80000 r2:00000000 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:02008d30 PC:020687dc Cy:39999750118 ARM9 020687d8: e3c1e4ff bic lr, r1, #0xFF000000 r0:48f53d40 r1:42c80000 r2:00f53d40 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:02008d30 PC:020687e0 Cy:39999750118 ARM9 020687dc: e152000e cmp r2, lr, lsl #0 r0:48f53d40 r1:42c80000 r2:00f53d40 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:00c80000 PC:020687e4 Cy:39999750120 ARM9 020687e0: 31a02082 movcc r2, r2, lsl #1 r0:48f53d40 r1:42c80000 r2:00f53d40 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:00c80000 PC:020687e8 Cy:39999750120 ARM9 020687e4: 32433001 subcc r3, r3, #0x1 r0:48f53d40 r1:42c80000 r2:00f53d40 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:00c80000 PC:020687ec Cy:39999750121 ARM9 020687e8: e1300001 teq r0, r1, lsl #0 r0:48f53d40 r1:42c80000 r2:00f53d40 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:00c80000 PC:020687f0 Cy:39999750121 ARM9 020687ec: e24f0094 sub r0, pc, #0x94 r0:48f53d40 r1:42c80000 r2:00f53d40 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:00c80000 PC:020687f4 Cy:39999750122 ARM9 020687f0: e7d017ae ldrb r1, [r0, lr, lsr #15] r0:02068760 r1:42c80000 r2:00f53d40 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:00c80000 PC:020687f8 Cy:39999750122 ARM9 020687f4: e26ee000 rsb lr, lr, #0x0 r0:02068760 r1:000000a4 r2:00f53d40 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:00c80000 PC:020687fc Cy:39999750124 ARM9 020687f8: e1a000ce mov r0, lr, asr #1 r0:02068760 r1:000000a4 r2:00f53d40 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:ff380000 PC:02068800 Cy:39999750124 ARM9 020687fc: e0000091 mul r0, r1, r0 r0:ff9c0000 r1:000000a4 r2:00f53d40 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:ff380000 PC:02068804 Cy:39999750126 ARM9 02068800: e2800102 add r0, r0, #0x80000000 r0:bff00000 r1:000000a4 r2:00f53d40 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:ff380000 PC:02068808 Cy:39999750127 ARM9 02068804: e1a00320 mov r0, r0, lsr #6 r0:3ff00000 r1:000000a4 r2:00f53d40 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:ff380000 PC:0206880c Cy:39999750127 ARM9 02068808: e0000091 mul r0, r1, r0 r0:00ffc000 r1:000000a4 r2:00f53d40 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:ff380000 PC:02068810 Cy:39999750128 ARM9 0206880c: e1a00720 mov r0, r0, lsr #14 r0:a3d70000 r1:000000a4 r2:00f53d40 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:ff380000 PC:02068814 Cy:39999750129 ARM9 02068810: e001009e mul r1, lr, r0 r0:00028f5c r1:000000a4 r2:00f53d40 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:ff380000 PC:02068818 Cy:39999750129 ARM9 02068814: e043c00c sub r12, r3, r12, lsl #0 r0:00028f5c r1:00200000 r2:00f53d40 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:ff380000 PC:0206881c Cy:39999750130 ARM9 02068818: e1a01621 mov r1, r1, lsr #12 r0:00028f5c r1:00200000 r2:00f53d40 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000000b SP:027e3744 LR:ff380000 PC:02068820 Cy:39999750131 ARM9 0206881c: e0010190 mul r1, r0, r1 r0:00028f5c r1:00000200 r2:00f53d40 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000000b SP:027e3744 LR:ff380000 PC:02068824 Cy:39999750132 ARM9 02068820: e1a00700 mov r0, r0, lsl #14 r0:00028f5c r1:051eb800 r2:00f53d40 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000000b SP:027e3744 LR:ff380000 PC:02068828 Cy:39999750133 ARM9 02068824: e08007a1 add r0, r0, r1, lsr #15 r0:a3d70000 r1:051eb800 r2:00f53d40 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000000b SP:027e3744 LR:ff380000 PC:0206882c Cy:39999750134 ARM9 02068828: e0801092 umull r1, r0, r2, r0 r0:a3d70a3d r1:051eb800 r2:00f53d40 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000000b SP:027e3744 LR:ff380000 PC:02068830 Cy:39999750134 ARM9 0206882c: e1a03000 mov r3, r0, lsl #0 r0:009cf3ff r1:ff941840 r2:00f53d40 r3:00000090 r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000000b SP:027e3744 LR:ff380000 PC:02068834 Cy:39999750135 ARM9 02068830: 43800102 orrmi r0, r0, #0x80000000 r0:009cf3ff r1:ff941840 r2:00f53d40 r3:009cf3ff r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000000b SP:027e3744 LR:ff380000 PC:02068838 Cy:39999750136 ARM9 02068834: e29cc07e adds r12, r12, #0x7E r0:009cf3ff r1:ff941840 r2:00f53d40 r3:009cf3ff r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000000b SP:027e3744 LR:ff380000 PC:0206883c Cy:39999750136 ARM9 02068838: 4a000091 bmi #0x24C r0:009cf3ff r1:ff941840 r2:00f53d40 r3:009cf3ff r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000089 SP:027e3744 LR:ff380000 PC:02068840 Cy:39999750137 ARM9 0206883c: e35c00fe cmp r12, #0xFE r0:009cf3ff r1:ff941840 r2:00f53d40 r3:009cf3ff r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000089 SP:027e3744 LR:ff380000 PC:02068844 Cy:39999750138 ARM9 02068840: aa0000bc bge #0x2F8 r0:009cf3ff r1:ff941840 r2:00f53d40 r3:009cf3ff r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000089 SP:027e3744 LR:ff380000 PC:02068848 Cy:39999750139 ARM9 02068844: e0800b8c add r0, r0, r12, lsl #23 r0:009cf3ff r1:ff941840 r2:00f53d40 r3:009cf3ff r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000089 SP:027e3744 LR:ff380000 PC:0206884c Cy:39999750139 ARM9 02068848: e1a0ce21 mov r12, r1, lsr #28 r0:451cf3ff r1:ff941840 r2:00f53d40 r3:009cf3ff r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000089 SP:027e3744 LR:ff380000 PC:02068850 Cy:39999750140 ARM9 0206884c: e35c0007 cmp r12, #0x7 r0:451cf3ff r1:ff941840 r2:00f53d40 r3:009cf3ff r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000000f SP:027e3744 LR:ff380000 PC:02068854 Cy:39999750140 ARM9 02068850: 0a000042 beq #0x110 r0:451cf3ff r1:ff941840 r2:00f53d40 r3:009cf3ff r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000000f SP:027e3744 LR:ff380000 PC:02068858 Cy:39999750141 ARM9 02068854: e0800fa1 add r0, r0, r1, lsr #31 r0:451cf3ff r1:ff941840 r2:00f53d40 r3:009cf3ff r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000000f SP:027e3744 LR:ff380000 PC:0206885c Cy:39999750141 ARM9 02068858: e8bd4000 ldmia sp!, {lr} r0:451cf400 r1:ff941840 r2:00f53d40 r3:009cf3ff r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000000f SP:027e3744 LR:ff380000 PC:02068860 Cy:39999750142 ARM9 0206885c: e12fff1e bx lr r0:451cf400 r1:ff941840 r2:00f53d40 r3:009cf3ff r4:0000000f r5:432f0000 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000000f SP:027e3748 LR:02008d30 PC:02068864 Cy:39999750143 ARM9 ]]-- --[[ 0206884c: e35c0007 cmp r12, #0x7 succeeded 020687ac: e92d4000 stmdb sp!, {lr} r0:42d40000 r1:42c80000 r2:00000000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000019 SP:027e3748 LR:02008d44 PC:020687b4 Cy:39263661161 ARM9 020687b0: e3a0c0ff mov r12, #0xFF r0:42d40000 r1:42c80000 r2:00000000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000019 SP:027e3744 LR:02008d44 PC:020687b8 Cy:39263661161 ARM9 020687b4: e01c3ba0 ands r3, r12, r0, lsr #23 r0:42d40000 r1:42c80000 r2:00000000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:000000ff SP:027e3744 LR:02008d44 PC:020687bc Cy:39263661162 ARM9 020687b8: 135300ff cmpne r3, #0xFF r0:42d40000 r1:42c80000 r2:00000000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:000000ff SP:027e3744 LR:02008d44 PC:020687c0 Cy:39263661162 ARM9 020687bc: 0a00006f beq #0x1C4 r0:42d40000 r1:42c80000 r2:00000000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:000000ff SP:027e3744 LR:02008d44 PC:020687c4 Cy:39263661164 ARM9 020687c0: e01ccba1 ands r12, r12, r1, lsr #23 r0:42d40000 r1:42c80000 r2:00000000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:000000ff SP:027e3744 LR:02008d44 PC:020687c8 Cy:39263661164 ARM9 020687c4: 135c00ff cmpne r12, #0xFF r0:42d40000 r1:42c80000 r2:00000000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:02008d44 PC:020687cc Cy:39263661165 ARM9 020687c8: 0a00007b beq #0x1F4 r0:42d40000 r1:42c80000 r2:00000000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:02008d44 PC:020687d0 Cy:39263661165 ARM9 020687cc: e3811502 orr r1, r1, #0x800000 r0:42d40000 r1:42c80000 r2:00000000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:02008d44 PC:020687d4 Cy:39263661166 ARM9 020687d0: e3800502 orr r0, r0, #0x800000 r0:42d40000 r1:42c80000 r2:00000000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:02008d44 PC:020687d8 Cy:39263661166 ARM9 020687d4: e3c024ff bic r2, r0, #0xFF000000 r0:42d40000 r1:42c80000 r2:00000000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:02008d44 PC:020687dc Cy:39263661167 ARM9 020687d8: e3c1e4ff bic lr, r1, #0xFF000000 r0:42d40000 r1:42c80000 r2:00d40000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:02008d44 PC:020687e0 Cy:39263661167 ARM9 020687dc: e152000e cmp r2, lr, lsl #0 r0:42d40000 r1:42c80000 r2:00d40000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:00c80000 PC:020687e4 Cy:39263661169 ARM9 020687e0: 31a02082 movcc r2, r2, lsl #1 r0:42d40000 r1:42c80000 r2:00d40000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:00c80000 PC:020687e8 Cy:39263661169 ARM9 020687e4: 32433001 subcc r3, r3, #0x1 r0:42d40000 r1:42c80000 r2:00d40000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:00c80000 PC:020687ec Cy:39263661170 ARM9 020687e8: e1300001 teq r0, r1, lsl #0 r0:42d40000 r1:42c80000 r2:00d40000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:00c80000 PC:020687f0 Cy:39263661170 ARM9 020687ec: e24f0094 sub r0, pc, #0x94 r0:42d40000 r1:42c80000 r2:00d40000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:00c80000 PC:020687f4 Cy:39263661171 ARM9 020687f0: e7d017ae ldrb r1, [r0, lr, lsr #15] r0:02068760 r1:42c80000 r2:00d40000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:00c80000 PC:020687f8 Cy:39263661171 ARM9 020687f4: e26ee000 rsb lr, lr, #0x0 r0:02068760 r1:000000a4 r2:00d40000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:00c80000 PC:020687fc Cy:39263661173 ARM9 020687f8: e1a000ce mov r0, lr, asr #1 r0:02068760 r1:000000a4 r2:00d40000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:ff380000 PC:02068800 Cy:39263661173 ARM9 020687fc: e0000091 mul r0, r1, r0 r0:ff9c0000 r1:000000a4 r2:00d40000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:ff380000 PC:02068804 Cy:39263661175 ARM9 02068800: e2800102 add r0, r0, #0x80000000 r0:bff00000 r1:000000a4 r2:00d40000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:ff380000 PC:02068808 Cy:39263661176 ARM9 02068804: e1a00320 mov r0, r0, lsr #6 r0:3ff00000 r1:000000a4 r2:00d40000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:ff380000 PC:0206880c Cy:39263661176 ARM9 02068808: e0000091 mul r0, r1, r0 r0:00ffc000 r1:000000a4 r2:00d40000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:ff380000 PC:02068810 Cy:39263661177 ARM9 0206880c: e1a00720 mov r0, r0, lsr #14 r0:a3d70000 r1:000000a4 r2:00d40000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:ff380000 PC:02068814 Cy:39263661178 ARM9 02068810: e001009e mul r1, lr, r0 r0:00028f5c r1:000000a4 r2:00d40000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:ff380000 PC:02068818 Cy:39263661178 ARM9 02068814: e043c00c sub r12, r3, r12, lsl #0 r0:00028f5c r1:00200000 r2:00d40000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000085 SP:027e3744 LR:ff380000 PC:0206881c Cy:39263661179 ARM9 02068818: e1a01621 mov r1, r1, lsr #12 r0:00028f5c r1:00200000 r2:00d40000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000000 SP:027e3744 LR:ff380000 PC:02068820 Cy:39263661180 ARM9 0206881c: e0010190 mul r1, r0, r1 r0:00028f5c r1:00000200 r2:00d40000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000000 SP:027e3744 LR:ff380000 PC:02068824 Cy:39263661181 ARM9 02068820: e1a00700 mov r0, r0, lsl #14 r0:00028f5c r1:051eb800 r2:00d40000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000000 SP:027e3744 LR:ff380000 PC:02068828 Cy:39263661182 ARM9 02068824: e08007a1 add r0, r0, r1, lsr #15 r0:a3d70000 r1:051eb800 r2:00d40000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000000 SP:027e3744 LR:ff380000 PC:0206882c Cy:39263661183 ARM9 02068828: e0801092 umull r1, r0, r2, r0 r0:a3d70a3d r1:051eb800 r2:00d40000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000000 SP:027e3744 LR:ff380000 PC:02068830 Cy:39263661183 ARM9 0206882c: e1a03000 mov r3, r0, lsl #0 r0:0087ae14 r1:7a840000 r2:00d40000 r3:00000085 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000000 SP:027e3744 LR:ff380000 PC:02068834 Cy:39263661184 ARM9 02068830: 43800102 orrmi r0, r0, #0x80000000 r0:0087ae14 r1:7a840000 r2:00d40000 r3:0087ae14 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000000 SP:027e3744 LR:ff380000 PC:02068838 Cy:39263661185 ARM9 02068834: e29cc07e adds r12, r12, #0x7E r0:0087ae14 r1:7a840000 r2:00d40000 r3:0087ae14 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000000 SP:027e3744 LR:ff380000 PC:0206883c Cy:39263661185 ARM9 02068838: 4a000091 bmi #0x24C r0:0087ae14 r1:7a840000 r2:00d40000 r3:0087ae14 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:0000007e SP:027e3744 LR:ff380000 PC:02068840 Cy:39263661186 ARM9 0206883c: e35c00fe cmp r12, #0xFE r0:0087ae14 r1:7a840000 r2:00d40000 r3:0087ae14 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:0000007e SP:027e3744 LR:ff380000 PC:02068844 Cy:39263661187 ARM9 02068840: aa0000bc bge #0x2F8 r0:0087ae14 r1:7a840000 r2:00d40000 r3:0087ae14 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:0000007e SP:027e3744 LR:ff380000 PC:02068848 Cy:39263661188 ARM9 02068844: e0800b8c add r0, r0, r12, lsl #23 r0:0087ae14 r1:7a840000 r2:00d40000 r3:0087ae14 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:0000007e SP:027e3744 LR:ff380000 PC:0206884c Cy:39263661188 ARM9 02068848: e1a0ce21 mov r12, r1, lsr #28 r0:3f87ae14 r1:7a840000 r2:00d40000 r3:0087ae14 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:0000007e SP:027e3744 LR:ff380000 PC:02068850 Cy:39263661189 ARM9 0206884c: e35c0007 cmp r12, #0x7 r0:3f87ae14 r1:7a840000 r2:00d40000 r3:0087ae14 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000007 SP:027e3744 LR:ff380000 PC:02068854 Cy:39263661189 ARM9 02068850: 0a000042 beq #0x110 r0:3f87ae14 r1:7a840000 r2:00d40000 r3:0087ae14 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000007 SP:027e3744 LR:ff380000 PC:02068858 Cy:39263661190 ARM9 02068960: e1a01083 mov r1, r3, lsl #1 r0:3f87ae14 r1:7a840000 r2:00d40000 r3:0087ae14 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000007 SP:027e3744 LR:ff380000 PC:02068968 Cy:39263661192 ARM9 02068964: e2811001 add r1, r1, #0x1 r0:3f87ae14 r1:010f5c28 r2:00d40000 r3:0087ae14 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000007 SP:027e3744 LR:ff380000 PC:0206896c Cy:39263661192 ARM9 02068968: e26ee000 rsb lr, lr, #0x0 r0:3f87ae14 r1:010f5c29 r2:00d40000 r3:0087ae14 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000007 SP:027e3744 LR:ff380000 PC:02068970 Cy:39263661193 ARM9 0206896c: e001019e mul r1, lr, r1 r0:3f87ae14 r1:010f5c29 r2:00d40000 r3:0087ae14 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000007 SP:027e3744 LR:00c80000 PC:02068974 Cy:39263661193 ARM9 02068970: e1510c02 cmp r1, r2, lsl #24 r0:3f87ae14 r1:00080000 r2:00d40000 r3:0087ae14 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000007 SP:027e3744 LR:00c80000 PC:02068978 Cy:39263661194 ARM9 02068974: 42800001 addmi r0, r0, #0x1 r0:3f87ae14 r1:00080000 r2:00d40000 r3:0087ae14 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000007 SP:027e3744 LR:00c80000 PC:0206897c Cy:39263661195 ARM9 02068978: e8bd4000 ldmia sp!, {lr} r0:3f87ae14 r1:00080000 r2:00d40000 r3:0087ae14 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000007 SP:027e3744 LR:00c80000 PC:02068980 Cy:39263661195 ARM9 0206897c: e12fff1e bx lr r0:3f87ae14 r1:00080000 r2:00d40000 r3:0087ae14 r4:00000010 r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:4050ab42 r10:0000003c r11:fffffc00 r12:00000007 SP:027e3748 LR:02008d44 PC:02068984 Cy:39263661197 ARM9 ]]-- local read8 = memory.read_u8 local read16 = memory.read_u16_le local read24 = memory.read_u24_be local read32 = memory.read_u32_le function FUN_020687ac_Skill(r0, r1) --r1 seems hard coded to 42c80000 local cond = false local r12 = 0xFF local r3 = r12 & (r0 >> 23) if r3 == 0 or r3 == 0xFF then --doesnt seem to happen console.log("FUN_020687ac_Skill r0") end r12 = r12 & (r1 >> 23) if r12 == 0 or r12 == 0xFF then --doesnt seem to happen console.log("FUN_020687ac_Skill r1") end r1 = r1 | 0x800000 r0 = r0 | 0x800000 local r2 = r0 & 0xFFFFFF --r0 AND NOT(0xFF000000) local lr = r1 & 0xFFFFFF --r1 AND NOT(0xFF000000) if r2 < lr then --?? r2 = r2 << 1 r3 = r3 - 1 end -- 020687e8: e1300001 teq r0, r1, lsl #0 cond = bit.check(r0 ~ r1, 31) r1 = read8(0x00068760 + (lr >> 15),"Main RAM") --20688F0, or 0688F0 in main ram lr = (0 - lr) & 0xFFFFFFFF --make sure it remains 32 bit r0 = bit.arshift(lr,1) & 0xFFFFFFFF --make sure it remains 32 bit r0 = MLA(r0,r1,0) --32 bit multiply r0 = (r0 + 0x80000000) & 0xFFFFFFFF --make sure it remains 32 bit r0 = r0 >> 6 r0 = MLA(r0, r1, 0) --32 bit multiply r0 = r0 >> 14 r1 = MLA(lr, r0, 0) --32 bit multiply r12 = r3 - r12 r1 = r1 >> 12 r1 = MLA(r0, r1, 0) --32 bit multiply r0 = (r0 << 14) & 0xFFFFFFFF --make sure it remains 32 bit r0 = r0 + (r1 >> 15) --02068828: e0801092 umull r1, r0, r2, r0 r1, r0 = MUL64(r2, r0) r3 = r0 if cond then r0 = r0 | 0x80000000 end r12 = r12 + 0x7E --02068838: 4a000091 bmi #0x24C --0206883c: e35c00fe cmp r12, #0xFE --02068840: aa0000bc bge #0x2F8 --never occurs r0 = r0 + (r12 << 23) r12 = r1 >> 28 --0206884c: e35c0007 cmp r12, #0x7 if r12 == 7 then r1 = (r3 << 1) + 1 lr = (0 - lr) & 0xFFFFFFFF --make sure it remains 32 bit r1 = MLA(lr,r1,0) --32 bit multiply if (r1 - ((r2 << 24) & 0xFFFFFFFF) < 0) then console.log("FUN_020687ac_Skill r12") r0 = r0 + 1 end return r0 end r0 = r0 + (r1 >> 31) return r0 end --[[ 02068c1c: e3500000 cmp r0, #0x0 r0:00000069 r1:ff941840 r2:00f53d40 r3:009cf3ff r4:0000000f r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000000f SP:027e3748 LR:02008d3c PC:02068c24 Cy:39999750149 ARM9 02068c20: 012fff1e bxeq lr r0:00000069 r1:ff941840 r2:00f53d40 r3:009cf3ff r4:0000000f r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000000f SP:027e3748 LR:02008d3c PC:02068c28 Cy:39999750150 ARM9 02068c24: e3a0309e mov r3, #0x9E r0:00000069 r1:ff941840 r2:00f53d40 r3:009cf3ff r4:0000000f r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000000f SP:027e3748 LR:02008d3c PC:02068c2c Cy:39999750150 ARM9 02068c28: 4a000002 bmi #0x10 r0:00000069 r1:ff941840 r2:00f53d40 r3:0000009e r4:0000000f r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000000f SP:027e3748 LR:02008d3c PC:02068c30 Cy:39999750151 ARM9 02068c2c: e16fcf10 clz r12, r0 r0:00000069 r1:ff941840 r2:00f53d40 r3:0000009e r4:0000000f r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:0000000f SP:027e3748 LR:02008d3c PC:02068c34 Cy:39999750151 ARM9 02068c30: e1b00c10 movs r0, r0, lsl r12 r0:00000069 r1:ff941840 r2:00f53d40 r3:0000009e r4:0000000f r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000019 SP:027e3748 LR:02008d3c PC:02068c38 Cy:39999750152 ARM9 02068c34: e043300c sub r3, r3, r12, lsl #0 r0:d2000000 r1:ff941840 r2:00f53d40 r3:0000009e r4:0000000f r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000019 SP:027e3748 LR:02008d3c PC:02068c3c Cy:39999750153 ARM9 02068c38: e21020ff ands r2, r0, #0xFF r0:d2000000 r1:ff941840 r2:00f53d40 r3:00000085 r4:0000000f r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000019 SP:027e3748 LR:02008d3c PC:02068c40 Cy:39999750153 ARM9 02068c3c: e0800000 add r0, r0, r0, lsl #0 r0:d2000000 r1:ff941840 r2:00000000 r3:00000085 r4:0000000f r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000019 SP:027e3748 LR:02008d3c PC:02068c44 Cy:39999750155 ARM9 02068c40: e1a004a0 mov r0, r0, lsr #9 r0:a4000000 r1:ff941840 r2:00000000 r3:00000085 r4:0000000f r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000019 SP:027e3748 LR:02008d3c PC:02068c48 Cy:39999750155 ARM9 02068c44: e1800b83 orr r0, r0, r3, lsl #23 r0:00520000 r1:ff941840 r2:00000000 r3:00000085 r4:0000000f r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000019 SP:027e3748 LR:02008d3c PC:02068c4c Cy:39999750156 ARM9 02068c48: 012fff1e bxeq lr r0:42d20000 r1:ff941840 r2:00000000 r3:00000085 r4:0000000f r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000019 SP:027e3748 LR:02008d3c PC:02068c50 Cy:39999750156 ARM9 ]]-- function FUN_02068c1c_Skill(r0) if r0 == 0 then return end local r3 = 0x9E --02068c28: 4a000002 bmi #0x10 if r0 < 0 then console.log("FUN_02068c1c_Skill r0") end local r12 = Count_Leading_Zeroes(r0) r0 = r0 << r12 r3 = r3 - r12 local r2 = r0 & 0xFF r0 = (r0 + r0) >> 9 r0 = r0 | (r3 << 23) if r2 == 0 then return r0 end end --[[ 02068be8: e3c01102 bic r1, r0, #0x80000000 r0:4524cd00 r1:3c000000 r2:00000000 r3:00000082 r4:0000000f r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d54 PC:02068bf0 Cy:39999750223 ARM9 02068bec: e3a0209e mov r2, #0x9E r0:4524cd00 r1:4524cd00 r2:00000000 r3:00000082 r4:0000000f r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d54 PC:02068bf4 Cy:39999750223 ARM9 02068bf0: e0522ba1 subs r2, r2, r1, lsr #23 r0:4524cd00 r1:4524cd00 r2:0000009e r3:00000082 r4:0000000f r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d54 PC:02068bf8 Cy:39999750224 ARM9 02068bf4: da000005 ble #0x1C r0:4524cd00 r1:4524cd00 r2:00000014 r3:00000082 r4:0000000f r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d54 PC:02068bfc Cy:39999750224 ARM9 02068bf8: e1a01401 mov r1, r1, lsl #8 r0:4524cd00 r1:4524cd00 r2:00000014 r3:00000082 r4:0000000f r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d54 PC:02068c00 Cy:39999750225 ARM9 02068bfc: e3811102 orr r1, r1, #0x80000000 r0:4524cd00 r1:24cd0000 r2:00000014 r3:00000082 r4:0000000f r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d54 PC:02068c04 Cy:39999750226 ARM9 02068c00: e3500000 cmp r0, #0x0 r0:4524cd00 r1:a4cd0000 r2:00000014 r3:00000082 r4:0000000f r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d54 PC:02068c08 Cy:39999750227 ARM9 02068c04: e1a00231 mov r0, r1, lsr r2 r0:4524cd00 r1:a4cd0000 r2:00000014 r3:00000082 r4:0000000f r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d54 PC:02068c0c Cy:39999750227 ARM9 02068c08: 42600000 rsbmi r0, r0, #0x0 r0:00000a4c r1:a4cd0000 r2:00000014 r3:00000082 r4:0000000f r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d54 PC:02068c10 Cy:39999750228 ARM9 02068c0c: e12fff1e bx lr r0:00000a4c r1:a4cd0000 r2:00000014 r3:00000082 r4:0000000f r5:451cf400 r6:00000004 r7:00000011 r8:00000008 r9:437f0000 r10:0000003c r11:fffffc00 r12:00000089 SP:027e3748 LR:02008d54 PC:02068c14 Cy:39999750229 ARM9 ]]-- function FUN_02068be8(r0) local r1 = r0 & 0x7FFFFFFF -- r1 = r0 AND NOT(0x80000000) local r2 = 0x9E r2 = r2 - (r1 >> 23) if r1 < r2 then r0 = bit.arshift(r0,31) + 0x80000000 return r0 end r1 = (r1 << 8) & 0xFFFFFFFF --make sure it remains 32 bit r1 = r1 | 0x80000000 local cond = r0 < 0 r0 = r1 >> r2 if cond then r0 = -1* r0 end return r0 end local level = 90 -- local rng1 = 0xc910a194 -- local rng2 = 0x0a8b4e34 local rng1 = 2817202923 local rng2 = 3945076056 local r0 = 0 function Wind_Scar_Damage(level, skill_value, rng1, rng2) local r0 = 0 r0, rng1, rng2 = rng(r0, rng1, rng2) r0, rng1, rng2 = rng(r0, rng1, rng2) r0, rng1, rng2 = rng(r0, rng1, rng2) r0, rng1, rng2 = rng(r0, rng1, rng2) local r5 = skill_value r0 = 0x14 r0, rng1, rng2 = rng(0x14, rng1, rng2) local r4 = r0 r0 = FUN_02068c64_Skill(r5) -- local r2 = level local r1 = FUN_02068c64_Skill(0xF * level + 0x55) r0 = FUN_02068cac_Skill(r0, r1) r1 = 0x42c80000 --02008d28: e59f102c ldr r1, [pc, #+0x2C] r0 = FUN_020687ac_Skill(r0, r1) r5 = r0 r0 = r4 + 0x5A r0 = FUN_02068c1c_Skill(r0) r1 = 0x42c80000 --02008d3c: e59f1018 ldr r1, [pc, #+0x18] r0 = FUN_020687ac_Skill(r0, r1) r1 = r0 r0 = r5 r0 = FUN_02068cac_Skill(r0, r1) r0 = FUN_02068be8(r0) return r0 end console.log(Wind_Scar_Damage(90, Attack[19].Value, 2817202923, 3945076056))
Skilled player (1748)
Joined: 9/17/2009
Posts: 4993
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"

1737504106