This page documents information about Zook Man ZX4
. Many of the tricks demonstrated here are near impossible in real time and documented for the purposes of creating Tool-assisted Speedruns.
Syntax Error on line 324 1. !!! Movement 2. 3. !! Horizontal Move Speeds 4. * 3 pixels/frame - Ground dash, Flame Charge 5. * 2 pixels/frame - Walking, jumping 6. * 1 pixel/frame - During hitstun from taking damage 7. 8. !! Vertical jump heights 9. 10. Your jump height depends on how long you hold the jump button, nothing unusual. There are however two oddities. 11. * 9 frames or less all result in the same jump height. 12. * There is a big gap in jump height between 14 frames and more, giving you 20 extra pixels. 13. ||Frames held||Jump height 14. |<10|25 15. |10|28 16. |11|32 17. |12|36 18. |13|40 19. |14|44 20. |>14|64 21. 22. !! Landing lag 23. An effect where the player is unable to move for a frame upon landing. This is due to the fact the game moved the camera too far, and did not shift the player out of the floor on that frame, stopping movement when the feet are momentarily inside the floor. 24. 25. To avoid landing lag: 26. * Land while the camera isn't moving vertically, either by being near the top or the bottom of the segment. 27. * Land toward the end of the current platform you're aiming for 28. * Land on a slope 29. * Land on an object platform, of the sort seen in intro and volcano stages. 30. 31. !! Ground dash 32. The leg upgrade is needed, found in Stage 7. After tapping left or right, a Dash Ready timer lasts for 20 frames, and a second tap in the same direction will trigger a dash. The dash will last 40 frames at a time. 33. 34. ! Ladder dash 35. After starting Dash Ready from the ground, get to a ladder, catch on to it, and then press and hold left or right. You may need to hold up or down for a few frames so the dash keeps going. This dash will have the character speed across in mid-air, and can also jump out of this dash in mid-air. 36. 37. Variant: on ladders going down, you can start a dash on the ground above it, and hold down as you pass it. After the first 20 frames of fixed downwards ladder movement you will shoot off the ladder to the side at dash speed. Turning around will stop the mid-air dash, which can be used to get off ladders quicker than jumping off them. 38. 39. !! Turnaround 40. The important pixel for vertical movement and ladders is slightly behind the character's apparent center. Turning around in the air requires two frames of holding left or right. 41. 42. ! Early ladder catch 43. While approaching a ladder from the side, turn around. Up or down can then let you grab on the ladder a few frames early. 44. 45. ! Early ledge land 46. Once in a while, you just barely miss landing on the next ledge. Turning around to face away from it might be just enough to make the landing. It is also sometimes possible to use a lower jump but land sooner, leading to a longer dash distance compared to jumping for a longer time. 47. 48. ! Ledge clip 49. Sometimes, you want to fall past the floor instead. Turning to face toward it will let you fall past it from a few pixels closer than facing away from it. 50. 51. Additionally, some parts of the terrain has its floor below stop at the ledge, rather than slightly past it. It's these sorts of floors that allows the player to fall through, by turning once more, so that the important pixel, always slightly behind the player's center, is now inside the wall you're falling past. If the floor does not extend there, you will fall through. 52. 53. !! Camera 54. Important. It's what loads segments and allows any sort of progress. 55. 56. ! Ghost Fall 57. Get the player down far enough so that the feet is touching or below the camera's bottom edge, just as you load the next segment. This disables vertical terrain collision, so the player will fall endlessly, and if the next segment travels downward, allowing the player to skip by most obstacles on the way. 58. 59. Without terrain, there are rather few ways to end a Ghost Fall: 60. * Lose a life 61. * Land on an object platform 62. * Use a Flame Charge 63. 64. !!! Weapons 65. 66. !! Table 67. 68. ||Stage||Upgrade||Reg weapon||Reg DMG||Reg ammo||Chrg weapon||Chrg DMG||Chrg Ammo 69. | | |Buster|1|-|Charge buster|2|- 70. | | | | | | Upgraded buster|3|- 71. |Factory| |Fireblast|3|1|Firedash|5|2 72. |Sky| |Whirlwind|4|2|Double whirlwind|4|3 73. |Volcano| |Drill|4|2|Meteor shower|10|4 74. |Ocean| |Bubbles|3|1|Bubble shield| |3 75. |Space|Helmet|Missile|4|2|Large missile|6|3 76. |Forest|Armor|3 stars|3|1|2 boomerangs|6|2 77. |Castle|Leg|Bouncing spikeball|4|2|2 circling spikeballs|8|4 78. |Broadcast|Arm|Laser|4|2|Large laser|10|4 79. 80. The time to charge any weapon is 60 frames, except upgraded Buster, which is 140 frames. 81. 82. There is no boss weakness. All bosses and enemies take the same damage from all weapons. 83. 84. All weapons which do 3 damage take 1 ammo. All weapons which do 4 damage takes 2 ammo. The full ammo bar is 11 units. 85. 86. Helmet upgrade gives the option to exit a stage in the Start Menu. Armor upgrade ''does nothing'', all hits do 1 damage with or without it. Leg upgrade unlocks dash. Arm upgrade unlocks charged boss weapons and upgraded buster. 87. 88. ! Charged fire (fire dash) 89. 90. Moves you at 3 pixels per frame, like a dash, but makes you (mostly) invulnerable and can be performed in the air. For this reason it's faster to dire dash across gaps than jumping, which is 2 pixels per frame. 91. 92. If you were jumping and going upwards before the fire dash was started, the jump will continue once the fire dash is over. Additionally, your ground state is set, meaning you can make another jump once the fire dash is completed. 93. 94. ! Bubble shield 95. 96. The shield has 6 hitpoints. Every time you take a hit a 48 frame countdown is started, during which the shild can't take another hit. After the countdown ends the shield loses one hitpoint. When the shield has 0 hitpoints it disappears. 97. 98. The delay between hits and the shield's disappearance makes it possible to lose the shield without taking damage. 99. 100. While the shield is active you can move around like normal but you cannot attack or change weapons. (Unless you use a glitch such as ''Charge Swap''.) 101. 102. The shield does not protect against spikes, which still do 1 damage. 103. 104. ! Charged laser 105. 106. Makes player stationary and invulnerable while it is fired and does a lot of other stuff to player state described below. 107. 108. ! Boss damage 109. 110. Bosses have 11 full hitpoints. Every hitpoint has 5 subhitpoints. Damage is applied to the subhitpoints. When they reach 0 or below, full hitpoints are reduced by 1 and subhitpoints are increased by (not set to) 5. Because subhitpoints are increased rather than reset, it is possible to buffer damage from a powerful weapon (such as charged laser) and still have the next hit deal a full damagepoint. 111. 112. When dealing damage to a boss, no more than one full hitpoint can be reduced per attack, no matter how low subhitpoints are. The minimum number of hits needed to defeat a boss is always 11. 113. 114. Boss invincibility between hits is 96 frames. 115. 116. 117. !!! Hero state 118. It seems the hero's state is determined by the value stored at 0x15f0 in IWRAM. 119. A 0 means he's free to be controlled by the player. 120. Any event that temporarily disables player control (like taking damage, entering an ability capsule or touching a boss room door) changes this to some other value. 121. 122. !! Glitched charged shot 123. If you have a charged shot ready, you can release the shot button to fire it at the same frame the action lock is released. You can then press it again on the next frame and you won't lose the charge. 124. 125. Note that while the charge status is preserved, the charge counter is not. It is not possible to charge a level 3 buster shot any quicker off a glitched charge. 126. 127. !! Charge Swap 128. Pause at the same frame you release a charge. Select a different weapon, and unpause. The original weapon will fire, although the effects of changing the original shot to another weapon's animation functions do unexpected effects. 129. 130. Note that pausing is disabled for specifically the basic weapon when it is charged. The Glitched charged shot is required to swap from the basic weapon to another. 131. 132. [module:SetTableAttributes|pattern=@^Normal@|style=background:#D0D0D0] 133. [module:SetTableAttributes|pattern=@^Game reset@|style=background:#FFFF00] 134. [module:SetTableAttributes|pattern=@^Sticky Meteors@|style=background:#00FF00] 135. [module:SetTableAttributes|pattern=@^Fragile Barrier@|style=background:#00FF00] 136. [module:SetTableAttributes|pattern=@^Gone Barrier@|style=background:#00FF00] 137. [module:SetTableAttributes|pattern=@^MurderBarrier@|style=background:#00FF00] 138. [module:SetTableAttributes|pattern=@^Frozen Laser@|style=background:#00FF00] 139. 140. || ||Basic||Flame||Whirlwind||Dirt spike||Bubble||Missile||Star||Spike ball||Laser| 141. ||Basic Charge1|Normal| | | | | | | | | 142. ||Basic Charge2|Normal| | | | | | | | | 143. ||Flame| |Normal| | | | | | | | 144. ||Whirlwind| | |Normal| | | | | | | 145. ||Dirt spike| |Sticky Meteors|Game reset|Normal| | | | | | 146. ||Bubble|Normal|Fragile Barrier|Fragile Barrier|Gone Barrier|Normal|Gone Barrier|Fragile Barrier|Gone Barrier|MurderBarrier| 147. ||Missile| | | | | |Normal| | | | 148. ||Star| | | | | | |Normal| | | 149. ||Spike ball| | | | | | | |Normal| | 150. ||Laser| | | | | | | |Frozen Laser|Normal| 151. 152. ! Game reset 153. Actually calls the BIOS to do a full reset of the game, complete with the GameBoy Advance logo showing up. If it does something else, the complete reset generally makes these other effects frivolous. 154. 155. ! Sticky Meteors 156. These meteors will exist indefinitely, even after landing, and even after scrolling them offscreen. Phantom duplicates of these meteors will show up if scrolled off-screen far enough, but these don't do anything. There are no known speed uses as of this time. 157. 158. ! Fragile Barrier 159. The barrier gains a hitbox, will deal 1 damage to an enemy once, then disappears after hitting an enemy. The barrier still has the full 6 HP, and will protect you even after the barrier sprite vanishes. The advantage is that, once the barrier sprite is gone, weapon swaps are fully available. Hitbox size depends on target weapon. 160. 161. ! Gone Barrier 162. After a rather short time, the barrier just disappears. It still has the full 6 HP, and will protect you even after the barrier sprite vanishes. Without the sprite, weapon swaps are fully available. 163. 164. ! MurderBarrier 165. A strange barrier that, upon contact with enemies, will instantly erase these enemies. It's not a destruction, as the enemy will not fly apart in shrapnel, will not drop items, and also prevents that specific enemy from respawning when coming back to the area. This also erases the weakpoint of the miniboss, and even bosses will be instantly erased, though this also denies triggers that would advance the game. 166. 167. Another drawback is 15DC is decremented every time MurderBarrier erases an enemy. If this value is not exactly zero, you can't switch weapons or pause the game. This, and the fact we can't complete the stage by erasing a boss, means there are no known speed uses as of this time. 168. 169. ! Frozen Laser 170. The massive laser does not complete its animation. It will remain solid in place, and never releases the player (though Zook can regain control through other reasons, such as clearing dialog). The player is also immune to objects, as part of the laser attack. 171. 172. For runs that ends input early, this can be used as a finisher, as the projectile remains indefinitely and the boss will eventually kill itself on this hitbox block. Other than that one spot, there are no other known speed uses. 173. 174. !! Action lock release 175. Sometimes two events that lock the controls can overlap, forcing one of them to override the other. 176. This can happen: 177. 178. 1. with the charged laser: The hero will move for 1 frame after firing it, allowing him to enter capsules (laser ends sooner, forcefully unlocking control) or touch spikes (damage animation ends sooner, unlocking control and retaining invulnerability to objects) 179. 180. 2. being damaged during boss dialogue: this is usually only possible after bypassing the boss door action lock with a charged laser. By standing very close to a boss and then jumping right when his dialogue starts, the hero will be stuck in a jump animation loop, with his hit box changing size as well. This will make he touch the boss' hitbox and take damage and the damage animation will restore control while the dialogue is still on screen. 181. 182. !!! Tricks 183. 184. !! Miniboss Skip 185. On the same frame the miniboss would load, destroy an enemy. The game assumes that what you destroyed is the miniboss (as there shouldn't be other enemies when fighting a miniboss), and will shortly load the next segment. 186. 187. * ''Intro - Maybe.'' There is a flying enemy, but it takes long enough that destroying the miniboss is faster. An alternative is to game over at the miniboss, then kill an enemy with the right position ([=userfiles/info/38764902600522359|.bk2]) to skip the miniboss, but the game over process takes too long as well. 188. * ''Stage 1 - Maybe.'' There is an enemy off to the left of the miniboss. Close enough to be around until the miniboss segment. It can be reached with the charged star weapon, but routing suggests Stage 1 should be picked much earlier than Stage 6. Other weapons we'd have in the route by then will not reach. 189. * __Stage 2 - Yes.__ There are flying enemies very close to the miniboss. Let them come in, flame charge through them on time with the miniboss segment. 190. * __Stage 3 - Yes.__ There is an errant enemy spawn point in the save platform segment. Around the "doorway" of the miniboss room, moving left will spawn this enemy. Shoot it while triggering the miniboss. 191. * Stage 4 - Not likely. The nearest enemy is a submarine, who doesn't travel horizontally and is too far away. Any that would travel to the right are all very far away. 192. * __Stage 5 - Yes.__ Several enemies spawn very close to the miniboss room. While in the miniboss room, but before the miniboss spawns, travel left, and a missile may spawn. Use something damaging enough on this missile. 193. * ''Stage 6 - Maybe.'' An enemy spawns at the top of Segment 1, but by the time you'd get there, Segment 2 will have already loaded, and it doesn't spawn that enemy there. The Segment Skip will be needed to bypass the load trigger and spawn the enemy, but the setup for Segment Skip takes too long. 194. * __Stage 7 - Yes.__ A flying enemy from the breakable pillar can be lured to the miniboss, and this process is fast enough to save several frames. 195. * Stage 8 - Not likely. No enemy loads in the short segment before the miniboss, and none are in range from the segment before that. 196. 197. 198. !! Boss Skip 199. Same concept as the Miniboss Skip -- Destroy a regular enemy when the boss spawns. However, most bosses are behind doors, and this erases all active enemies immediately. 200. 201. This trick requires that enemies can spawn in the immediate segment the door exists in, which only happens in the final stage. 202. 203. * Break the action lock of the door animation with a charged laser so you regain control. 204. * Move left for one frame when an enemy is within spawning range of the left border. 205. * Destroy that enemy, most likely with charged star, after the boss spawns. 206. 207. In the end stages, the 2nd, 6th, 7th, and 8th bosses can be skipped this way. 208. 209. Of note, the intro boss can also be skipped. Without a door, enemies will not disappear. Luring a flying enemy to the intro boss will allow a skip in a way similar to the Miniboss Skip. 210. 211. !! Segment Skip 212. Leave the stage after encountering a miniboss, before destroying it. The next enemy you destroy will be treated as though you won against a miniboss, and the current segment is skipped, preserving camera's position in the new segment relative to the top-left corner. An example in Stage 6 means one can skip the first segment, appear at the top of the second segment which requires a lot of climbing, then almost instantly reach the third segment from there. 213. 214. The two known ways to leave a stage is to either get the head upgrade and use that, or get a game over against the miniboss. However, the time it takes to get to the miniboss from the start of the stage generally takes a while, and while the game over can be done starting from the save platform, there's no known way to fall to your death in the six stages where a save platform is present. As the known set-ups for the skip takes longer than the skip itself, there's no use for this skip as of this time. 215. 216. !! Frame Rules 217. * 2 - Player invincibility time after being hit 218. * 4 - Animations 219. * 8 - Boss dialog 220. * 32 - Item drop cycle 221. 222. The frame rule is an effect where an event will last a variable amount of time simply depending on when it is triggered. There are no significant factors other than the game's internal frame counter. Clearing the boss dialog might end up taking exactly the same amount of time even though you got there 7 frames earlier, but save just one more frame, and that one frame is worth eight, as the frame rule is met. 223. 224. Note that lag will delay the internal frame counter, so if one non-lag frame needed to be saved to beat the frame rule, but the action to save that non-lag frame causes 2 frames of lag, the frames saved will be the entire size of the frame rule, minus the lag gained. Also note that removing lag without losing pace are savings that will stick. 225. 226. !!! Objects 227. 228. There's an array of 60 structures starting at 0x1DE4 in IWRAM, they represent all the objects in the game that are on screen. Including the HUD. These object structures are 0x74 bytes each. 229. 230. 0-9: Zook and HUD %%% 231. 10-29: Projectiles %%% 232. 30-59: Enemies and collectibles. (Also minibosses and bosses are stored here) 233. 234. The structure can be broken down as follows: 235. ||Offset||Name||Size (bytes)|| 236. |0x0000|offset x|4| 237. |0x0004|offset y|4| 238. |0x0008|sprite index|2| 239. |0x000A|sprite map|2| 240. |0x000C|(bool) is facing left|2| 241. |0x000E|sprite related index|2| 242. |0x0010|animation frame|2| 243. |0x0012|state|2| 244. |0x0014|entity|2| 245. |0x0016|action timer|2| 246. |0x0018|action id|2| 247. |0x001A|something sprite data index|2| 248. |0x001C|field_1C|2| 249. |0x001E|field_1E|2| 250. |0x0020|field_20|4| 251. |0x0024|field_24|4| 252. |0x0028|enemy number|2| 253. |0x002A|field_2A|2| 254. |0x002C|hp|4| 255. |0x0030|field_30|4| 256. |0x0034|field_34|4| 257. |0x0038|field_38|4| 258. |0x003C|field_3C |4| 259. |0x0040|sprite related count|4| 260. |0x0044|field_44|4| 261. |0x0048|damage enemy will take|4| 262. |0x004C|friend object 1|4| 263. |0x0050|friend object 2|4| 264. |0x0054|friend object 3|4| 265. |0x0058|invulnerable timer|4| 266. |0x005C|field_5C|4| 267. |0x0060|field_60|4| 268. |0x0064|field_64|4| 269. |0x0068|field_68|4| 270. |0x006C|field_6C|4| 271. |0x0070|(pointer) some iwram address|4| 272. 273. !!! Item drops 274. 275. Item drops in this game are predetermined, based on the current active frame. This active frame counter is read from IWRAM Address 0x17A0, with that value then bitwise AND operated with 0x1F (31 in decimal). This leads to a total of 32 possible values that can be read by the drop array (0-31). 276. 277. The drop array is stored in ROM at address 0x3E8880. This array contains 32 indexes, with values ranging from 0-7. The array can be broken down into the following table: 278. 279. ||Value||Indexes||Item||Probability||Notes|| 280. |0|0,2,4,8,10,15,20,23,25,28,30|Nothing|11/32 (34.375%)|Fewer objects might mean less lag| 281. |1|1,14,19|Small Health Refill|3/32 (9.375%)|+2 HP| 282. |2|3,9,18,22|Medium Health Refill|4/32 (12.5%)|+5 HP| 283. |3|6,13,29|Health Tank|3/32 (9.375%)|Stored in pause screen, caps out at 9, +11 HP| 284. |4|5,12,17,31|Small Energy Refill|4/32 (12.5%)|+2 Ammo| 285. |5|7,11,21,26|Medium Energy Refill|4/32 (12.5%)|+5 Ammo| 286. |6|24,27|Energy Tank|2/32 (6.25%)|Stored in pause screen, caps out at 9, +11 Ammo| 287. |7|16|Extra Life|1/32 (3.125%)|Your usual extra life thing, caps out at 9| 288. 289. !!! Useful tools 290. [=userfiles/info/38530848800286562|Team 1's main script] - hitboxes, HP, drops, positions, and field of view.%%% 291. [=userfiles/info/38508373147113065|Team 4's terrain script]%%% 292. [=userfiles/info/38508487412195834|Team 4's hitboxes script]%%% 293. [=userfiles/info/38508546028174499|Team 4's general script]- RAM watch alternative, object stats, positions, drops%%% 294. [=userfiles/info/38508617604349368|Team 4's externalized display script] - Terrain and hitboxes in wide field of view 295. 296. 297. !!! Pre-contest banter 298. 299. This game was featured in the [Dream Team Contest 6]. Before each of these competitions teams usually tease each other or make up discoveries they have made. This is preserved below until someone finds a better place for it. 300. 301. 302. 303. {{[[01:23:10]] <pirate> zookman %%% [[01:23:12]] <pirate> wut}} 304. 305. [module:youtube|v=7v9tFGm4W0M] 306. 307. [http://i.imgur.com/bMd2Cae.gif|right] 308. 309. !!! Advanced tech 310. 311. * A - Jump 312. * A (on walls) - Climb wall 313. * B - Shoot 314. * B (keep) - Charge shoot 315. * C - Land 316. * C (alternative) - Use the Land command in the GBA hardware 317. * L or R - Change between available weapons 318. * Left, Left (keep) or Right, Right (keep) - Dash (needs to be unlocked in a certain level) 319. * Start - Open menu 320. * Select - see ACE logging 321. * X - Quick Health Refill 322. * Y - Quick Weapon Refill 323. * Z - Quick Refill in general 324. * [Unexpected EOL parsing text in [] - this isn't even a button 325. 326. !!! Tricks 327. 328. ! Death 329. 330. [http://i.imgur.com/l4CRJLo.gif] 331. 332. ! Life 333. 334. avoid dying 335. 336. ! ACE 337. 338. see Advanced tech - Select 339. 340. ! SRAM glitch 341. [http://i.imgur.com/HFgU2yZ.png] 342. 343. ! Zip leak 344. 345. <Masterjun> rip secret strat 346. 347. !!! Trace logging 348. 349. what do you mean you can't trace log with mGBA 350. 351. ! ACE logging 352. 353. see Tricks - ACE 354. 355. ! Race logging 356. 357. GOGOGO 358. 359. ! Race logging 360. 361. no I didn't mean race as in ethnic group 362. 363. ! Mace logging 364. 365. a game without mace obstacles !? 366. 367. ! Face logging 368. 369. [http://i.imgur.com/KCfxXm7.png] [http://i.imgur.com/D38K0Dm.png] 370. 371. !!! Links to skips 372. 373. * [http://i.imgur.com/CSnk6AC.png |cool skip] 374. * [http://i.imgur.com/TJvtVK3.png |creamy skip] 375. * [http://i.imgur.com/3lUV73v.jpg |juicy skip (with ACE)] 376. * [http://i.imgur.com/jExSymq.jpg |garbage skip] 377. * [http://i.imgur.com/v0nZUnF.gif |jump skip] 378. * [http://i.imgur.com/tXHGljW.gif |mud skip] 379. 380. !!! Plot (spoiler alert) 381. 382. %%TAB NO SPOILRS PLS%% 383. %%TAB SPOILERS YES%% 384. 385. ! Undumped "English" edition 386. 387. [http://i.imgur.com/KeUb7z2.jpg] [http://i.imgur.com/CLt7D5l.jpg] [http://i.imgur.com/5TXnWTK.jpg] [http://i.imgur.com/ZhCcg2p.jpg] [http://i.imgur.com/iV4wFf4.jpg] 388. 389. no thunder axes were harmed during the translation of this game 390. 391. ! Explaination 392. 393. [http://i.imgur.com/zNiryDA.jpg] 394. [http://i.imgur.com/aVdoME8.jpg] 395. [http://i.imgur.com/M16ufww.jpg] 396. [http://i.imgur.com/qDNaUfG.png] 397. 398. ! Cannot unsee the Sky Clown 399. 400. [http://i.imgur.com/64kvDhb.gif] 401. 402. ! Non-best ending 403. 404. [http://i.imgur.com/HwwMdKs.png] 405. %%TAB_END%% 406.