{"format":"sotn-original-us-vibhuti-attack-static-v1","originalDiscVersion":"SLUS-00067","decoderReferenceCommit":"0622fcfd37311fd21baf2938c6bd74cea63005ba","inventoryId":8,"name":"EntitySubwpnThrownVibhuti","subweaponFields":[8,3,4096,2,10,8,188,26,2,1,0,0,0],"subweaponFieldNames":["attack","heartCost","attackElement","chainLimit","nFramesInvincibility","stunFrames","anim","blueprintNum","hitboxState","hitEffect","crashId","unk11","entityRoomIndex"],"definition":{"sourceFile":"DRA.BIN","index":8,"offset":19104,"bytes":20,"rawBytesHex":"080003000010020a0800bc1a0200010000000000"},"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],"sineDefinition":{"sourceFile":"SLUS_000.67","offset":121804,"runtimeAddress":"0x8002d3cc","wordCount":1025,"rawBytesHex":"000006000d00130019001f0026002c00320039003f0045004b00520058005e0065006b00710077007e0084008a00900097009d00a300aa00b000b600bc00c300c900cf00d600dc00e200e800ef00f500fb00010108010e0114011b01210127012d0134013a01400146014d01530159015f0166016c01720178017f0185018b01910198019e01a401aa01b101b701bd01c301ca01d001d601dc01e301e901ef01f501fc01020208020e0215021b02210227022d0234023a02400246024d02530259025f0265026c02720278027e0284028b02910297029d02a302aa02b002b602bc02c202c902cf02d502db02e102e802ee02f402fa02000306030d03130319031f0325032b03320338033e0344034a03500356035d03630369036f0375037b03810388038e0394039a03a003a603ac03b203b903bf03c503cb03d103d703dd03e303e903ef03f603fc03020408040e0414041a04200426042c04320438043e0444044b04510457045d04630469046f0475047b04810487048d04930499049f04a504ab04b104b704bd04c304c904cf04d504db04e104e704ed04f304f904ff0405050b05110517051d05230529052f0534053a05400546054c05520558055e0564056a05700576057c05810587058d05930599059f05a505ab05b105b605bc05c205c805ce05d405da05df05e505eb05f105f705fd05020608060e0614061a061f0625062b06310637063c06420648064e06540659065f0665066b06700676067c06820687068d06930699069e06a406aa06af06b506bb06c106c606cc06d206d706dd06e306e806ee06f406f906ff0605070a07100715071b07210726072c07320737073d07420748074e07530759075e0764076a076f0775077a07800785078b07900796079b07a107a607ac07b207b707bd07c207c807cd07d207d807dd07e307e807ee07f307f907fe07040809080e08140819081f0824082a082f0834083a083f0845084a084f0855085a085f0865086a086f0875087a087f0885088a088f0895089a089f08a508aa08af08b408ba08bf08c408c908cf08d408d908de08e408e908ee08f308f808fe08030908090d09120918091d09220927092c09310937093c09410946094b09500955095a095f0965096a096f09740979097e09830988098d09920997099c09a109a609ab09b009b509ba09bf09c409c909ce09d309d809dd09e209e709ec09f109f609fb09ff09040a090a0e0a130a180a1d0a220a260a2b0a300a350a3a0a3f0a440a480a4d0a520a570a5c0a600a650a6a0a6f0a730a780a7d0a820a860a8b0a900a950a990a9e0aa30aa70aac0ab10ab50aba0abf0ac30ac80acd0ad10ad60adb0adf0ae40ae80aed0af20af60afb0aff0a040b080b0d0b110b160b1b0b1f0b240b280b2d0b310b360b3a0b3e0b430b470b4c0b500b550b590b5e0b620b660b6b0b6f0b740b780b7c0b810b850b890b8e0b920b970b9b0b9f0ba30ba80bac0bb00bb50bb90bbd0bc10bc60bca0bce0bd20bd70bdb0bdf0be30be80bec0bf00bf40bf80bfc0b010c050c090c0d0c110c150c190c1e0c220c260c2a0c2e0c320c360c3a0c3e0c420c460c4a0c4e0c520c560c5a0c5e0c620c660c6a0c6e0c720c760c7a0c7e0c820c860c8a0c8e0c910c950c990c9d0ca10ca50ca90cac0cb00cb40cb80cbc0cc00cc30cc70ccb0ccf0cd20cd60cda0cde0ce10ce50ce90ced0cf00cf40cf80cfb0cff0c030d060d0a0d0e0d110d150d180d1c0d200d230d270d2a0d2e0d320d350d390d3c0d400d430d470d4a0d4e0d510d550d580d5c0d5f0d620d660d690d6d0d700d740d770d7a0d7e0d810d850d880d8b0d8f0d920d950d990d9c0d9f0da20da60da90dac0db00db30db60db90dbc0dc00dc30dc60dc90dcc0dd00dd30dd60dd90ddc0ddf0de30de60de90dec0def0df20df50df80dfb0dfe0d010e040e070e0a0e0d0e100e130e160e190e1c0e1f0e220e250e280e2b0e2e0e310e340e370e3a0e3c0e3f0e420e450e480e4b0e4d0e500e530e560e590e5b0e5e0e610e640e660e690e6c0e6f0e710e740e770e790e7c0e7f0e810e840e870e890e8c0e8f0e910e940e960e990e9b0e9e0ea10ea30ea60ea80eab0ead0eb00eb20eb50eb70eba0ebc0ebf0ec10ec30ec60ec80ecb0ecd0ecf0ed20ed40ed60ed90edb0edd0ee00ee20ee40ee70ee90eeb0eee0ef00ef20ef40ef70ef90efb0efd0eff0e020f040f060f080f0a0f0c0f0e0f110f130f150f170f190f1b0f1d0f1f0f210f230f250f270f290f2b0f2d0f2f0f310f330f350f370f390f3b0f3d0f3f0f410f430f450f460f480f4a0f4c0f4e0f500f510f530f550f570f590f5a0f5c0f5e0f600f610f630f650f670f680f6a0f6c0f6d0f6f0f710f720f740f760f770f790f7a0f7c0f7d0f7f0f810f820f840f850f870f880f8a0f8b0f8d0f8e0f900f910f930f940f950f970f980f9a0f9b0f9c0f9e0f9f0fa10fa20fa30fa50fa60fa70fa80faa0fab0fac0fae0faf0fb00fb10fb30fb40fb50fb60fb70fb80fba0fbb0fbc0fbd0fbe0fbf0fc00fc20fc30fc40fc50fc60fc70fc80fc90fca0fcb0fcc0fcd0fce0fcf0fd00fd10fd20fd30fd40fd50fd50fd60fd70fd80fd90fda0fdb0fdc0fdc0fdd0fde0fdf0fe00fe00fe10fe20fe30fe30fe40fe50fe60fe60fe70fe80fe80fe90fea0fea0feb0fec0fec0fed0fed0fee0fef0fef0ff00ff00ff10ff10ff20ff20ff30ff30ff40ff40ff50ff50ff60ff60ff70ff70ff80ff80ff80ff90ff90ff90ffa0ffa0ffa0ffb0ffb0ffb0ffc0ffc0ffc0ffc0ffd0ffd0ffd0ffd0ffe0ffe0ffe0ffe0ffe0fff0fff0fff0fff0fff0fff0fff0f00100010001000100010001000100010001000100010","sha256":"bab3b71ba7f79dfb2b5cebb71f8382a79606a958d72031bc11b88066c36033bd"},"factoryBlueprint":[12,1,193,0,2,0],"factory":{"blueprintId":26,"sourceFile":"DRA.BIN","offset":53872,"rawBytesHex":"0c01c1000200","childEntityId":12,"amount":1,"nPerCycle":1,"isNonCritical":true,"incrementParamsBySpawnIndex":true,"cycle":0,"kind":2,"origin":0,"delay":0,"rangeStartInclusive":32,"rangeEndInclusive":47,"allocationOrder":"ascending","capturesParentOriginAndFacing":true,"followsLaterPlayerPosition":false,"sourceChildParams":[0],"sourceSubweaponArg2":4096,"sourceSubweaponId":8},"callback":{"entityId":12,"tableOffset":53492,"pointer":"0x80128714"},"code":{"ash":{"sourceFile":"DRA.BIN","name":"EntitySubwpnThrownVibhuti","startOffset":558868,"endOffsetExclusive":560060,"bytes":1192,"sha256":"7a51f3ee71af7e73387cb098538aff966cee074de814fd4c0d1b9e0f800aaff6","reference":"https://github.com/Xeeynamo/sotn-decomp/blob/0622fcfd37311fd21baf2938c6bd74cea63005ba/src/dra/84B88.c"},"collision":{"sourceFile":"DRA.BIN","name":"CheckCollision","startOffset":324700,"endOffsetExclusive":326648,"bytes":1948,"sha256":"0544b2784fa41ca114b6b0ba534a80b149be7108e74105e828f52f801f2f976f","reference":"https://github.com/Xeeynamo/sotn-decomp/blob/0622fcfd37311fd21baf2938c6bd74cea63005ba/src/dra/collider.c"}},"tiles":{"allocatedPrimitiveCount":13,"drawableTileCount":12,"primitiveType":17,"primitiveName":"PRIM_TILE_ALT","terminalPrimitiveType":1,"terminalWidth":0,"terminalIsNotArtwork":true,"initialFlags":142606336,"sourceCameraLocked":true,"keepAliveOffCamera":false,"drawMode":2,"hiddenDrawMode":8,"semitransparencyEnabled":false,"ditherRequested":false,"sourceRgb":[255,255,255],"sourceRgb555":[31,31,31],"priorityRelativeToPlayer":2,"priorityAtDefaultPlayer148":150,"initialWidth":2,"initialHeight":2,"landedWidth":3,"landedHeight":3,"noColorFading":true,"noTexturePaletteOrStpClass":true,"noRotatingTileGeometry":true,"sourcePaintOrder":[12,11,10,9,8,7,6,5,4,3,2,1,0],"rendererBoundary":"Source flat RGB5 white and opaque drawing are preserved. Canvas coverage, clipping, whole-game ordering and the original primitive-camera pipeline remain a local bridge."},"motion":{"initialXUsesFactoryOriginInteger":true,"initialYRelativeToFactoryOrigin":-12,"initialFractionalHalves":0,"initialDelay":1,"randomAngleMask":255,"randomAngleBias":256,"randomSpeedMask":255,"randomSpeedBias":128,"quarterAngleMask":4095,"initRngOrder":["damageHelper","tile0 angle","tile0 speed","remaining tiles angle then speed"],"rngCallsAfterSuccessfulAllocation":25,"rngCallsIfAllocationFails":0,"initialVelocityXFormula":"((((rcos(angle)<<4)*speed)>>9)+32768)*3>>1, then negate if facingLeft","initialVelocityYFormula":"-(((rsin(angle)<<4)*speed)>>9)","initialVelocityYNegationAfterArithmeticShift":true,"initialHorizontalHalfPixelBiasFixed":32768,"initialHorizontalNumerator":3,"initialHorizontalShift":1,"gravityFixed":6144,"verticalVelocityCapFixed":262144,"moveYBeforeGravity":true,"landingUsesPositiveVelocityAfterGravityAndCap":true,"sourceHighHalfReloadPreservesTileFraction":true,"sideProbeFacingOffset":2,"sideProbeMask":2,"sideProbeStopsHorizontalVelocityWithoutCorrection":true,"landingMask":1,"landingCorrectionField":"Collider.unk18","landingAdditionalHeightByTileModulo3":[1,2,3],"landingPreservesYFraction":true,"landingSetsDelayZeroAndFreezesTile":true,"landingSetsSize3By3":true,"sourceEffectsAndUpCorrectionUnsignedByteDomain":256,"scopeBoundary":"VibhutiTerrain reuses the original effect-only mapping for all unsigned-byte types0..255 and ports their source unk18/up correction including recursive floor supports. Invalid non-byte values conservatively block/report. Other correction sensors, dynamic stage/world collision and the complete original CheckCollision/camera pipeline remain unfinished."},"hitbox":{"initialHalfWidth":4,"initialHalfHeight":4,"playerUseSubweaponTimer":4,"selectedTileIndexFormula":"remainingTimer&7","selectedTileIndices":[0,1,2,3,4,5,6,7],"tiles8Through11NeverSelectedForActorHitbox":true,"selectedHiddenTileHalfSize":0,"selectedVisibleTileHalfSize":4,"flyingOffsetY":0,"landedOffsetY":-6,"selectionWritesActorHighHalvesPreservingFraction":true,"selectionReadsVisibilityBeforeHitAndExpiryHide":true,"hitFlagsHideTileFormula":"(remainingTimer+1)&7","hitFlagsClearAfterTileLoop":true,"fullBattleBridgeNotClaimed":true},"lifetime":{"initialTimer":128,"preDecrementBeforeTileUpdates":true,"destroyAtZeroBeforeTileLoop":true,"survivingLiveCallbacksAfterInitialization":127,"destroyOnLiveCallback":128,"normalCallbacksIncludingInitializationAndDestroy":129,"expiryHideFormula":"remainingTimer-1==tileIndex","expiryByTile":[{"tileIndex":0,"hideAtRemainingTimer":1},{"tileIndex":1,"hideAtRemainingTimer":2},{"tileIndex":2,"hideAtRemainingTimer":3},{"tileIndex":3,"hideAtRemainingTimer":4},{"tileIndex":4,"hideAtRemainingTimer":5},{"tileIndex":5,"hideAtRemainingTimer":6},{"tileIndex":6,"hideAtRemainingTimer":7},{"tileIndex":7,"hideAtRemainingTimer":8},{"tileIndex":8,"hideAtRemainingTimer":9},{"tileIndex":9,"hideAtRemainingTimer":10},{"tileIndex":10,"hideAtRemainingTimer":11},{"tileIndex":11,"hideAtRemainingTimer":12}],"allTwelveTilesHideWithoutColorFade":true,"sourceGenericOffCameraCleanupApplies":true},"observedBinaryInstructions":[{"sourceFile":"DRA.BIN","offset":558940,"runtimeAddress":"0x8012875c","word":"0x34040011","littleEndianBytes":"11000434","fact":"Allocate TILE_ALT17"},{"sourceFile":"DRA.BIN","offset":558944,"runtimeAddress":"0x80128760","word":"0xc03b6d6","littleEndianBytes":"d6b6030c","fact":"Primitive allocation before stats or velocity random calls"},{"sourceFile":"DRA.BIN","offset":558948,"runtimeAddress":"0x80128764","word":"0x3405000d","littleEndianBytes":"0d000534","fact":"Thirteen primitives including terminal control"},{"sourceFile":"DRA.BIN","offset":559004,"runtimeAddress":"0x8012879c","word":"0x3c020880","littleEndianBytes":"8008023c","fact":"Camera locked and primitive flags without keepAlive"},{"sourceFile":"DRA.BIN","offset":559008,"runtimeAddress":"0x801287a0","word":"0xc0468a4","littleEndianBytes":"a468040c","fact":"Original stats helper consumes first random draw"},{"sourceFile":"DRA.BIN","offset":559016,"runtimeAddress":"0x801287a8","word":"0x34140002","littleEndianBytes":"02001434","fact":"Opaque untextured drawMode2"},{"sourceFile":"DRA.BIN","offset":559032,"runtimeAddress":"0x801287b8","word":"0x34020004","littleEndianBytes":"04000234","fact":"Initial hitbox halfsize4"},{"sourceFile":"DRA.BIN","offset":559044,"runtimeAddress":"0x801287c4","word":"0x34020080","littleEndianBytes":"80000234","fact":"Original initial countdown128"},{"sourceFile":"DRA.BIN","offset":559048,"runtimeAddress":"0x801287c8","word":"0xa662007c","littleEndianBytes":"7c0062a6","fact":"Store countdown as halfword"},{"sourceFile":"DRA.BIN","offset":559084,"runtimeAddress":"0x801287ec","word":"0x2495fff8","littleEndianBytes":"f8ff9524","fact":"Initial tile Y high half actorY minus8"},{"sourceFile":"DRA.BIN","offset":559104,"runtimeAddress":"0x80128800","word":"0x24420002","littleEndianBytes":"02004224","fact":"Primitive priority player plus2"},{"sourceFile":"DRA.BIN","offset":559128,"runtimeAddress":"0x80128818","word":"0xc005839","littleEndianBytes":"3958000c","fact":"First random call per live tile"},{"sourceFile":"DRA.BIN","offset":559136,"runtimeAddress":"0x80128820","word":"0x305000ff","littleEndianBytes":"ff005030","fact":"Random angle lowbyte"},{"sourceFile":"DRA.BIN","offset":559140,"runtimeAddress":"0x80128824","word":"0xc005839","littleEndianBytes":"3958000c","fact":"Second random call per live tile"},{"sourceFile":"DRA.BIN","offset":559144,"runtimeAddress":"0x80128828","word":"0x26100100","littleEndianBytes":"00011026","fact":"Angle offset256"},{"sourceFile":"DRA.BIN","offset":559152,"runtimeAddress":"0x80128830","word":"0x305100ff","littleEndianBytes":"ff005130","fact":"Random speed lowbyte"},{"sourceFile":"DRA.BIN","offset":559160,"runtimeAddress":"0x80128838","word":"0x26310080","littleEndianBytes":"80003126","fact":"Speed offset128"},{"sourceFile":"DRA.BIN","offset":559164,"runtimeAddress":"0x8012883c","word":"0x21100","littleEndianBytes":"00110200","fact":"Cosine times16"},{"sourceFile":"DRA.BIN","offset":559184,"runtimeAddress":"0x80128850","word":"0x21243","littleEndianBytes":"43120200","fact":"X product arithmetic shift9"},{"sourceFile":"DRA.BIN","offset":559188,"runtimeAddress":"0x80128854","word":"0x431021","littleEndianBytes":"21104300","fact":"X adds fixed halfpixel32768"},{"sourceFile":"DRA.BIN","offset":559224,"runtimeAddress":"0x80128878","word":"0x21843","littleEndianBytes":"43180200","fact":"X times3 then arithmetic shift1 before facing inversion"},{"sourceFile":"DRA.BIN","offset":559236,"runtimeAddress":"0x80128884","word":"0x21243","littleEndianBytes":"43120200","fact":"Initial Y product arithmetic shift9"},{"sourceFile":"DRA.BIN","offset":559240,"runtimeAddress":"0x80128888","word":"0x21023","littleEndianBytes":"23100200","fact":"Initial Y negates AFTER arithmetic shift9"},{"sourceFile":"DRA.BIN","offset":559264,"runtimeAddress":"0x801288a0","word":"0xae420018","littleEndianBytes":"180042ae","fact":"Facing left negates final X velocity"},{"sourceFile":"DRA.BIN","offset":559276,"runtimeAddress":"0x801288ac","word":"0xa6420024","littleEndianBytes":"240042a6","fact":"Initial tile delay1"},{"sourceFile":"DRA.BIN","offset":559280,"runtimeAddress":"0x801288b0","word":"0x2463fffc","littleEndianBytes":"fcff6324","fact":"Tile Y additionally minus4 total actorY minus12"},{"sourceFile":"DRA.BIN","offset":559296,"runtimeAddress":"0x801288c0","word":"0x340200ff","littleEndianBytes":"ff000234","fact":"Original white RGB255"},{"sourceFile":"DRA.BIN","offset":559312,"runtimeAddress":"0x801288d0","word":"0xa254000c","littleEndianBytes":"0c0054a2","fact":"Airborne tile width2"},{"sourceFile":"DRA.BIN","offset":559316,"runtimeAddress":"0x801288d4","word":"0xa254000d","littleEndianBytes":"0d0054a2","fact":"Airborne tile height2"},{"sourceFile":"DRA.BIN","offset":559348,"runtimeAddress":"0x801288f4","word":"0x34020004","littleEndianBytes":"04000234","fact":"Source useSubweapon timer4"},{"sourceFile":"DRA.BIN","offset":559396,"runtimeAddress":"0x80128924","word":"0x2411fffe","littleEndianBytes":"feff1124","fact":"Left side probe offset minus2"},{"sourceFile":"DRA.BIN","offset":559408,"runtimeAddress":"0x80128930","word":"0x2442ffff","littleEndianBytes":"ffff4224","fact":"Decrement lifetime before primitive loop"},{"sourceFile":"DRA.BIN","offset":559412,"runtimeAddress":"0x80128934","word":"0xa662007c","littleEndianBytes":"7c0062a6","fact":"Store decremented lifetime"},{"sourceFile":"DRA.BIN","offset":559428,"runtimeAddress":"0x80128944","word":"0xc041964","littleEndianBytes":"6419040c","fact":"Destroy on zero before any tile updates"},{"sourceFile":"DRA.BIN","offset":559540,"runtimeAddress":"0x801289b4","word":"0xa6420012","littleEndianBytes":"120042a6","fact":"Rebuild tile X high half retaining low fraction"},{"sourceFile":"DRA.BIN","offset":559548,"runtimeAddress":"0x801289bc","word":"0xa6430016","littleEndianBytes":"160043a6","fact":"Rebuild tile Y high half retaining low fraction"},{"sourceFile":"DRA.BIN","offset":559584,"runtimeAddress":"0x801289e0","word":"0x431021","littleEndianBytes":"21104300","fact":"X motion before side query"},{"sourceFile":"DRA.BIN","offset":559600,"runtimeAddress":"0x801289f0","word":"0xc03bd17","littleEndianBytes":"17bd030c","fact":"Side query uses actor facing offset"},{"sourceFile":"DRA.BIN","offset":559616,"runtimeAddress":"0x80128a00","word":"0x30420002","littleEndianBytes":"02004230","fact":"Stop X only on EFFECT_SIDE bit2"},{"sourceFile":"DRA.BIN","offset":559628,"runtimeAddress":"0x80128a0c","word":"0xae400018","littleEndianBytes":"180040ae","fact":"Clear X velocity on side collision without positional correction"},{"sourceFile":"DRA.BIN","offset":559644,"runtimeAddress":"0x80128a1c","word":"0x441021","littleEndianBytes":"21104400","fact":"Y moves using old velocity"},{"sourceFile":"DRA.BIN","offset":559648,"runtimeAddress":"0x80128a20","word":"0x24631800","littleEndianBytes":"00186324","fact":"Gravity increment6144 fixed twelve128ths"},{"sourceFile":"DRA.BIN","offset":559656,"runtimeAddress":"0x80128a28","word":"0x3c020004","littleEndianBytes":"0400023c","fact":"Terminal velocity fixed4"},{"sourceFile":"DRA.BIN","offset":559676,"runtimeAddress":"0x80128a3c","word":"0xae42001c","littleEndianBytes":"1c0042ae","fact":"Clamp updated Y velocity to fixed4"},{"sourceFile":"DRA.BIN","offset":559688,"runtimeAddress":"0x80128a48","word":"0x1840001c","littleEndianBytes":"1c004018","fact":"Skip floor query unless UPDATED velocity positive"},{"sourceFile":"DRA.BIN","offset":559704,"runtimeAddress":"0x80128a58","word":"0xc03bd17","littleEndianBytes":"17bd030c","fact":"Floor query after movement and updated velocity"},{"sourceFile":"DRA.BIN","offset":559720,"runtimeAddress":"0x80128a68","word":"0x30420001","littleEndianBytes":"01004230","fact":"Landing tests SOLID bit1"},{"sourceFile":"DRA.BIN","offset":559744,"runtimeAddress":"0x80128a80","word":"0xa6400024","littleEndianBytes":"240040a6","fact":"Landing clears delay"},{"sourceFile":"DRA.BIN","offset":559748,"runtimeAddress":"0x80128a84","word":"0x97a30028","littleEndianBytes":"2800a397","fact":"Read signed-correction lowhalf for halfword landing addition"},{"sourceFile":"DRA.BIN","offset":559752,"runtimeAddress":"0x80128a88","word":"0x34020003","littleEndianBytes":"03000234","fact":"Settled tile size3"},{"sourceFile":"DRA.BIN","offset":559768,"runtimeAddress":"0x80128a98","word":"0x832021","littleEndianBytes":"21208300","fact":"Add original Collider.unk18 to tile Y high half"},{"sourceFile":"DRA.BIN","offset":559796,"runtimeAddress":"0x80128ab4","word":"0x822023","littleEndianBytes":"23208200","fact":"Subtract index modulo3 after minus1"},{"sourceFile":"DRA.BIN","offset":559800,"runtimeAddress":"0x80128ab8","word":"0xa6440016","littleEndianBytes":"160044a6","fact":"Store landing Y high half retaining fraction"},{"sourceFile":"DRA.BIN","offset":559812,"runtimeAddress":"0x80128ac4","word":"0x30420007","littleEndianBytes":"07004230","fact":"Damage anchor selects countdown AND7 only first8 tiles"},{"sourceFile":"DRA.BIN","offset":559832,"runtimeAddress":"0x80128ad8","word":"0xa6620002","littleEndianBytes":"020062a6","fact":"Copy selected tile X high half to actor retaining fraction"},{"sourceFile":"DRA.BIN","offset":559844,"runtimeAddress":"0x80128ae4","word":"0xa6620006","littleEndianBytes":"060062a6","fact":"Copy selected tile Y high half to actor retaining fraction"},{"sourceFile":"DRA.BIN","offset":559856,"runtimeAddress":"0x80128af0","word":"0x30420008","littleEndianBytes":"08004230","fact":"Hidden selected tile disables hitbox width/height"},{"sourceFile":"DRA.BIN","offset":559868,"runtimeAddress":"0x80128afc","word":"0xa2600047","littleEndianBytes":"470060a2","fact":"Clear hitbox height for hidden selected tile"},{"sourceFile":"DRA.BIN","offset":559880,"runtimeAddress":"0x80128b08","word":"0xa2620047","littleEndianBytes":"470062a2","fact":"Visible selected tile has halfsize4"},{"sourceFile":"DRA.BIN","offset":559900,"runtimeAddress":"0x80128b1c","word":"0x2402fffa","littleEndianBytes":"faff0224","fact":"Settled damage offsetY minus6"},{"sourceFile":"DRA.BIN","offset":559908,"runtimeAddress":"0x80128b24","word":"0xa6600012","littleEndianBytes":"120060a6","fact":"Airborne damage offsetY zero"},{"sourceFile":"DRA.BIN","offset":559940,"runtimeAddress":"0x80128b44","word":"0x24420001","littleEndianBytes":"01004224","fact":"Prior damage tile selected by countdown plus1"},{"sourceFile":"DRA.BIN","offset":559944,"runtimeAddress":"0x80128b48","word":"0x30420007","littleEndianBytes":"07004230","fact":"Prior tile selector AND7"},{"sourceFile":"DRA.BIN","offset":559956,"runtimeAddress":"0x80128b54","word":"0xa6420032","littleEndianBytes":"320042a6","fact":"Nonzero source hitFlags hides previous damage tile AFTER anchor update"},{"sourceFile":"DRA.BIN","offset":559968,"runtimeAddress":"0x80128b60","word":"0x2442ffff","littleEndianBytes":"ffff4224","fact":"Final hide selector countdown minus1"},{"sourceFile":"DRA.BIN","offset":559980,"runtimeAddress":"0x80128b6c","word":"0xa6420032","littleEndianBytes":"320042a6","fact":"Last twelve callbacks hide corresponding tile"},{"sourceFile":"DRA.BIN","offset":559992,"runtimeAddress":"0x80128b78","word":"0xa6420008","littleEndianBytes":"080042a6","fact":"Commit tile integer X render coordinate"},{"sourceFile":"DRA.BIN","offset":559996,"runtimeAddress":"0x80128b7c","word":"0xa643000a","littleEndianBytes":"0a0043a6","fact":"Commit tile integer Y render coordinate"},{"sourceFile":"DRA.BIN","offset":560012,"runtimeAddress":"0x80128b8c","word":"0xa2600048","littleEndianBytes":"480060a2","fact":"Clear consumed hitFlags after full primitive loop"},{"sourceFile":"DRA.BIN","offset":560052,"runtimeAddress":"0x80128bb4","word":"0x3e00008","littleEndianBytes":"0800e003","fact":"Vibhuti return before separate brightness helper"}],"independentBinaryEvidence":"../references/vibhuti-attack-evidence.json","attackAnimations":{"188":{"id":188,"pointer":"0x800afc10","pointerTableOffset":66728,"dataOffset":64528,"poses":[{"duration":6,"frame":121,"hitbox":1,"packedPose":633,"sourceOffset":64528},{"duration":6,"frame":122,"hitbox":1,"packedPose":634,"sourceOffset":64532},{"duration":16,"frame":123,"hitbox":1,"packedPose":635,"sourceOffset":64536},{"duration":-1,"command":"end","sourceOffset":64540}]},"189":{"id":189,"pointer":"0x800afc20","pointerTableOffset":66732,"dataOffset":64544,"poses":[{"duration":6,"frame":121,"hitbox":1,"packedPose":633,"sourceOffset":64544},{"duration":6,"frame":122,"hitbox":1,"packedPose":634,"sourceOffset":64548},{"duration":16,"frame":121,"hitbox":1,"packedPose":633,"sourceOffset":64552},{"duration":-1,"command":"end","sourceOffset":64556}]}},"resolvedAnimations":{"188":{"durations":[6,6,16],"frames":[121,122,123],"loopStart":-1,"sourcePoses":[{"animation":188,"poseIndex":0,"sourceOffset":64528,"hitbox":1,"packedPose":633},{"animation":188,"poseIndex":1,"sourceOffset":64532,"hitbox":1,"packedPose":634},{"animation":188,"poseIndex":2,"sourceOffset":64536,"hitbox":1,"packedPose":635}]},"189":{"durations":[6,6,16],"frames":[121,122,121],"loopStart":-1,"sourcePoses":[{"animation":189,"poseIndex":0,"sourceOffset":64544,"hitbox":1,"packedPose":633},{"animation":189,"poseIndex":1,"sourceOffset":64548,"hitbox":1,"packedPose":634},{"animation":189,"poseIndex":2,"sourceOffset":64552,"hitbox":1,"packedPose":633}]}},"playerAnimations188And189Ticks":28,"existingHolyWaterPlayerDataUnchanged":true,"originalNo3VibhutiCandlePlacementCount":0,"pickupPlacements":[],"noPngsGenerated":true,"allPrimitivesUntextured":true,"rngProofMetadata":"holy-water-attack.json#rng","noCpuOrFirmwareInstructionsExecuted":true,"sourceHashes":{"DRA.BIN":"6cb1383b5b94e0bcad041af9856853907226091c184071917a739b91734af66b","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/collider.c","https://github.com/Xeeynamo/sotn-decomp/blob/0622fcfd37311fd21baf2938c6bd74cea63005ba/src/dra/7879C.c","https://github.com/Xeeynamo/sotn-decomp/blob/0622fcfd37311fd21baf2938c6bd74cea63005ba/src/dra/4DA70.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/include/primitive.h"],"scopeNote":"Original US inventory8 row, quarter-sine words, BP26/callback, opaque untextured ash tiles, initial velocity/RNG order, gravity/landing correction, first-eight hitbox multiplex, visibility and lifetime contracts are recovered statically. Java ports selected behavior separately without CPU/GTE/firmware instruction execution. Original global factory/allocation/RNG phase, camera/player/compositor pipeline, full correction sensors and dynamic world collision, battle/equipment scaling, audio and campaign remain unfinished. No Vibhuti pickup placement or bitmap is invented; all158 previous generated files remain byte-identical."}
