Hocus Pocus, published by Apogee Software (developed by Moonlight Software) in 1994 sees a puny dropout wizard setting on a quest to collect crystals which will make him powerful. On his way, Hocus is ignoring important information given to him by Terexin (It took me 67 years to grow this beard.) while defeating enemies and bosses so that Land of Lattice will become more safe to travel. By completing four tests, he will also be accepted into the Council of Wizards and marry Popopa, daughter of Terexin who leads the Council.
This is Episode 2, called Shattered Worlds, of 4 available in the game. Episodes 2-4 are available only in the Registered version of the game.
You can download the Shareware version of Hocus Pocus (has entire Episode 1 unlocked for play) on 3DRealms's website.

Game objectives

  • Uses hardest difficulty and fast speed settings
  • Any%
  • Heavy Luck Manipulation
  • Takes damage to save time
  • Genre: Platform
  • Does not get cursed by mummies
  • Kills all 10 5 Tree Demons

Emulator/game info:

I used JPC-RR 11.2 and I also used the REGISTERED version of the game..
When playing back the movie, after loading it in JPC-RR, press on Debug -> Hacks -> NO_FPU, else game will not run.
The BIOS/OS versions are identical to #2649: sgrunt's DOS Commander Keen 5: The Armageddon Machine "glitched" in 02:42.43 .
Additional diskinfo about the game image used:
FieldValue
TypeHDD
Tracks16
Sectors63
Sides16
NameSizeMD5
HOCUS.DAT610152529a3892df3cb212cfcd5dca4b1e1362a
HOCUS.EXE1826566773e61cb5e53b6880cdd3aa93152632
SETUP.EXE181760ab84e271656e37d38001c4d0bd5e911

About the run

General information

The run has no deaths and I aim for fastest time. Other objectives are listed above and explained below.
The game's hardest difficulty, compared to others, means that Hocus takes more damage per hit (16% damage, vs 4% damage on easy and 12% on moderate) and enemies take 4 more shots to kill than on easy. For example, blue dragons take 2 shots to kill on easy, 4 on moderate and 6 on hard. Because of this, it means there is a lot more into damage abusing and there is a requirement to kill more enemies and manage your health with the available health potions (the green potions), which restore 10% of your health. Normally after getting hit, you get a temporary invincibility period. This period is the same whenever you get hit by enemies or spikes (metal or ice). Lava and fire give a much shorter invincibility period. If you hit a boss, you die instantly. Due to the invincibility period, this run takes damage to save time because you can run through enemy packs while only getting damaged once.
The game offers 3 powerups, and these are:
- Increased firepower (the immobile lightning bolt found in most levels) which increases the amount of shots you can have on the screen at the same time.
- Rapid fire (the white potion) which gives you up to 9 shots on the screen at the same time.
- Fireball Laser shots (the grey potion), which gives you 3 laser shots. These babies can rip through enemies (insta-kill) without disappearing (they do disappear once they're off-screen), so you can kill many enemies in one shot with those. Furthermore, they can stack (so you can have even 9 in your inventory, even if only 3 appear on-screen) and their only downside is that they act like regular shots when it comes to destroying blocks, so one shot = one block removed.
Enemies have hitboxes and these differ per enemy. Some of the enemies have a large hitbox due to a tail, while some have a smaller one and some seem to be variable (e.g. winged enemies). Some enemies can spit out fire, lightning bolts, shoot flowers, throw rocks downwards and other things while others just run or roll at you instead, and they are pretty fast. As such, enemy manipulation is important and more about it later.
It should be noted that you can collide with some enemies or their trajectories without taking damage, as the hitbox is smaller or off-center.

Any% vs. 100%

Any% is naturally faster but is also giving you a set route and you cannot really deviate from it. 100% means you have to collect all treasures (gives you a bonus in the score screen) which is a lot harder due to several factors: more enemies to fight, more route-planning and therefore more health management. However 100% is also a ton more boring as you have to backtrack many times, take warps to hidden rooms (where you rarely have enemies) and thus wait to get to and from the secret rooms. As such, this run is the any%. I will however look forwards to the day someone will do a 100% TAS of the game.

Movement

Hocus is moving horizontally at a speed of 8px per frame and a vertical fall speed of 16px per frame (with a maximum of 32px per frame). In terms of jumping, it takes Hocus 9 frames to reach maximum height (he goes up, per frame, with the following amount of pixels: 16, 8, 8, 8, 4, 4, 2, 2, 1) before falling down for 9 frames (same amount of pixels per frame as before, just in reverse).
Warp potions move Hocus at a constant speed of 8px per frame horizontally and 16px per frame vertically.

The game has priorities with regards as to what Hocus will do first:
- Shooting will always be done, regardless of what else is being pressed
- Moving horizontally is second priority, followed by jumping.
- Looking up/down will be executed if arrow keys are held down for long enough, unless Hocus is jumping or falling, in which case it will wait to do so until landing and the screen focuses on Hocus again. Trying to jump afterwards will not happen until the up/down looking animation is complete.
- Jumping will occur a bit after walking up or down the stairs, not instantly.

Glitches

Corner clipping
If you time your jump just right, you can hit corner of blocks. This will thrust Hocus down (if hitting from above) by 16 pixels. This is not always faster (sometimes slower) and depends on the situation.
Clipping into stairs or floors
The corner clipping trick can push Hocus inside stairs or floors. An example is in Episode 1 Level 1. After getting the gold key, Hocus needs to cross a gap in order to get to where the gold key 'door' is. If Hocus's jump is timed badly, Hocus will clip the floor and be thrust down instead of landing on the floor where the 'door' is.
This run does not utilize either glitch.

Random Bonus Glitch

No idea how to call this glitch. Due to reasons unknown (and lack of memory watch does not help), the game randomly gives the player a random powerup. The player can receive any of the following: a silver or gold keys or both, the rapid fire powerup or the triple laser shots. I have a savestate (please request it from me through a personal message on either forums or IRC) where you need to shoot a few more times before the game randomly gives you both keys (or not at all if you do not shoot).
If anyone can figure how to get those consistently, please let me know. The laser shots are the best, but anything works. Getting keys means less sidetracking and thus a faster time. At current state, it's too inconsistent to be put to practical use.

Lava Floor Glitch

Hocus can step on the edge of lava floors without taking damage. While falling down from a jump, you need to align Hocus on the edge of the/lava floor and the floor above (which is normal). 2 frames before you hit the lava floor, move Hocus towards the normal floor for 1 frame and then stop pressing that key. Hocus will now complete his fall onto the lava floor but be registered as being on the normal floor. This is demonstrated in Episode 2 level 8. I do not know if it works on Spike floors, but I have suspicion it does.

Luck manipulation

Manipulation is done via jumping, shooting and infrequently, moving.
Enemies can be manipulated into moving to certain directions (including despawning them), whether they will run/roll or to determine whether they shoot or not. Likewise, disappearing blocks can be manipulated into instantly disappear or not disappear for some time while appearing blocks can be manipulating into when they would appear.
It should be noted that if on one frame you shoot you get one pattern of enemies/appearing/disappearing blocks, and if on that frame you decide to not shoot instead, you get a completely different pattern. Because of this, I inserted random jumps/shots (or I moved) to manipulate enemies (even ones that did not spawn yet) and appearing/disappearing blocks to give more favorable patterns.

Spawning enemies

It is possible to cause enemies to spawn later than normal or not at all based on where Hocus is or what he does.

Level comments

General info:

Unlike Episode 1, Episode 2 offers less health and more enemies. This makes the entire episode much tougher to TAS and makes health management the most important aspect. As such, enemy manipulation had been increased (where applicable) and route planning had been done carefully, often re-recording previous parts of the levels to ensure that the optimal route was taken.
Additionally, Episode 2 also introduces the weapon management aspect to the TAS. This is related to the Laser shots where they must be used carefully. This starts in level 2-5 and continues in levels where the Laser shots are present. This further increases the manipulation of enemies to usually group them into a spot where more of them can be killed, or manipulate enemies into different movement/shooting behaviors.

Note: If I mentioned something like 142ms, then it is based on emulator's timestamp on the bottom left.

Pre-game:

This one's a funny one, as this is actually about the start-up of JPC-RR, the setup.exe, SET BLASTER command, intro screens and the main menu. I spent an hour on the setup and after it to input the BLASTER command because JPC-RR refused to input '0' in 'SET BLASTER=A220'. The pre-game setup, intro screens and menu movement (up to episode select) were improved over episode 1 by 8 frames.

2-1:

I don't want to see this level ever again. The ending was practically a nightmare to do due to the large amount of manipulations.
First and foremost, when the level splits into two, taking the right side is faster than taking the left side by a large margin. A few tests showed that going right first is much faster by well over 10 seconds. Reasons include that on the left side you take more damage, you have to slow down due to the jumps above the fire as well as more walking.
Additionally, I found out that it's possible to not trigger the enemies on the right side. To do so, you need to stand on the end of the higher step (where monster spawns), jump and after the game does the jump you can move left/right without triggering the next spawn. Killing all enemies when going back from the 4th crystal, however, is faster than not triggering them at all.
Manipulation was done on monsters in several places, but there was heavy manipulation on the disappearing blocks where the 9 switches are.

2-2:

A very simple level with tight health management. At the end when the route splits I choose left since it's faster than going right (nothing stops me there). Note the hitbox at the start of the grey monsters (horse/bull combo?) where I do not get hit despite clearly colliding with the sprite. After that I did not trigger the enemies.
Manipulation was done when going back to the start point to manipulate the enemies to go towards me so I don't take damage. At the third crystal, the crystal's blue dragon spawn and the one before it was manipulated so that they would not be in my direction (in fact the previous one was manipulated to despawn).

2-3:

This level is pretty tight for me on health and has quite a number of manipulation points. For those who wonder why I went right after the first stair jumps, it's because the left entrance is blocked and you can open it with 3 switches from the other side.
I lost 257ms due to not taking damage at the silver key, but I would need to take health later which wastes an even greater amount of time.
I jumped for switches mid-air. Besides that Hocus wouldn't budge and move a switch if his character wasn't in the middle of it, it is 458ms faster than falling down first and then doing those 2 switches after I catch 3rd crystal.
For the third crystal I jumped 2 frames later than optimum, but this causes Hocus to be above the crystal and due to the way the hitbox works, he just appears to be colliding with the crystal but not taking it, which causes it to be slower by a number of frames (142ms).
On the lava jumps way later I triggered the enemies to spawn in later than normal.
This level's enemies were hard to manipulate. The two headed snails were a problem in both silver and gold key rooms where time was saved the most by not taking damage. The giant bats were extremely easy to manipulate to not shoot their rocks (or to shoot but I could avoid them) and move upwards and the grey monsters were simple as well. The disappearing blocks were pretty easy for the most part, the only notable difficult one was 4th crystal's where I also had to remove 2 lag frames.

2-4:

An extremely simple level, there's actually a lot more to it than seen in the TAS: a silver key route + door and a warp potion at the very start of the level. The only things manipulated were the appearing blocks (lava section for gold key), disappearing blocks on gold key door and the 2nd/3rd giant bats on the start.

2-5:

A tight level. At first I thought the laser shots at the start to the right would be required due to the large amount of enemies in the level, but ends up you actually don't need it. The wonders of TASing. Saves 4 seconds right off the bat (err, no pun intended), and no need to worry on manipulating the bats to the right either. The level did end up pretty annoying, there are a lot of tight spots and on at least 3 occasions I'm a frame away from getting hit. I only take health at the very end of the level so I can get through the ending without losing any time.
Manipulation went well for the most part. The hardest part was getting the disappearing blocks of the door switch for the 2 gold bars door (after 6th crystal) to cooperate. Second hardest would be the jumping platforms with the switches on the way to the 5th crystal, as the 6th platform I jump on (leftmost highest) can have the 2 left blocks appear a bit later than normal. Enemies were well manipulated where needed so I don't take too much damage, such as with 1st crystal's enemies.
Just before 6th crystal's room I pause for a frame, but I gain 2 frames immediately afterward because I hit the upper ceiling instead of doing a full jump.

2-6:

A short level, the laser shots came in handy plus good jumping around enemies as well so I didn't lose more health than needed. The start went much better than anticipated by not getting hit on the very first enemy spawn I encounter, followed by good bat manipulation on the first crystal. Using the Jump powerup saves time (>100ms), mainly because I skip a single enemy spawn so I don't have to slow down.
Manipulation was done on monsters in some parts of the level to get them going where I want them to so I don't get hit. The bats were the most manipulated enemies in this level up to the spike-stair section and the remainder of the enemies cooperated for the most part without additional manipulation.

2-7:

So. Many. Enemies. This level was a pain to do because of them and I accidentally found out that looking up/down saves time. After the looking up/down animation completes and you make a jump you can stop holding the keys, and when you land, the camera sometimes does not need to readjust to the new position. This allows Hocus to jump much sooner. Using that, I saved at least 15 frames throughout the level. A side effect of looking up/down is manipulating enemies as well, so timing when I press the keys is important.
After the stairs at the start, the rightmost armadillo enemy has a massive hitbox that doesn't allow me to pass if I jump a stair earlier, so I can't land just before the lava without getting hit.
The flowers' hitbox is pretty interesting, and the flowers they shoot have a very interesting collision with Hocus (I collided with two directly without the hits being registered).
I took 2nd crystal first since if I were to take #3 and 4 first, I won't have the white potion available to me for the 2nd crystal, and thus I'd get more damage.
During the switch jumps, it's not possible to clear the gaps from the platform to the next switch on the ground.
Manipulation went great because everything co-operated when they needed to. Flowers didn't shoot at my direction (especially during the jumps after first crystal), the armadillos did not roll and have a go at me and the bats... well, they needed to be heavily manipulated. The switches and appearing blocks were manipulated to the best possible, saving 6 frames altogether. Additionally, two enemy spawns were manipulated not to appear.

2-8:

Even. More. Enemies. I took the laser shots first since the unlimited fire potions at the start do not last long enough for the silver key section (and is a lot slower). After testing with the laser shots and which enemies to hit, I ended up taking a method that was 8 frames slower than my fastest but gave me 16% less damage. Unlocking the golden key door onwards looks pretty ugly, but I believe it's rather optimal and it appears that taking damage at the final armadillo spawn instead of the 3rd bats spawn saved me 2 frames. What's annoying is that the 3rd bat spawn IS possible to pass without taking damage, but the only way is if you take damage on the first two spawns without stopping.
Manipulation was heavily done in 2 parts: the upper left section for the silver key, and the ending (golden key door onwards). The bats were the main cause as they are the most random enemy out there. The remainder of the level did not pose much difficulty (2nd crystal I shot the stair to cause an armadillo to despawn when I get the crystal).
For entertainment purposes, I abused the collision detection of Hocus and the flowers. As a side effect of manipulating the bats in my favor, I had Hocus stand on lava but I was not registered as such. After the silver key, I killed the last flower and also glitched the lava. The flowers after that were quickly killed, but the third flower glitched and despite being killed, it still shot its flower.

2-9:

The reason for this whole test. Back in the Time of the Really Big Shaking, parts of Lattice ripped themselves off into another space and time, connected only by the Magic Paths. Strange creatures formed in the fluctuating magic energies and few were nice. The worst of the creatures were the Tree Demons. People used to hang swings, build forts and saw bits off for roofing off those trees. For hundreds of years, the trees accumulated their "tree anger" and the resulting magic exposure caused them to gain consciousness.
Hocus does not like fighting due to his lazy nature (he prefers to draw doodles down the sides of his spellbook), so he skips two of the Tree Demons but kills the rest. Apparently this is enough to pass the test and get enough wood to build a swing.
Arguably, this is the hardest level in the entire game and only due to the Tree Demons. These sons of bitches follow you and run pretty fast and in normal gameplay you're often cornered (3rd/4th trees are the best examples) and you die the moment they touch you. To show you how evil these Tree Demons are, there's a Let's Play (Part 1, Part 2) with 5 deaths due to the trees. I hate this level to the core but the TAS doesn't show its difficulty due to a lot of luck.
First two Tree Demons were easily skipped: the first one is tight, the second one triggers when the white potion is picked up. Tree Demons 8-10 were all skipped (barely) thanks to good jumping.
Nearly no manipulation was done (only in the 3 trees in the middle of the level, and that was little as apparently the Tree Demons can barely be manipulated) as somehow the Tree Demons were co-operative and didn't even try to run at me. I had never seen that before.
Movie input ends by quitting the program back to DOS through the game's main menu.

Special thanks

Ilari, for helping me on setup-ing JPC-RR, how to do WIP encodes and answering my never-ending amount of questions, as well as finding the corner and stair glitches.
Takiten and Lingyan203, for the Let's Play and fast-play (respectively) 100% runs of the game. Good entertainment, plus helped to plan the run.

Closing comments

I'm pretty happy with the run but it took well over a month to do due to several problems, such as my mother board frying on me. I've done a lot better in terms of testing and had redone levels as required. However, in 2-7 I found that looking up/down can save time and this alone can save over 25 frames in levels 2-2 to 2-6. Because I found this so late, I decided not to redo the run from 2-2 (plus I was losing motivation). Additionally, level 2 can be improved by another 32 frames.
Other points of improvements:
2-1: It is possible to cause the final monster spawn to spawn after Hocus (just like the penultimate one), but I was unable to replicate that. It might be possible to improve the ending by 1 frame by not taking damage from the last blue dragon and then taking damage on the end jumping section, but I'm not too sure about that.
2-5: I know of 2 lost frames. The first one is the jumping platforms on the way to 5th crystal. The leftmost upper platform had its 2nd block from the left appear when I was halfway through it. The second frame is with the spikes and scorpion jumps at the end. If I didn't shoot (and create a frame of lag), I'd hit the 3rd pair of scorpions and die.

Suggested screenshot

Actual suggested screenshots:

Pick a timecode (550313, 552466, 558826, 663963) and optimize the screenshot: [dead links removed]

Nach: Judging.
GabCM: YouTube module added.

Nach: Despite some of the improvements that can be made, this run is pretty solid for a first time run for this game (episode). The entertainment at the beginning of the run is somewhat borderline, but really picks up nicely as the run progresses. Accepting.

GabCM: My pub!


Joined: 6/5/2005
Posts: 64
Nach wrote:
DefEdge wrote:
You have to remember that DOS was limited to a specific amount of memory. A 3 minute MP3 file is about 2-3 times larger than the amount of memory that was available for a program. By having episodes, the games could be longer without having to completely worry about that memory issue
That's some impressive bit of faulty logic you have there. These games don't load the entire level data at once. They could have easily made Hocus Pocus a single episode with 36 levels without increasing memory demands.
Hmm... I wasn't aware that this game had loading from the HDD or floppy during the game. Most games I played in the DOS era loaded all of the game into memory instead of just single levels. Sorry that I'm an idiot about that, my bad.
Phear my uber gimpyness!