Submission #8892: DigitalDuck's ZXS Magicland Dizzy in 18:37.65

(Link to video)
ZX Spectrum
baseline
BizHawk 2.9.1
55972
50.080128205
1170
PowerOn
Dizzy IV - Magicland Dizzy (1989)(Codemasters)(48-128k).tzx
Submitted by DigitalDuck on 2/11/2024 12:00:02 PM
Submission Comments
Magicland Dizzy is the fourth core game in the Dizzy series. The Evil Wizard Zaks is back from his demise in the original Dizzy, and teleports the Yolkfolk to Magicland, casting evil spells on them to imprison them there forever. Dizzy must free them all and end the reign of Zaks for good. 25 years later, the game was remade by The Oliver Twins for the NES as Wonderland Dizzy.

Game objectives

  • Emulator used: BizHawk 2.9.1
  • Model used: +2A
  • Aims to beat the game as quickly as possible.
  • Uses death to save time.
  • Heavy glitch abuse.

Comments

This is a tool-assisted speedrun of Magicland Dizzy for the ZX Spectrum. It completes the any% category, defeating Zaks and giving the devil 30 diamonds as quickly as possible.
TAS timing (power on until last input): 55972 frames, 18:38.992
RTA timing (press SPACE to start the game until "CONGRATULATIONS!" appears): 36944 frames, 12:17.964

Model

The run is performed on the Sinclair ZX Spectrum +2A. Magicland Dizzy synchronises its game engine to the screen's refresh rate, and therefore generally runs marginally (~0.1%) faster on 48K than on 128K versions. However, 128K versions of the Spectrum run their Z80 processor at a slightly higher clock rate, and the +2A and +3 also have some improvements in memory access speeds; this means that menuing and room transitions are faster on these models. The +3 is a disk-based system, and Magicland Dizzy has never been officially released on disk, so the run uses the +2A and loads the game from tape.

General information

The game runs at a relatively constant 12.5fps (one in-game frame every four screen refreshes). Menuing and screen transitions take longer than this and are simply processed as quickly as possible ignoring framerate. For the rest of this section, "frame" refers to in-game frame.
Dizzy moves horizontally at four pixels per frame, whether on the ground or in the air. While standing or walking on ground, he can stop and turn around instantly, but he cannot be controlled in the air. A jump can only be performed while standing or walking on ground; this pushes Dizzy upwards at a fixed velocity and sends him into a roll. He cannot be controlled while rolling and will continue rolling until he is both on the ground and on his feet.
Dizzy can pick up and drop items, and the game revolves around his using this ability to solve puzzles. By pressing the menu button, the inventory will open. If an item is within Dizzy's reach, he will also pick it up. Dizzy can initially hold two items at a time, and picking up a third item will cause Dizzy to automatically drop the first. Selecting an item in the inventory will make Dizzy use or drop it. The menu can only be opened while standing still, and items do not act under physics; once dropped, they are stationary and do not move until picked up again.
If an item is dropped within its designated use area, the item will (usually) disappear and some interaction will occur (e.g. opening a bridge). An ancient lamp produces its own trigger area that a cloth duster can be used on. There are also items that are used by simply holding them; for example, holding the power pill will allow Dizzy to defeat ghosts. In addition, some items have no purpose and exist as red herrings. Something sticky and Excalibur cannot be dropped once held, and permanently fill an inventory slot.
All rooms start in a fixed state, but maintain their state between visits. Enemies move in fixed patterns and cannot be manipulated. Dizzy starts with three lives and a full health bar; contact with enemies results in a draining of health, with a life lost when health is fully drained. Being bitten by Vampira, squashed by Daisy, or falling into water is an instant loss of life. Health can be restored by collecting diamonds.

Intended route

In order to beat the game, you must destroy Zaks' ring and talk to the devil while holding 30 diamonds. Of course, you can't do that immediately from the start of the game:

Death warp

On death, your position is usually reset to the last solid ground you stood on. In some cases, this can be fairly far away, especially when traversing clouds. Some rooms override this behaviour; for example, dying in the well resets your position to the top of the well. We use our two spare lives to deathwarp and cut out as much backtracking as we can.

Item embedding

If we drop an item such that any part of it overlaps a solid tile, the item collision takes priority and "erases" the collision of the solid tile. This isn't particularly useful by itself, but in combination with a few other glitches this is insanely powerful. Having said that, we do use this to get out of bounds once.

Up zip

Dizzy has two hitboxes; the internal hitbox is smaller to allow small slopes and steps to be climbed without jumping; he can walk "into" the terrain by a small amount and then he will be pushed upwards when the external hitbox finds him colliding with it. If we get ourselves into a position where we are standing inside terrain, we will be continually pushed upwards until we escape. We use this to get out of bounds once.

Dialogue skip

In most cases, the trigger to talk to characters is smaller than the trigger to use items on characters. As such, you can use items on characters without triggering their dialogue first. Even with characters where this doesn't apply, by dropping an item on the edge of their dialogue trigger you can walk into the use trigger and have it take priority due to picking up the item first. This can be done to skip dialogue from Daisy, Dozy, Prince Charming, Dylan, and Good Witch Glenda. However, we no longer talk to any of these characters, thanks to...

Item warping

If we drop an item during a screen transition, the game places the item in the room we just left, but in our new screen position, i.e. on the opposite side of the screen to where we were. Depending on a number of factors related to collision and Dizzy's state, Dizzy himself can also warp from across the screen.
This is much easier said than done, of course. The menu cannot be opened while moving, so we need to create special conditions to allow us to move between screens without moving. This is done in two different ways, depending on whether we want to warp vertically or horizontally:

Vertical item warping

Some staircases can be climbed by walking (using the up zip for its intended purpose); should one of these staircases go up between two screens, it's possible to walk into a step and then stop walking and open the menu before it has finished pushing us up to the next screen. This consistently warps the item to the bottom of the screen, but will not warp Dizzy.
Instead, we must also place an item at the bottom of the screen above, embedding it in the ground and erasing the step such that Dizzy repeatedly gets pushed up by the lower screen's step and falls down again. With the collision erased from above, Dizzy will sometimes wrap along with the item.
This can be used to skip both the troll and Denzil, but as it has to be done a minimum of three times it's faster to do these normally. Instead we chain multiple vertical wraps to allow us to take an ancient lamp much earlier than we should be able to.

Horizontal item warping

This is a glitch newly discovered in February 2024 as a direct result of making this TAS! Usually when opening the inventory, the game immediately halts to open the menu. However, in some situations the game continues for a little longer; for example, in THE HAUNTED SWAMP this delay is always present.
Unfortunately it's impossible to warp Dizzy himself in THE HAUNTED SWAMP, and warping items there is pretty much useless. But after some experimentation, I found that while the genie is firing lightning bolts, this delay is present on most frames. As a result, it's possible to warp horizontally on any screen with one side open and a wall blocking the opposite side. We use this to get out of bounds once.

Out of bounds

The map outside of boundaries generally consists of empty screens. Some screens contain garbage data, the title screen itself is a screen in the game world, and one screen is used to store items that have either been removed from the game world or have not yet appeared there.
The more relevant point to the run is that the map wraps, but the top and bottom do not line up perfectly; after falling through the bottom of the map, Dizzy will wrap to the top, but three screens to the left. This allows us to save travel time heading leftwards by falling through the map, as well as going from the far left of the map to the far right by falling straight down.

Ghost skip

The ghosts are intended to block entry to the right side of the map. However, with careful movement, it's possible to pass through this screen without defeating them. This means we don't have to collect the power pill, saving us a short trip and an inventory slot.

Early lamp

Getting an ancient lamp normally involves rescuing Denzil, giving his personal stereo to the bard in exchange for some magic pipes, and playing the magic pipes for the rat to get it out of the way. This is a long trek for a key item in the run, so instead we use vertical item warping to skip all of that and get it early.

Yolkfolk skip

Normally, the far side of the volcano is off limits until rescuing all of the Yolkfolk (the main goal of the game). However, by utilising a horizontal item warp we can get out of bounds and fall straight into it, leaving our friends and families cursed forever as we ignore them. We can do it faster the second time by using the item we embed in the wall the first time, picking it up and causing us to up zip.

Volcano return/"The Hole"

To get back from the volcano, we need to get out of bounds again. We embed a couple of items into the ground to create a hole we can fall through, and fall to the left through the void to end up back at WEIRDHENGE. Even without Yolkfolk skip, it's faster to do this than to travel normally.

Crypt deathwarp

When dying in the crypt, you respawn where you entered the room, as it could otherwise result in an infinite death loop. If you manage to leave the room during the death animation, your room entry point will be updated but it will still respawn you in the crypt in that position. We use this to skip a small amount of backtracking.

Actual route

With the above glitches in mind, most of the "necessary" items can be skipped:
We start by immediately walking in the wrong direction to line up jumps to remove as much of our health as possible, setting up a later deathwarp. We take the backdoor key and use it to open the castle backdoor. We drop the empty milk bottle to set up early lamp and take the handle to the well to get a bucket. We move the gold cross into position to pick it up later during early lamp and jump across the clouds to get a cloth duster and a big stick. After setting our last safe position in the tree we bring the cloth duster as close to the castle as we can without standing on solid ground again, before dying to the bat and deathwarping a few screens away.
We jump our way back to WEIRDHENGE where we can take a dagger and jump over the first ghost, doing some careful platforming to avoid needing the power pill. We fill our bucket with water and make our way to the trollbridge, using a big stick and a dagger to get the troll out of the way before throwing a bucket of hot water over Denzil, rescuing him.
Leaving a big stick behind, we take a personal stereo and a cloth duster on our way to get an ancient lamp early with the vertical item warp. It's impossible to pick up an ancient lamp while holding a cloth duster (to allow you to use them together), so we swap a cloth duster for the gold cross, which we swap again for an ancient lamp, once again moving the gold cross into position to pick it up later.
We take a cloth duster again on our way to swap a personal stereo for some magic pipes. Heading to the far left of the map, we get the genie out of the lamp ready to create a bunch of lightning bolts. We head back to pick up a big stick to use as a garbage item to perform a horizontal item warp. We clip out of the left side of the map and fall straight down, wrapping around to the volcano.
Speaking to the devil, we take the wizardslayer trident and use the rest of our inventory to create a hole to fall through, arriving back in WEIRDHENGE. We use this trip to mop up the remaining diamonds, collecting the items we need to do so. We drop down the well and play some magic pipes for the rat, jumping through it as it sleepwalks so we don't have to wait for it to fall to its death. We take something sticky and the gold cross again, using something sticky to get Excalibur.
We make our way to Zaks and kill him, taking his ring before visiting the rest of the ice tower to clear the remaining diamonds; Excalibur allowing us past the Red Queen, and the gold cross allowing us past Vampira. Taking a burning torch opens Daisy's chamber, but we don't need it otherwise so we immediately drop it again (along with the gold cross due to inventory limits).
Leaving Daisy's chamber, we deathwarp in the crypt to make our way out of it quickly before jumping into the pocket in the wall our embedded big stick has left. We pick up a big stick which removes the hole, up zipping us to the top of the wall and allowing us to walk out of bounds again. Back at the volcano, we throw Zaks' ring in the lava and ask the devil to take us home.

Other comments

Dizzy is one of my favourite 80s/90s videogame series, and Magicland Dizzy is my favourite in the series. It hit that sweet spot of being a large enough world to be interesting without being so large that it becomes a chore to navigate, and the addition of a health bar means that "accidents" are much less punishing than in previous games. It also helps that it opens up very quickly, and you can easily make progress by solving puzzles along multiple routes and concentrating on one of the Yolkfolk at a time.
Special thanks to Faddy and TwoSpacesSG for finding most of these skips and pointing out areas of improvement in each iteration of the run. I found the horizontal item warp in the process of making the TAS and immediately recognised its potential, quickly workshopping with them the best use for this, resulting in Yolkfolk skip.
As a result, the route changed massively during the development of the run; initially, all Yolkfolk were required, with the general glitches having been found roughly in the order presented here. After finding Yolkfolk skip, a number of potential routes were tested and rejected. For fun, here's a diagram showing the barest minimum of item use:
Further special thanks go to The Oliver Twins for making the game, Sir Clive Sinclair for making the Spectrum, and everyone in the Speedtrum Specrunning community for keeping da speccy alive.
Suggested screenshots: 41319, 53506

nymx: Claiming for judging.
nymx: I have to say, I'm in agreement with you on this game. It is my favorite, in the series so far. There were lots of interesting tricks here, and I thought it was hilarious to see some of the falling during OoB. This run reaches far out beyond the best human efforts by Faddy. I'm very impressed with this work and I congratulated you on the outcome.
Accepting.
fsvgm777: Processing.
Last Edited by fsvgm777 on 3/2/2024 6:11 PM
Page History Latest diff List referrers