{"format":"sotn-axe-attack-static-v1","originalDiscVersion":"SLUS-00067","decoderReferenceCommit":"0622fcfd37311fd21baf2938c6bd74cea63005ba","name":"EntitySubwpnThrownAxe","entityId":10,"inventoryId":2,"sourceName":"SUBWPN_AXE","width":24,"height":40,"texturePage":28,"texturesByPalette":{"0":{"paletteIndex":0,"clut":427,"palette":{"id":427,"sourceFile":"BIN/F_GAME.BIN","offset":267616,"rawBytesHex":"00004288a8880d9592a9298c4e94d2a091c552ca7befc6986bad52ca39e7ffff","rawWords":[0,34882,34984,38157,43410,35881,37966,41170,50577,51794,61307,39110,44395,51794,59193,65535],"rgba":[[0,0,0,0],[16,16,16,255],[65,41,16,255],[106,65,41,255],[148,98,82,255],[74,8,24,255],[115,16,41,255],[148,49,65,255],[139,98,139,255],[148,148,148,255],[222,222,222,255],[49,49,49,255],[90,90,90,255],[148,148,148,255],[205,205,205,255],[255,255,255,255]],"stpIndices":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],"format":"Little-endian RGB555 plus original bit15 STP. A zero word is transparent; every nonzero word has alpha255 in the full atlas."},"textureImage":"axe-attack-palette0-texture.png","opaqueTextureImage":"axe-attack-palette0-opaque.png","stpTextureImage":"axe-attack-palette0-stp.png","width":24,"height":40,"opaquePixelCount":0,"stpPixelCount":279,"transparentPixelCount":681,"pixelIndexFrequencies":[681,36,5,2,3,12,44,31,11,22,3,15,7,21,27,40],"sourcePixelBlock":16,"sourceRowOffsets":[131072,131136,131200,131264,131328,131392,131456,131520,131584,131648,131712,131776,131840,131904,131968,132032,132096,132160,132224,132288,132352,132416,132480,132544,132608,132672,132736,132800,132864,132928,132992,133056,133120,133184,133248,133312,133376,133440,133504,133568],"pixelSourceFile":"BIN/F_GAME.BIN"},"1":{"paletteIndex":1,"clut":428,"palette":{"id":428,"sourceFile":"BIN/F_GAME.BIN","offset":267648,"rawBytesHex":"00004288a8880d9592a929a08dac53c5d3cd52ca7befa59429a5efbdb5d6f7ea","rawWords":[0,34882,34984,38157,43410,41001,44173,50515,52691,51794,61307,38053,42281,48623,54965,60151],"rgba":[[0,0,0,0],[16,16,16,255],[65,41,16,255],[106,65,41,255],[148,98,82,255],[74,8,65,255],[106,32,90,255],[156,82,139,255],[156,115,156,255],[148,148,148,255],[222,222,222,255],[41,41,41,255],[74,74,74,255],[123,123,123,255],[172,172,172,255],[189,189,213,255]],"stpIndices":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],"format":"Little-endian RGB555 plus original bit15 STP. A zero word is transparent; every nonzero word has alpha255 in the full atlas."},"textureImage":"axe-attack-palette1-texture.png","opaqueTextureImage":"axe-attack-palette1-opaque.png","stpTextureImage":"axe-attack-palette1-stp.png","width":24,"height":40,"opaquePixelCount":0,"stpPixelCount":279,"transparentPixelCount":681,"pixelIndexFrequencies":[681,36,5,2,3,12,44,31,11,22,3,15,7,21,27,40],"sourcePixelBlock":16,"sourceRowOffsets":[131072,131136,131200,131264,131328,131392,131456,131520,131584,131648,131712,131776,131840,131904,131968,132032,132096,132160,132224,132288,132352,132416,132480,132544,132608,132672,132736,132800,132864,132928,132992,133056,133120,133184,133248,133312,133376,133440,133504,133568],"pixelSourceFile":"BIN/F_GAME.BIN"}},"sourceUV":[0,0,24,40],"originalUVcorners":[[0,0],[24,0],[0,40],[24,40]],"croppedUVcorners":[[0,0],[24,0],[0,40],[24,40]],"paletteSelection":{"baseClut":427,"timerRightShift":1,"timerMask":1,"operation":"addition","formula":"((g_GameTimer>>1)&1)+0x1AB","periodTicks":4,"everyPrimitiveUpdatedEveryTick":true},"sourcePaintOrder":[4,3,2,1,0],"subweaponFields":[10,4,4160,2,32,4,93,9,2,131,0,0,0],"subweaponFieldNames":["attack","heartCost","attackElement","chainLimit","nFramesInvincibility","stunFrames","anim","blueprintNum","hitboxState","hitEffect","crashId","unk11","entityRoomIndex"],"subweaponDefinition":{"sourceFile":"DRA.BIN","tableName":"g_SubwpnDefs","tableOffset":18944,"index":2,"offset":18984,"bytes":20,"rawBytesHex":"0a0004004010022004005d090200830000000000","fields":[10,4,4160,2,32,4,93,9,2,131,0,0,0],"reference":"https://github.com/Xeeynamo/sotn-decomp/blob/0622fcfd37311fd21baf2938c6bd74cea63005ba/src/config_us.h"},"factory":{"blueprintId":9,"sourceFile":"DRA.BIN","offset":53770,"rawBytesHex":"0a01c1002200","childEntityId":10,"childCount":1,"origin":"PLAYER entity origin","initialXOffset":0,"firstGlobalSlot":32,"endGlobalSlotExclusive":48,"callbackTableOffset":53484,"callbackPointer":"0x80125330","callbackOffset":545584},"sineQuarter":[0,6,13,19,25,31,38,44,50,57,63,69,75,82,88,94,101,107,113,119,126,132,138,144,151,157,163,170,176,182,188,195,201,207,214,220,226,232,239,245,251,257,264,270,276,283,289,295,301,308,314,320,326,333,339,345,351,358,364,370,376,383,389,395,401,408,414,420,426,433,439,445,451,458,464,470,476,483,489,495,501,508,514,520,526,533,539,545,551,557,564,570,576,582,589,595,601,607,613,620,626,632,638,644,651,657,663,669,675,682,688,694,700,706,713,719,725,731,737,744,750,756,762,768,774,781,787,793,799,805,811,818,824,830,836,842,848,854,861,867,873,879,885,891,897,904,910,916,922,928,934,940,946,953,959,965,971,977,983,989,995,1001,1007,1014,1020,1026,1032,1038,1044,1050,1056,1062,1068,1074,1080,1086,1092,1099,1105,1111,1117,1123,1129,1135,1141,1147,1153,1159,1165,1171,1177,1183,1189,1195,1201,1207,1213,1219,1225,1231,1237,1243,1249,1255,1261,1267,1273,1279,1285,1291,1297,1303,1309,1315,1321,1327,1332,1338,1344,1350,1356,1362,1368,1374,1380,1386,1392,1398,1404,1409,1415,1421,1427,1433,1439,1445,1451,1457,1462,1468,1474,1480,1486,1492,1498,1503,1509,1515,1521,1527,1533,1538,1544,1550,1556,1562,1567,1573,1579,1585,1591,1596,1602,1608,1614,1620,1625,1631,1637,1643,1648,1654,1660,1666,1671,1677,1683,1689,1694,1700,1706,1711,1717,1723,1729,1734,1740,1746,1751,1757,1763,1768,1774,1780,1785,1791,1797,1802,1808,1813,1819,1825,1830,1836,1842,1847,1853,1858,1864,1870,1875,1881,1886,1892,1898,1903,1909,1914,1920,1925,1931,1936,1942,1947,1953,1958,1964,1970,1975,1981,1986,1992,1997,2002,2008,2013,2019,2024,2030,2035,2041,2046,2052,2057,2062,2068,2073,2079,2084,2090,2095,2100,2106,2111,2117,2122,2127,2133,2138,2143,2149,2154,2159,2165,2170,2175,2181,2186,2191,2197,2202,2207,2213,2218,2223,2228,2234,2239,2244,2249,2255,2260,2265,2270,2276,2281,2286,2291,2296,2302,2307,2312,2317,2322,2328,2333,2338,2343,2348,2353,2359,2364,2369,2374,2379,2384,2389,2394,2399,2405,2410,2415,2420,2425,2430,2435,2440,2445,2450,2455,2460,2465,2470,2475,2480,2485,2490,2495,2500,2505,2510,2515,2520,2525,2530,2535,2540,2545,2550,2555,2559,2564,2569,2574,2579,2584,2589,2594,2598,2603,2608,2613,2618,2623,2628,2632,2637,2642,2647,2652,2656,2661,2666,2671,2675,2680,2685,2690,2694,2699,2704,2709,2713,2718,2723,2727,2732,2737,2741,2746,2751,2755,2760,2765,2769,2774,2779,2783,2788,2792,2797,2802,2806,2811,2815,2820,2824,2829,2833,2838,2843,2847,2852,2856,2861,2865,2870,2874,2878,2883,2887,2892,2896,2901,2905,2910,2914,2918,2923,2927,2932,2936,2940,2945,2949,2953,2958,2962,2967,2971,2975,2979,2984,2988,2992,2997,3001,3005,3009,3014,3018,3022,3026,3031,3035,3039,3043,3048,3052,3056,3060,3064,3068,3073,3077,3081,3085,3089,3093,3097,3102,3106,3110,3114,3118,3122,3126,3130,3134,3138,3142,3146,3150,3154,3158,3162,3166,3170,3174,3178,3182,3186,3190,3194,3198,3202,3206,3210,3214,3217,3221,3225,3229,3233,3237,3241,3244,3248,3252,3256,3260,3264,3267,3271,3275,3279,3282,3286,3290,3294,3297,3301,3305,3309,3312,3316,3320,3323,3327,3331,3334,3338,3342,3345,3349,3352,3356,3360,3363,3367,3370,3374,3378,3381,3385,3388,3392,3395,3399,3402,3406,3409,3413,3416,3420,3423,3426,3430,3433,3437,3440,3444,3447,3450,3454,3457,3461,3464,3467,3471,3474,3477,3481,3484,3487,3490,3494,3497,3500,3504,3507,3510,3513,3516,3520,3523,3526,3529,3532,3536,3539,3542,3545,3548,3551,3555,3558,3561,3564,3567,3570,3573,3576,3579,3582,3585,3588,3591,3594,3597,3600,3603,3606,3609,3612,3615,3618,3621,3624,3627,3630,3633,3636,3639,3642,3644,3647,3650,3653,3656,3659,3661,3664,3667,3670,3673,3675,3678,3681,3684,3686,3689,3692,3695,3697,3700,3703,3705,3708,3711,3713,3716,3719,3721,3724,3727,3729,3732,3734,3737,3739,3742,3745,3747,3750,3752,3755,3757,3760,3762,3765,3767,3770,3772,3775,3777,3779,3782,3784,3787,3789,3791,3794,3796,3798,3801,3803,3805,3808,3810,3812,3815,3817,3819,3822,3824,3826,3828,3831,3833,3835,3837,3839,3842,3844,3846,3848,3850,3852,3854,3857,3859,3861,3863,3865,3867,3869,3871,3873,3875,3877,3879,3881,3883,3885,3887,3889,3891,3893,3895,3897,3899,3901,3903,3905,3907,3909,3910,3912,3914,3916,3918,3920,3921,3923,3925,3927,3929,3930,3932,3934,3936,3937,3939,3941,3943,3944,3946,3948,3949,3951,3953,3954,3956,3958,3959,3961,3962,3964,3965,3967,3969,3970,3972,3973,3975,3976,3978,3979,3981,3982,3984,3985,3987,3988,3989,3991,3992,3994,3995,3996,3998,3999,4001,4002,4003,4005,4006,4007,4008,4010,4011,4012,4014,4015,4016,4017,4019,4020,4021,4022,4023,4024,4026,4027,4028,4029,4030,4031,4032,4034,4035,4036,4037,4038,4039,4040,4041,4042,4043,4044,4045,4046,4047,4048,4049,4050,4051,4052,4053,4053,4054,4055,4056,4057,4058,4059,4060,4060,4061,4062,4063,4064,4064,4065,4066,4067,4067,4068,4069,4070,4070,4071,4072,4072,4073,4074,4074,4075,4076,4076,4077,4077,4078,4079,4079,4080,4080,4081,4081,4082,4082,4083,4083,4084,4084,4085,4085,4086,4086,4087,4087,4088,4088,4088,4089,4089,4089,4090,4090,4090,4091,4091,4091,4092,4092,4092,4092,4093,4093,4093,4093,4094,4094,4094,4094,4094,4095,4095,4095,4095,4095,4095,4095,4096,4096,4096,4096,4096,4096,4096,4096,4096,4096,4096],"sineTableDefinition":{"sourceFile":"SLUS_000.67","offset":121804,"bytes":2050,"wordCount":1025,"runtimeAddress":"0x8002d3cc","rawBytesHex":"000006000d00130019001f0026002c00320039003f0045004b00520058005e0065006b00710077007e0084008a00900097009d00a300aa00b000b600bc00c300c900cf00d600dc00e200e800ef00f500fb00010108010e0114011b01210127012d0134013a01400146014d01530159015f0166016c01720178017f0185018b01910198019e01a401aa01b101b701bd01c301ca01d001d601dc01e301e901ef01f501fc01020208020e0215021b02210227022d0234023a02400246024d02530259025f0265026c02720278027e0284028b02910297029d02a302aa02b002b602bc02c202c902cf02d502db02e102e802ee02f402fa02000306030d03130319031f0325032b03320338033e0344034a03500356035d03630369036f0375037b03810388038e0394039a03a003a603ac03b203b903bf03c503cb03d103d703dd03e303e903ef03f603fc03020408040e0414041a04200426042c04320438043e0444044b04510457045d04630469046f0475047b04810487048d04930499049f04a504ab04b104b704bd04c304c904cf04d504db04e104e704ed04f304f904ff0405050b05110517051d05230529052f0534053a05400546054c05520558055e0564056a05700576057c05810587058d05930599059f05a505ab05b105b605bc05c205c805ce05d405da05df05e505eb05f105f705fd05020608060e0614061a061f0625062b06310637063c06420648064e06540659065f0665066b06700676067c06820687068d06930699069e06a406aa06af06b506bb06c106c606cc06d206d706dd06e306e806ee06f406f906ff0605070a07100715071b07210726072c07320737073d07420748074e07530759075e0764076a076f0775077a07800785078b07900796079b07a107a607ac07b207b707bd07c207c807cd07d207d807dd07e307e807ee07f307f907fe07040809080e08140819081f0824082a082f0834083a083f0845084a084f0855085a085f0865086a086f0875087a087f0885088a088f0895089a089f08a508aa08af08b408ba08bf08c408c908cf08d408d908de08e408e908ee08f308f808fe08030908090d09120918091d09220927092c09310937093c09410946094b09500955095a095f0965096a096f09740979097e09830988098d09920997099c09a109a609ab09b009b509ba09bf09c409c909ce09d309d809dd09e209e709ec09f109f609fb09ff09040a090a0e0a130a180a1d0a220a260a2b0a300a350a3a0a3f0a440a480a4d0a520a570a5c0a600a650a6a0a6f0a730a780a7d0a820a860a8b0a900a950a990a9e0aa30aa70aac0ab10ab50aba0abf0ac30ac80acd0ad10ad60adb0adf0ae40ae80aed0af20af60afb0aff0a040b080b0d0b110b160b1b0b1f0b240b280b2d0b310b360b3a0b3e0b430b470b4c0b500b550b590b5e0b620b660b6b0b6f0b740b780b7c0b810b850b890b8e0b920b970b9b0b9f0ba30ba80bac0bb00bb50bb90bbd0bc10bc60bca0bce0bd20bd70bdb0bdf0be30be80bec0bf00bf40bf80bfc0b010c050c090c0d0c110c150c190c1e0c220c260c2a0c2e0c320c360c3a0c3e0c420c460c4a0c4e0c520c560c5a0c5e0c620c660c6a0c6e0c720c760c7a0c7e0c820c860c8a0c8e0c910c950c990c9d0ca10ca50ca90cac0cb00cb40cb80cbc0cc00cc30cc70ccb0ccf0cd20cd60cda0cde0ce10ce50ce90ced0cf00cf40cf80cfb0cff0c030d060d0a0d0e0d110d150d180d1c0d200d230d270d2a0d2e0d320d350d390d3c0d400d430d470d4a0d4e0d510d550d580d5c0d5f0d620d660d690d6d0d700d740d770d7a0d7e0d810d850d880d8b0d8f0d920d950d990d9c0d9f0da20da60da90dac0db00db30db60db90dbc0dc00dc30dc60dc90dcc0dd00dd30dd60dd90ddc0ddf0de30de60de90dec0def0df20df50df80dfb0dfe0d010e040e070e0a0e0d0e100e130e160e190e1c0e1f0e220e250e280e2b0e2e0e310e340e370e3a0e3c0e3f0e420e450e480e4b0e4d0e500e530e560e590e5b0e5e0e610e640e660e690e6c0e6f0e710e740e770e790e7c0e7f0e810e840e870e890e8c0e8f0e910e940e960e990e9b0e9e0ea10ea30ea60ea80eab0ead0eb00eb20eb50eb70eba0ebc0ebf0ec10ec30ec60ec80ecb0ecd0ecf0ed20ed40ed60ed90edb0edd0ee00ee20ee40ee70ee90eeb0eee0ef00ef20ef40ef70ef90efb0efd0eff0e020f040f060f080f0a0f0c0f0e0f110f130f150f170f190f1b0f1d0f1f0f210f230f250f270f290f2b0f2d0f2f0f310f330f350f370f390f3b0f3d0f3f0f410f430f450f460f480f4a0f4c0f4e0f500f510f530f550f570f590f5a0f5c0f5e0f600f610f630f650f670f680f6a0f6c0f6d0f6f0f710f720f740f760f770f790f7a0f7c0f7d0f7f0f810f820f840f850f870f880f8a0f8b0f8d0f8e0f900f910f930f940f950f970f980f9a0f9b0f9c0f9e0f9f0fa10fa20fa30fa50fa60fa70fa80faa0fab0fac0fae0faf0fb00fb10fb30fb40fb50fb60fb70fb80fba0fbb0fbc0fbd0fbe0fbf0fc00fc20fc30fc40fc50fc60fc70fc80fc90fca0fcb0fcc0fcd0fce0fcf0fd00fd10fd20fd30fd40fd50fd50fd60fd70fd80fd90fda0fdb0fdc0fdc0fdd0fde0fdf0fe00fe00fe10fe20fe30fe30fe40fe50fe60fe60fe70fe80fe80fe90fea0fea0feb0fec0fec0fed0fed0fee0fef0fef0ff00ff00ff10ff10ff20ff20ff30ff30ff40ff40ff50ff50ff60ff60ff70ff70ff80ff80ff80ff90ff90ff90ffa0ffa0ffa0ffb0ffb0ffb0ffc0ffc0ffc0ffc0ffd0ffd0ffd0ffd0ffe0ffe0ffe0ffe0ffe0fff0fff0fff0fff0fff0fff0fff0f00100010001000100010001000100010001000100010","sha256":"bab3b71ba7f79dfb2b5cebb71f8382a79606a958d72031bc11b88066c36033bd","anglePeriod":4096,"quarterPeriod":1024,"amplitude":4096,"signedWordFormat":"little-endian int16","reference":"https://github.com/Xeeynamo/sotn-decomp/blob/0622fcfd37311fd21baf2938c6bd74cea63005ba/src/main/psxsdk/libgte/rsin.c"},"trailRgb40":[79,79,79,0,79,79,79,0,79,79,79,0,63,63,95,0,63,63,95,0,63,63,95,0,47,47,111,0,47,47,111,0,31,31,127,0,31,31,127,0],"trailColors":[[79,79,79],[79,79,79],[79,79,79],[63,63,95],[63,63,95],[63,63,95],[47,47,111],[47,47,111],[31,31,127],[31,31,127]],"trailRgbDefinition":{"sourceFile":"DRA.BIN","offset":67112,"runtimeAddress":"0x800b0628","tableName":"D_800B0628","entryCount":10,"entryStride":4,"rawBytesHex":"4f4f4f004f4f4f004f4f4f003f3f5f003f3f5f003f3f5f002f2f6f002f2f6f001f1f7f001f1f7f00","fourthByteIsUnusedPadding":true,"fourthByteIsNotAlpha":true},"attackAnimations":{"93":{"id":93,"pointer":"0x800aefe8","pointerTableOffset":66348,"dataOffset":61416,"poses":[{"duration":2,"frame":122,"hitbox":1,"packedPose":634,"sourceOffset":61416},{"duration":2,"frame":123,"hitbox":1,"packedPose":635,"sourceOffset":61420},{"duration":1,"frame":186,"hitbox":9,"packedPose":4794,"sourceOffset":61424},{"duration":1,"frame":187,"hitbox":9,"packedPose":4795,"sourceOffset":61428},{"duration":1,"frame":188,"hitbox":9,"packedPose":4796,"sourceOffset":61432},{"duration":1,"frame":189,"hitbox":9,"packedPose":4797,"sourceOffset":61436},{"duration":1,"frame":190,"hitbox":9,"packedPose":4798,"sourceOffset":61440},{"duration":3,"frame":191,"hitbox":9,"packedPose":4799,"sourceOffset":61444},{"duration":3,"frame":192,"hitbox":1,"packedPose":704,"sourceOffset":61448},{"duration":3,"frame":193,"hitbox":1,"packedPose":705,"sourceOffset":61452},{"duration":3,"frame":194,"hitbox":1,"packedPose":706,"sourceOffset":61456},{"duration":3,"frame":195,"hitbox":1,"packedPose":707,"sourceOffset":61460},{"duration":2,"frame":84,"hitbox":1,"packedPose":596,"sourceOffset":61464},{"duration":2,"frame":85,"hitbox":1,"packedPose":597,"sourceOffset":61468},{"duration":-3,"command":"subanimation","subanimation":16,"sourceOffset":61472},{"duration":-2,"command":"jump","animation":2,"poseIndex":0,"sourceOffset":61476}]},"94":{"id":94,"pointer":"0x800af028","pointerTableOffset":66352,"dataOffset":61480,"poses":[{"duration":5,"frame":87,"hitbox":1,"packedPose":599,"sourceOffset":61480},{"duration":4,"frame":88,"hitbox":1,"packedPose":600,"sourceOffset":61484},{"duration":3,"frame":89,"hitbox":1,"packedPose":601,"sourceOffset":61488},{"duration":3,"frame":90,"hitbox":1,"packedPose":602,"sourceOffset":61492},{"duration":3,"frame":91,"hitbox":1,"packedPose":603,"sourceOffset":61496},{"duration":3,"frame":92,"hitbox":1,"packedPose":604,"sourceOffset":61500},{"duration":3,"frame":93,"hitbox":1,"packedPose":605,"sourceOffset":61504},{"duration":16,"frame":121,"hitbox":1,"packedPose":633,"sourceOffset":61508},{"duration":-2,"command":"jump","animation":3,"poseIndex":0,"sourceOffset":61512}]}},"resolvedAnimations":{"93":{"durations":[2,2,1,1,1,1,1,3,3,3,3,3,2,2,4,4,4,4,4,4,255,255,255,255,192,7,3,4,11,8,160,255],"frames":[122,123,186,187,188,189,190,191,192,193,194,195,84,85,19,20,21,22,23,24,1,1,1,1,93,92,91,92,93,94,79,79],"loopStart":31,"sourcePoses":[{"animation":93,"poseIndex":0,"sourceOffset":61416,"hitbox":1,"packedPose":634},{"animation":93,"poseIndex":1,"sourceOffset":61420,"hitbox":1,"packedPose":635},{"animation":93,"poseIndex":2,"sourceOffset":61424,"hitbox":9,"packedPose":4794},{"animation":93,"poseIndex":3,"sourceOffset":61428,"hitbox":9,"packedPose":4795},{"animation":93,"poseIndex":4,"sourceOffset":61432,"hitbox":9,"packedPose":4796},{"animation":93,"poseIndex":5,"sourceOffset":61436,"hitbox":9,"packedPose":4797},{"animation":93,"poseIndex":6,"sourceOffset":61440,"hitbox":9,"packedPose":4798},{"animation":93,"poseIndex":7,"sourceOffset":61444,"hitbox":9,"packedPose":4799},{"animation":93,"poseIndex":8,"sourceOffset":61448,"hitbox":1,"packedPose":704},{"animation":93,"poseIndex":9,"sourceOffset":61452,"hitbox":1,"packedPose":705},{"animation":93,"poseIndex":10,"sourceOffset":61456,"hitbox":1,"packedPose":706},{"animation":93,"poseIndex":11,"sourceOffset":61460,"hitbox":1,"packedPose":707},{"animation":93,"poseIndex":12,"sourceOffset":61464,"hitbox":1,"packedPose":596},{"animation":93,"poseIndex":13,"sourceOffset":61468,"hitbox":1,"packedPose":597},{"animation":93,"poseIndex":14,"sourceOffset":58120,"hitbox":1,"packedPose":531},{"animation":93,"poseIndex":15,"sourceOffset":58124,"hitbox":1,"packedPose":532},{"animation":93,"poseIndex":16,"sourceOffset":58128,"hitbox":1,"packedPose":533},{"animation":93,"poseIndex":17,"sourceOffset":58132,"hitbox":1,"packedPose":534},{"animation":93,"poseIndex":18,"sourceOffset":58136,"hitbox":1,"packedPose":535},{"animation":93,"poseIndex":19,"sourceOffset":58140,"hitbox":1,"packedPose":536},{"animation":2,"poseIndex":0,"sourceOffset":58056,"hitbox":1,"packedPose":513},{"animation":2,"poseIndex":1,"sourceOffset":58060,"hitbox":1,"packedPose":513},{"animation":2,"poseIndex":2,"sourceOffset":58064,"hitbox":1,"packedPose":513},{"animation":2,"poseIndex":3,"sourceOffset":58068,"hitbox":1,"packedPose":513},{"animation":6,"poseIndex":0,"sourceOffset":58228,"hitbox":1,"packedPose":605},{"animation":6,"poseIndex":1,"sourceOffset":58232,"hitbox":1,"packedPose":604},{"animation":6,"poseIndex":2,"sourceOffset":58236,"hitbox":1,"packedPose":603},{"animation":6,"poseIndex":3,"sourceOffset":58240,"hitbox":1,"packedPose":604},{"animation":6,"poseIndex":4,"sourceOffset":58244,"hitbox":1,"packedPose":605},{"animation":6,"poseIndex":5,"sourceOffset":58248,"hitbox":1,"packedPose":606},{"animation":6,"poseIndex":6,"sourceOffset":58252,"hitbox":1,"packedPose":591},{"animation":3,"poseIndex":0,"sourceOffset":58076,"hitbox":1,"packedPose":591}]},"94":{"durations":[5,4,3,3,3,3,3,16,255],"frames":[87,88,89,90,91,92,93,121,79],"loopStart":8,"sourcePoses":[{"animation":94,"poseIndex":0,"sourceOffset":61480,"hitbox":1,"packedPose":599},{"animation":94,"poseIndex":1,"sourceOffset":61484,"hitbox":1,"packedPose":600},{"animation":94,"poseIndex":2,"sourceOffset":61488,"hitbox":1,"packedPose":601},{"animation":94,"poseIndex":3,"sourceOffset":61492,"hitbox":1,"packedPose":602},{"animation":94,"poseIndex":4,"sourceOffset":61496,"hitbox":1,"packedPose":603},{"animation":94,"poseIndex":5,"sourceOffset":61500,"hitbox":1,"packedPose":604},{"animation":94,"poseIndex":6,"sourceOffset":61504,"hitbox":1,"packedPose":605},{"animation":94,"poseIndex":7,"sourceOffset":61508,"hitbox":1,"packedPose":633},{"animation":3,"poseIndex":0,"sourceOffset":58076,"hitbox":1,"packedPose":591}]}},"attackAnimationNote":"The original axe definition selects animation93, with the same source stand/edge94 selection as dagger. IDs are player animation IDs, not projectile frames. Raw/resolved tables preserve original jumps/subanimations and use unchanged Alucard art; local pose selection is ported separately.","initialState":{"flags":209846272,"internalFacingFormula":"(PLAYER.facingLeft+1)&1","setSpeedXArgumentFixed":-131072,"velocityYFixed":-393216,"angleFacing1":1024,"angleFacing0":3072,"angleStorageBits":16,"nonCrouchYAdjustment":-12,"crouchYAdjustment":0,"hitboxWidth":12,"hitboxHeight":12,"allocatedPrimitiveCount":5,"priorityRelativeToPlayer":-2,"headHiddenDrawMode":264,"headVisibleDrawMode":256,"trailHiddenDrawMode":317,"trailVisibleDrawMode":309,"commonDrawRunsOnInit":true,"headAndFirstTrailVisibleOnInit":true,"sourceSwishVolume":127,"playerUseSubweaponTimerTicks":4},"flight":{"step":1,"rotationStepFacing1":-128,"rotationStepFacing0":128,"gravityFixed":17408,"gravityFraction":"34/128","terminalVelocityYFixed":524288,"addsGravityBeforeMoving":true,"cameraLocalYExpiryExclusive":256,"terrainCollisionUsed":false,"feedbackHitFlagsForBounce":2,"otherFeedbackDoesNotSelectBounce":true,"swishAngleMask":1023,"swishVolumeStep":8,"swishVolumeMinimum":0},"bounce":{"step":2,"velocityXFormula":"-(velocityX/2), signed division truncates toward zero","velocityYFixed":-196608,"rotationStepFacing1":192,"rotationStepFacing0":-192,"gravityFixed":9216,"gravityFraction":"18/128","terminalVelocityYFixed":524288,"addsGravityBeforeMoving":true,"cameraLocalYExpiryExclusive":256,"hitboxDisabled":true,"terrainCollisionUsed":false,"sameTickPostHitGeometryUpdated":true},"geometry":{"anglePeriod":4096,"angleStorageBits":16,"angleBasesFacing1":[1376,672,2720,3424],"angleBasesFacing0":[672,1376,3424,2720],"sineCosineLeftShift":4,"radius":21,"productRightShift":16,"cornerXFormula":"x+(((rcos(angle)<<4)*21)>>16)","cornerYFormula":"y-(((rsin(angle)<<4)*21)>>16)","negatesYAfterArithmeticShift":true,"note":"The axe negates the shifted sine product, unlike dagger's negate-before-shift expression. Source s16 corner assignment and s16 angle storage are retained by the native port."},"trails":{"count":4,"ringSize":4,"poseTimerReload":2,"ticksBetweenTrailStarts":3,"colorRowCount":10,"newTrailAge":0,"ageUsesPostIncrement":true,"capturesUpdatedHeadOnBirth":true,"previousPrimitivePointerNeverAdvances":true,"paletteChangesOnOldCapturedGeometry":true,"headDrawMode":256,"trailDrawMode":309,"trailHiddenDrawMode":317,"headSemitransparent":false,"headRgbModulation":false,"trailSemitransparent":true,"trailRgbModulation":true,"effectiveTexturePage":60,"abr":1,"neutralColorChannel":128,"modulationFormula":"min(31,floor(originalRGB5*vertexChannel8/128)); expand RGB5 to RGB8","fourthTableByteIsNotAlpha":true,"notes":"On poseTimer0, select pose ring entry, reset age0 and mark active/capture, advance pose modulo4, reload2. Otherwise decrement poseTimer, giving three update calls between births. Every new trail copies updated head vertices once. Its age increments each active call; rows0..9 assign all four vertices' RGB, then row10 hides/deactivates. Original primitive order is ascending0..4, Canvas paint order is reversed4..0 because addPrim prepends at equal priority."},"pickupPlacements":[],"originalNo3AxeCandlePlacementCount":0,"layoutNote":"No actual normal-NO3 candle requests axe prize15. The existing subweapon pickup metadata includes its profile for former-weapon exchange; this attack milestone does not invent a new axe placement.","code":{"projectile":{"sourceFile":"DRA.BIN","name":"EntitySubwpnThrownAxe","startOffset":545584,"endOffsetExclusive":547376,"bytes":1792,"sha256":"2d0f662a138dbe2fd687264c25fcaf86042d9a337bebaa7b0b86c98fdb3e9e0a","reference":"https://github.com/Xeeynamo/sotn-decomp/blob/0622fcfd37311fd21baf2938c6bd74cea63005ba/src/dra/84B88.c"}},"observedBinaryInstructions":[{"sourceFile":"DRA.BIN","offset":545696,"runtimeAddress":"0x801253a0","word":"0x34050005","littleEndianBytes":"05000534","fact":"axe allocates five primitives"},{"sourceFile":"DRA.BIN","offset":545712,"runtimeAddress":"0x801253b0","word":"0x3c020c82","littleEndianBytes":"820c023c","fact":"original flags0x0C820000"},{"sourceFile":"DRA.BIN","offset":545728,"runtimeAddress":"0x801253c0","word":"0x3c04fffe","littleEndianBytes":"feff043c","fact":"SetSpeedX argument-2 fixed"},{"sourceFile":"DRA.BIN","offset":545732,"runtimeAddress":"0x801253c4","word":"0x24420001","littleEndianBytes":"01004224","fact":"player facing plus1 before mask1"},{"sourceFile":"DRA.BIN","offset":545752,"runtimeAddress":"0x801253d8","word":"0x3c02fffa","littleEndianBytes":"faff023c","fact":"initial vertical velocity-6 fixed"},{"sourceFile":"DRA.BIN","offset":545768,"runtimeAddress":"0x801253e8","word":"0x34020400","littleEndianBytes":"00040234","fact":"internal facing1 initial angle0x400"},{"sourceFile":"DRA.BIN","offset":545772,"runtimeAddress":"0x801253ec","word":"0x34020c00","littleEndianBytes":"000c0234","fact":"internal facing0 initial angle0xC00"},{"sourceFile":"DRA.BIN","offset":545812,"runtimeAddress":"0x80125414","word":"0x2442fff4","littleEndianBytes":"f4ff4224","fact":"noncrouch originY minus12"},{"sourceFile":"DRA.BIN","offset":545868,"runtimeAddress":"0x8012544c","word":"0x3409001c","littleEndianBytes":"1c000934","fact":"base texture page0x1C"},{"sourceFile":"DRA.BIN","offset":545872,"runtimeAddress":"0x80125450","word":"0x34040018","littleEndianBytes":"18000434","fact":"texture U edge24"},{"sourceFile":"DRA.BIN","offset":545876,"runtimeAddress":"0x80125454","word":"0x34030028","littleEndianBytes":"28000334","fact":"texture V edge40"},{"sourceFile":"DRA.BIN","offset":545888,"runtimeAddress":"0x80125460","word":"0x3407fffe","littleEndianBytes":"feff0734","fact":"primitive priority relative to player-2"},{"sourceFile":"DRA.BIN","offset":545892,"runtimeAddress":"0x80125464","word":"0x3406013d","littleEndianBytes":"3d010634","fact":"hidden trail drawMode0x13D without DRAW_UNK02"},{"sourceFile":"DRA.BIN","offset":545896,"runtimeAddress":"0x80125468","word":"0x34050108","littleEndianBytes":"08010534","fact":"hidden head drawMode0x108"},{"sourceFile":"DRA.BIN","offset":546024,"runtimeAddress":"0x801254e8","word":"0x3402000c","littleEndianBytes":"0c000234","fact":"hitbox half-width/height12"},{"sourceFile":"DRA.BIN","offset":546040,"runtimeAddress":"0x801254f8","word":"0x34020004","littleEndianBytes":"04000234","fact":"player use-subweapon timer4"},{"sourceFile":"DRA.BIN","offset":546092,"runtimeAddress":"0x8012552c","word":"0x2405ff80","littleEndianBytes":"80ff0524","fact":"internal facing1 flight angle step-128"},{"sourceFile":"DRA.BIN","offset":546168,"runtimeAddress":"0x80125578","word":"0x24424400","littleEndianBytes":"00444224","fact":"flight gravity17408 or34/128 fixed"},{"sourceFile":"DRA.BIN","offset":546224,"runtimeAddress":"0x801255b0","word":"0x28630101","littleEndianBytes":"01016328","fact":"camera-local Y threshold257 means expireY>256"},{"sourceFile":"DRA.BIN","offset":546248,"runtimeAddress":"0x801255c8","word":"0x3c02fffd","littleEndianBytes":"fdff023c","fact":"feedback bounce vertical speed-3 fixed"},{"sourceFile":"DRA.BIN","offset":546280,"runtimeAddress":"0x801255e8","word":"0x21043","littleEndianBytes":"43100200","fact":"sign-corrected division by2 arithmetic shift"},{"sourceFile":"DRA.BIN","offset":546284,"runtimeAddress":"0x801255ec","word":"0x21023","littleEndianBytes":"23100200","fact":"negate divided horizontal velocity"},{"sourceFile":"DRA.BIN","offset":546308,"runtimeAddress":"0x80125604","word":"0x2405ff40","littleEndianBytes":"40ff0524","fact":"internal facing0 bounce angle step-192"},{"sourceFile":"DRA.BIN","offset":546312,"runtimeAddress":"0x80125608","word":"0x340500c0","littleEndianBytes":"c0000534","fact":"internal facing1 bounce angle step+192"},{"sourceFile":"DRA.BIN","offset":546328,"runtimeAddress":"0x80125618","word":"0x24632400","littleEndianBytes":"00246324","fact":"bounce gravity9216 or18/128 fixed"},{"sourceFile":"DRA.BIN","offset":546452,"runtimeAddress":"0x80125694","word":"0x314a0003","littleEndianBytes":"03004a31","fact":"trail pose ring mask3"}],"drawNote":"Raw original texture is24-by40 with normal UV orientation. Both palette variants use279 STP texels and681 zero-word transparent texels. The head disables blending/modulation and draws the full image source-over. Trail mode0x135 enables per-channel texture modulation and ABR1 additive STP blending; palette selection changes all five primitives every update. Use sourcePaintOrder4..0. Exact source table padding is not alpha. Canvas sampling, clipping and additive background arithmetic remain PSX rendering approximations.","scopeNote":"Original US axe profile, factory/callback/code words, raw textures/palettes, source trail table, integer sine data and player animation tables are statically recovered. Native Java behavior is ported separately. Other weapons, original battle stat/RNG/equipment modifiers, complete factory/primitive contention, sound and exact GPU rasterization remain unfinished. Source axe has no terrain collision probe; no extra wall bounce is invented.","sourceHashes":{"DRA.BIN":"6cb1383b5b94e0bcad041af9856853907226091c184071917a739b91734af66b","BIN/F_GAME.BIN":"0984439a9e480017eb5e3bbad421aaa86e976d65dfb31b68c201cc80ed6fc0ce","SLUS_000.67":"8f3e09b5b607a49aab94a5516ca742a3a1ca93b086d0e91a8067c79faeaeab08"},"references":["https://github.com/Xeeynamo/sotn-decomp/blob/0622fcfd37311fd21baf2938c6bd74cea63005ba/src/dra/84B88.c","https://github.com/Xeeynamo/sotn-decomp/blob/0622fcfd37311fd21baf2938c6bd74cea63005ba/src/dra/7879C.c","https://github.com/Xeeynamo/sotn-decomp/blob/0622fcfd37311fd21baf2938c6bd74cea63005ba/src/dra/5D5BC.c","https://github.com/Xeeynamo/sotn-decomp/blob/0622fcfd37311fd21baf2938c6bd74cea63005ba/src/dra/6E42C.c","https://github.com/Xeeynamo/sotn-decomp/blob/0622fcfd37311fd21baf2938c6bd74cea63005ba/src/config_us.h","https://github.com/Xeeynamo/sotn-decomp/blob/0622fcfd37311fd21baf2938c6bd74cea63005ba/src/dra/4DA70.c","https://github.com/Xeeynamo/sotn-decomp/blob/0622fcfd37311fd21baf2938c6bd74cea63005ba/src/main/psxsdk/libgte/rsin.c","https://github.com/Xeeynamo/sotn-decomp/blob/0622fcfd37311fd21baf2938c6bd74cea63005ba/src/main/psxsdk/libgte/geo_00.c","https://github.com/Xeeynamo/sotn-decomp/blob/0622fcfd37311fd21baf2938c6bd74cea63005ba/src/main/psxsdk/libgte/geo_01.c","https://github.com/Xeeynamo/sotn-decomp/blob/0622fcfd37311fd21baf2938c6bd74cea63005ba/include/game.h","https://github.com/Xeeynamo/sotn-decomp/blob/0622fcfd37311fd21baf2938c6bd74cea63005ba/include/entity.h","https://github.com/Xeeynamo/sotn-decomp/blob/0622fcfd37311fd21baf2938c6bd74cea63005ba/include/primitive.h"]}
