Submission #9530: scrimpeh's MSX Vampire Killer in 14:47.38

MSX Home Computer System
Vampire Killer
openMSX 20.0
53174
59.9227510135505
3773
PowerOn
Akumajyo Drakyula - Vampire Killer (1986) (Konami) (J) [a2].rom
Submitted by scrimpeh on 2/13/2025 7:09 PM
Submission Comments
Vampire Killer is the MSX2 version of Castlevania, released in Japan, Europe and Brazil. Rather than a linear action-platformer like the NES version, Vampire Killer contains more elements of an adventure game, with collectible items strewn about the levels, some of them hidden in the walls. In each stage, a white key needs to be found to proceed to the next stage. This movie saves a minute over the previous run through a number of significant new tricks.

Game objectives

  • Emulator used: openMSX 20.0
  • BIOS used: Panasonic FS-A1WSX
  • Aims for fastest possible time
  • Takes damage to save time
  • Manipulates luck
  • Genre: Platform
Note: I accidentally used the [a2] ROM this time around. This was unintentional, but I only realized I was using the wrong ROM a couple of minutes into the run. You'd think by now I would know to pay attention to such things. Whoops. It should make no practical difference for the TAS anyway.
Welcome back to Vampire Killer. This game is somewhat of a mainstay of mine, considering this is my fourth submission of it, beating out any other game I've TASed on this site.
This is a sister game to the original NES Castlevania that was released for the MSX2 at the same time. Unlike Castlevania, each stage requires you to find a white key to proceed to the next stage. The levels are different and often very non-linear and mazelike, frequently forcing you to find secrets to proceed. There's also a number of items strewn throughout the levels which you can pick up, which range from useless for the TAS to completely game-breaking. In this game, hearts act as both your subweapon ammo as well as currency to buy items from merchants with. This run needs quite a few hearts, which makes proper heart routing crucial for the run.
This run uses a couple new major discoveries to save 3618 frames, or just over a minute, over the previous 2013 run. These new discoveries significantly change how the game is played. More detail is outlined in the comments below.

TASing Process

openMSX normally relies on a rewind-based system, where the emulator is configured by default to go back 1 frame if you hit Scroll Lock, and 60 frames if you hit PageUp, which I used in the past. For this TAS, I tried to emulate how typical emulators like BizHawk work, and bound loading and saving of different replay slots to the F1 - F8 keys (which in turn necessitated moving the F1 and F2 keys, which are used by the game, to somewhere else). This was hugely beneficial for TASing, as having the ability to easily and quickly jump to a precise moment in time is massively helpful. This allowed for a lot more precision in making the TAS, which is something I felt I was missing before. In particular, it made the process of the finding the first (or last) frame where an action is possible significantly easier, which was particularly troublesome before.
One downside to this however is that the rerecord count is not accurate, since all saveloads are discarded. I do not have an estimate for the real rerecord count. Going purely by the amount of time spent on the TAS however, I spent about 2 - 3 weeks on routing, and another 3 weeks on the actual TAS, so make of that what you will.
Like a lot of MSX games, the game generally runs at 30 FPS and will only accept input every other frame. For the most part, you can just get by with making sure to hold every button for two frames, and getting used to pushing Frame Advance twice each time. Sometimes, when the game is busy, you might need to hold a key for two or even more frames in a row to get the game to register it. Sometimes, it might also require holding unrelated buttons at the same time. I do not quite know why that is. This also means that Simon only ever moves by 2 pixels at a time. This can sometimes be a problem when precise positioning is important.
Unlike the previous runs, this TAS was done almost entirely on the MSX joystick rather than the keyboard. The primary advantage of this is that you can hold Up on the joystick without Simon attempting to jump, which makes climbing up stairs significantly less problematic. The keyboard was however still used heavily for luck manipulation. Playing on joystick still doesn't fix some of the game's other strange controls, such as using subweapons with the directional inputs. You're stuck with that.

Stair Glitch

The stair glitch was discovered by AgentWyvern at the beginning of 2023. By walking on a staircase for exactly 32 steps, or 512 frames, you can walk beyond the intended end of a staircase and keep going. The reason for this is a counter in RAM that keeps track of how many frames Simon has walked on a staircase for. It is located at address 0xC42B. When the counter rolls over to 0 as you hit the final step of the staircase, the game will not realize that Simon is supposed to exit the staircase. I am not sure why the programmers decided they needed that counter, I haven't messed enough with Z80 assembly to find out.
Once the stair glitch is active, you can keep going until you hit another solid floor. When you hit a vertical screen edge, it depends on the room what happens. If there is a valid screen transition defined for the ceiling or the floor of the room, you can walk into the next room as normal. If there is no screen transition defined for the bottom of the screen, Simon will die as if he fell into a bottomless pit. If there is no screen transition for the ceiling, Simon will also lose a life, but then respawn in the same room without any of his items. In a similar way, hitting a horizontal screen edge will send Simon into the next room when a screen transition is active, otherwise, Simon will simply wrap around the current room. Because of this, stair glitches are not always usable where it seems like they should be possible. It is also in theory possible to chain several stair glitches to go through multiple floors, but no applications have been found for this.
You cannot carry a stair glitch through a vertical screen transition, as Simon's Y position will be offset from 1 pixel from where it should be when you go through a screen edge, which causes the stair glitch to fail once you attempt it. Because of this, you must set up a stair glitch on the same screen that you use it on, which limits some of the applications.
Despite these limitations and the long setup time, it is still possible to perform a number of major shortcuts using the glitch, as the level design often forces you to backtrack for agonizingly long distances otherwise. All applications are noted below in the stage-by-stage comments. This glitch is ultimately the reason why I wanted to redo the run.

Stopwatch Glitch

This glitch goes back to at least Jaguar King's 2014 SDA run of the game. Put simply, if you exit a stage while the stopwatch is active, the stopwatch will remain active indefinitely. This can be done either by letting a boss orb time out after beating a level, or by immediately using the stopwatch before entering a door, although the second option is much faster. All enemies are frozen permanently then. If you beat a level, time will remain frozen until you find another stopwatch and use it again. Dying resets the stopwatch glitch.
This glitch has huge application for real-time speedruns, as it makes the game much more bearable than it would be otherwise. It however comes with some serious downsides for the TAS, as it both locks you out of some damage boosts that would be possible otherwise, and also results in a much more boring TAS, as you basically end up just leisurely strolling throughout all the levels without any of the enemies bothering you. Despite this, some enemies are still placed in inconvenient locations, which means you're still forced to deal with them somehow. Due to this, I initially passed the glitch up and didn't give it much mind until I started this TAS.
For this TAS, I actually went and did a proper route test first to see if the stopwatch glitch was actually faster or not. Ultimately it turns out that the stopwatch glitch ends up saving time due to a number of different reasons. In total, it comes out to saving between 10 - 13 seconds, which is why I decided I wanted to include it for this TAS. One unexpected benefit the stopwatch glitch provides is lag: the game just has so much less slowdown when the enemies aren't flailing about constantly.
The most convenient place to grab a stopwatch is fairly early on, in Stage 4. Once you exit the level though, there is no convenient place to grab a stopwatch in Level 3 and 5, and no stopwatch whatsoever in Level 4. This means that when you carry the stopwatch glitch out of Level 2, you're basically locked into it until the endgame. This ends up creating two radically different routes throughout the game, one where the game plays as normal, and one where time is frozen, which, as mentioned, basically turns the game into a sightseeing tour. It might seem lame that none of the enemies actually pose a challenge to me, but ultimately the timesave was just too large for me to leave on the table. The stopwatch glitch also introduces some unexpected new perks that are highlighted in the stage-by-stage comments below.
Speaking of...

Stage-by-Stage Comments

Stage 1

Completely unchanged to the previous run.

Stage 2

I am more aggressive with grabbing hearts than last time, since I am gonna need pretty much every single heart I can get without losing time. Every enemy can randomly drop a big heart, although the drop chance is infuriatingly low. Thankfully, the RNG is influenced by the full MSX keyboard, and the drop is decided immediately on killing an enemy, so you can just try out random key combinations until one of them yields a big heart. I randomly lose 4 frames at the door to the next stage. I have no idea why.

Stage 3

This is where the stair glitch comes in. Using some strategic wiggling, I can exit the staircase and make it directly to the boss without having to get the white key. Not only is this much faster, but it also skips the door opening animation, which is also a nice bonus. The stair glitch here saves over 10 seconds.

Boss: Vampire Bat

Better understanding of the boss's behavior allowed me to use a faster strategy against it. When the bat appears, it will wait for a certain amount of time and then fly down to a specific position that is determined by your own position on the screen. After that, the bat will wait between 64 and 128 frames, which is determined by RNG, and then swoop down towards you. I specifically manipulate the bat to wait as short as possible, so that it swoops down to me after just two jumps. When the bat begins to move, I make sure to move as close to it as possible so that its own horizontal speed is as slow as possible. This allows me to simply walk away from it and then leisurely whip it down while on the ground. It might seem slow to have to walk away first, but whipping from the ground is significantly faster than having to jump to reach it, and also avoids needing to jump over it to avoid the swoop, which results in a net gain of 27 frames against the boss.
Overall, 672 frames were saved in Level 1.

Stage 4

Another stair glitch is used as a shortcut to get to the key, although the armor knight in this area is a real nuisance. This is the fastest way I found to deal with it. I grab the stopwatch in this level from a convenient treasure chest. There are two keys in the level that I could pick up to open the chest, but the second one is slightly faster. All in all, picking up the stopwatch here loses me 117 frames, but it more than makes up that time later.

Stage 5

I immediately use the stopwatch glitch to start the stage, but I actually cancel it again midway through to unstick an inconveniently placed armor knight, which saves a few frames. It would seem simpler to delay the stopwatch glitch until later, but even in just those few rooms, the lag saved is enough to make it worth it to keep time frozen throughout. Being very aggressive with your stopwatch like this is very beneficial, which is why I want so many hearts for the run. On the door to the next stage, the stopwatch glitch is finally activated for real. We keep it for almost the remainder of the game.

Stage 6

Using the stopwatch glitch prevents an inconvenient ghost from spawning, which allows me to take a more direct route to the key. The blobs do not activate and cannot hurt you if time is frozen. Otherwise, the stage is pretty much unchanged to before.

Boss: Medusa

Using the stopwatch allows me to whip her with no delay, saving 61 frames. The savings from the stopwatch glitch end up canceling out the time spent to get it exactly for this level. All in all, this leaves me with 214 frames gained in this level.

Stage 7

From this point on, time is permanently locked until I find another stopwatch, so enjoy the scenery. You might think I could use a stair glitch to immediately reach the door from where the key is, but there is no screen transition for the ceiling in this room, so we have to go the long way around. The skeletons are placed slightly inconveniently in this level, but I can jump over all but one of them. The real star here though is the lag. Keeping time frozen results in a whopping 119 frame gain here due to less slowdown.

Stage 8

When getting the white key, it is slightly faster to jump to the left than doing a neutral jump or a right jump. Unlike in the previous run, I cannot use a damage boost to reach the door early, so we have to go the long way around once again, which loses 158 frames. The stage is otherwise unchanged to before.

Stage 9

Picking up the invincibility orb in the fifth screen saves lag even though all the enemies are frozen. We once again pick up the holy water to make short work of the mummies. The holy water is activated by pushing Left or Right on the keyboard / joystick while you're in mid-air, which causes you to accidentally toss jugs constantly if you're not careful. It's as awful as it sounds.

Boss: Mummies

I need to jump over the right mummy to get into a position where my holy water can reach it. The holy water does the same damage as your primary weapon, so I needed to pick up the chain whip earlier in the level. It however deals damage much faster than any of your other attacks. There is a new glitch here involving the holy water: it turns out that pausing can affect the damage cycle of the holy water, which allows it to do more damage per jug. Sometimes you can also whip through the damage of the holy water, sometimes your whip damage is simply ignored, which pausing can also affect. Pausing at the wrong time will reduce the damage of your holy water instead. I haven't quite figured out why exactly this happens, so the pausing that you see in the TAS was done by trial and error. This allowed to me to finish the fight with just one single holy water along with some judicious whipping, which is not only faster, but also convenient, since it saves a big heart that I don't need to pick up later.
Taking less damage in this level also means I lose less time to the health recharge after the level.
All in all, Level 3 is done 39 frames faster than before.

Stage 10

Once again, I miss out on a damage boost which loses around 130 frames. This damage boost has been there since my earliest 2010 testrun of the game, so I am quite sad to see it go. Other than this, this stage is a complete snoozefest now, since you don't even have the diving mermen anymore to amuse you. The only other thing to mention about this stage is that I make sure to stand as far right as possible on each platform so I can jump from them earlier. Since you only ever move by 2 pixels at a time, careful timing is required for this to land on the platform on the right pixel.

Stage 11

Nothing to mention about this level.

Stage 12

This stage features a significant new shortcut that is enabled by the stopwatch glitch. Instead of going the long way around, I damage boost off of a white dragon to get above the ceiling and reach Franky immediately, which saves around 368 frames. As far as I know, this boost is entirely stopwatch-glitch exclusive, since the dragon moves out of position before you can reach it otherwise, and there is no stopwatch in this level to freeze it. There is no way to do this boost with only a single damage, since you cannot get deep enough into the dragon's hitbox otherwise.

Boss: Frankenstein

Well, you might not actually be able to see him, but I assure you that's Frankenstein there. Once again, I use the holy water and pausing to efficiently dispatch him while he is completely helpless. I still end the fight slightly slower overall because the health recharge takes longer due to the earlier damage boost. Overall, 254 frames were saved in this level, and the stopwatch glitch ends up being faster up to this point by 293 frames.

Stage 13

Since I still have the stopwatch glitch active, I do not need to grab the stopwatch from the merchant in this level, which saves around 396 frames on its own. It also frees up a bunch of hearts for other uses. Instead, I grab the holy water from another merchant for 30 hearts, which will come in very handy for efficiently removing any axe armors in my way. I make sure to manipulate a heart drop from every single enemy I kill to offset the heart usage from the holy water.

Stage 14

Using the holy water allows me to grab the white key in a much slicker way, which saves around 24 frames. There is an alternative path in this level (dropping right after going down the staircase) which would allow me to grab the boots, but it's slower overall by 48 frames. I pretty much always need to jump over an axe knight to allow enough time for the holy water to kill it, which loses me 2 frames each time. It seems there is just barely not enough time for the water to kill a knight in time to just walk through it. It is still much better than having to use the whip against them.

Stage 15

Another stair glitch is used here to get to the key, which avoids a huge detour. Unfortunately, since I cannot carry a stair glitch through a screen transition, I first need to exit the staircase at the top before starting the stair glitch. It would save around 2 - 3 seconds if this wasn't necessary. I use the holy water to grab the invincibility ring, which allows me to kill an axe knight without losing any time. Overall, 806 frames were saved in this stage, mostly from the stair glitch.

Boss: Death

Once again, Death is completely helpless when time is frozen. He alone makes getting the holy water worth it. Overall, 211 frames are saved on this fight, and the level is done 1329 frames faster overall.

Stage 16

Once again, completely unchanged to the previous run. I jump over a treasure chest to keep a key for later.

Stage 17

This stage has 2 keys. If you remember earlier TASes of this game, you might remember that you normally need to take a huge detour to get the white key, since there are blocks in the way that would trap you in this location otherwise. You first need to clear the blocks from the other side, or get a ranged weapon, since otherwise, you can only exit the area by dying. However, using the stair glitch allows me to leave without doing any of this crap. Somewhat miraculously, the screen transition is enabled in the room where I do the stair glitch, even though there are no stairs leading into the room above, allowing me to simply climb out. The stair glitch also conveniently dumps me near the stopwatch, which I need to unfreeze Dracula later.
I unfreeze time immediately, since whipping the axe armors out of the way would be way too slow otherwise. Strategic usage of the stopwatch allows me to get past the next axe armors quicker. As mentioned earlier, since it's generally quite fast to get big hearts, it's almost always worth it to use the stopwatch even for very small things, like jumping over an axe armor without taking damage from it.
Once again, I get the knife from the merchant in this level. For some reason, interacting with it causes a bunch of lag. I therefore kill the fleamen in this room first to avoid some of the lag. This also allows me to force 2 big heart drops from them. For some reason, getting the second heart to spawn is unreally difficult. Maybe one "slot" that could contain a heart drop is already occupied, I am not sure about this., While the merchant is active, I avoid pressing Up on the joystick, as this causes lag. Not all lag can be avoided however.
I do not need to get the white key in the upper part of the level, since I already grabbed the other key earlier. This saves only around 50 frames, give or take, but it's still an improvement.
I avoid damage from the final fleaman on this level, which saves 2 frames. This was already present in the previous TAS, however, it turns out that this only works some of the time. The reason for this is that the fleaman will only become active a random amount of time after the screen loads, which is determined by RNG when you enter the screen. Depending on when he activates, some of his jumping patterns can simply be impossible to get past. I therefore deliberately manipulate him to wait for the right amount of time so that I could sneak past him undisturbed.

Stage 18

I take a different, more direct, route in this level than before. Using the knife generally always causes between 2 and 4 frames of lag, so I use the knife as sparingly as possible. The only exception to this is when time is frozen, which allows me to get a big heart without losing time.
There's two damage boosts from fleamen on the way. The first fleaman has a wide range of patterns of how he can act. A fleaman will always attempt to jump towards your direction. He can either do a small jump or a large jump, which is influenced by RNG. It is necessary to manipulate the fleaman to be at the right position at the right time when you need to do the damage boost. For some reason, holding a diagonal direction on the arrow keys on the keyboard and pushing multiple buttons at the same time is very good at forcing him to do a large jump. I do not quite understand why. Manipulating the fleaman took some work, but ultimately I managed.
For the next damage boost, I simply use the stopwatch to freeze the fleaman in place while it is already at the right position, and then casually jump towards him to boost over. I force him to use a jumping pattern that gets him to the right spot early, so I can use the stopwatch as soon as possible, as this avoids some lag.
I pick up the boots in this stage again. I determined that they should save maybe some 13 frames throughout the remainder of the stage, as almost the entire rest is spent climbing stairs, but hey, it's still a timesave.
I use a stair glitch to get from the key to the door quickly. I kill a hunchback with a knife to get a big heart from it. This is technically suboptimal, as it's not necessary to kill the hunchback, and the knife causes some lag, so I should've gotten the heart earlier, but I wasn't gonna go back to redo this stage and the previous one. All in all, this loses me between 4 - 6 frames.
Overall, the new route still ends up saving a sweet 976 frames, so I'm not complaining too much.

Boss: Dracula

Dracula's first phase is pretty much entirely unchanged to before. I need to unfreeze time at some point to get him to appear, but once his hurtbox is active, I can once again just stick him in place and spam knives into him in a way that would make Dio blush.
It would be better if I could use the stopwatch just once, as I have to ride out the second use before his second phase appears, but I couldn't find a way to dispatch him in just 1 cycle. You're just 2 knives short. It seems Dracula's second form will only appear after all of his debris have left the screen, but there seems to be no way to manipulate them, so I'm stuck with this pattern.
I took two additional big hearts with me for Dracula's second phase for 3 stopwatch uses total, so I don't have to deal with his bats at all, which saves another 60 frames. The game is just always better when it's not bothering you. With the final knife throw, input ends, and the game is over yet again.

Closing Comments

And that was the fourth iteration of Vampire Killer. I am quite happy with some of the new strategies I found, but I have to admit that the stopwatch glitch seriously dampens entertainment in a lot of places. As mentioned earlier, the stopwatch glitch basically creates two radically different versions of the run. However, I am against creating a separate branch for this movie, as you still go through the same levels in largely the same way as before. The previous publication is at this point also severely outdated now and should be obsoleted. I also don't have any new findings that would've been unique to the non-stopwatch glitch route, which means a new regular run would be largely unchanged to before, save for what you can see in this TAS.
Despite this, there's still a bunch of loose ends that are worth investigating. I do not think this game is maxed out by a long shot. The stopwatch glitch saves "only" 13 seconds, so any new tech that would be exclusive to the regular route could put that back into the spotlight again. If you are interested in looking at this game, here is some potential areas that might turn out fruitful:
  • General route and strategy improvements. E.g., you might possibly grab a shield in Stage 17 to block Dracula's fireballs, which could allow you to finish his first phase with only one stopwatch usage. I didn't try this out, but it might be worthwhile.
  • Find a faster way to activate the stair glitch
  • Find a way to carry a stair glitch through screen transitions
  • Find a shortcut to the door in Stage 8 while time is frozen
  • Find a shortcut to the key in Stage 10
  • Find a way to carry items through level changes
Furthermore, if you try hard enough, you might still be able to save a few frames from better lag and optimization in various places. As mentioned above, I also lose 6 frames from having to grab an extra big heart. I should've picked up more small hearts to max out my heart count before getting to the merchant in Stage 13, which would've allowed me to avoid this time loss.
Still, I hope that you enjoy watching the run. It was unexpectedly enjoyable and energizing to make, and made me rethink if I am really as "retired" from this hobby as I thought I was. Special thanks naturally go out once again to the openMSX crew, in particular Quibus, Vampier and wouterv for answering my (sometimes dumb) questions. Their work on openMSX has been phenomenal. The emulator now features a GUI that made working with it a lot easier. I would also like to thank Burb and AgentWyvern for their findings on this game and their support. They did a huge part to (re-)vitalize the Vampire Killer speedrunning scene, and without them, I probably wouldn't have been making this run. I also cross-referenced their routes heavily while making this run to make sure I was on the right track. Another huge shoutout goes to msxsolutions, who's map of the game I've referenced for decades now for routing. Finally, thank you for making it this far, and, as usual, if you have any questions, I'll be happy to answer.
-scrm
Last Edited by scrimpeh 2 days ago
Page History Latest diff List referrers