TASVideos

Tool-assisted game movies
When human skills are just not enough

Game Information

NES Castlevania

Total movies: 2


[Tier: Moons]NES Castlevania (USA PRG1) "pacifist, minimalist" in 12:25.29 by Challenger & Grincevent.
BizHawk Movie (.bk2) (date: 2018-12-25)
MKV file via BitTorrent (Modern HQ) (size: 20.64 MB, length: 13:53)
MP4 file via BitTorrent (Compatibility) (size: 33.52 MB, length: 13:53)
Mirror archive.org (MKV Modern HQ)
Mirror archive.org (MP4 Compatibility)
Watch on (www.youtube.com)
Submission #6200 — Author's comments
Discuss this movie
Obsoletes movie #2104 (12:53.41)
Rating: 7.8 (3 votes)
View Publication
- Demonstration
- Pacifist version
- Uses death to save time
- Takes damage to save time
- Heavy luck manipulation
- Genre: Action
- Genre: Platform
Simon is taking another shot at this castle, but feeling horrible for the destruction he caused last time, he is now trying to respect Dracula's property and leave the place untouched (even if his intention is to kill the count).

As a minimalist variation of a pacifist goal, this movie does not contain any destruction in the levels: candles and walls are left intact, items stay untouched, and no enemy is harmed — with the exception of the bosses, who are killed mercilessly with the help of the "critical hit" glitch.

With Simon sneaking by most enemies with no subweapons and only his leather whip, this ends up being quite a stealthy run.

Challenger and Grincevent improve the previous run by 28.12 seconds, thanks to better optimisation and better manipulation. Please read the authors' comments for more details.


[Tier: Stars][Fastest Completion]NES Castlevania (USA PRG1) in 11:15.11 by Challenger & Morrison.
BizHawk Movie (.bk2) (date: 2018-09-05)
MKV file via BitTorrent (Modern HQ) (size: 17.71 MB, length: 12:46)
MP4 file via BitTorrent (Compatibility) (size: 30.65 MB, length: 12:46)
Mirror archive.org (MKV Modern HQ)
Mirror archive.org (MP4 Compatibility)
Watch on (www.youtube.com)
Submission #6083 — Author's comments
Discuss this movie
Obsoletes movie #3492 (11:19.03)
Rating: 9.3 (13 votes)
View Publication
- Takes damage to save time
- Heavy glitch abuse
- Heavy luck manipulation
- Genre: Action
- Genre: Platform
The original Castlevania is set in the year 1691. Simon Belmont must fight his way through the castle and destroy Count Dracula.

Challenger and Morrison improve the previous TAS by 3.92 seconds, thanks to several new skips, different strategies for 2 bosses, and a better turnaround trick. Please read the authors' comments for more details.

The MSX version has been TASed as well!

There is also a run of this game which destroys as little as possible.

Total movies: 10


[Tier: Moons]NES Castlevania (USA PRG1) "pacifist, minimalist" in 12:53.41 by Grincevent.
FCEUX movie (.fm2) (date: 2012-09-20)
MKV file via BitTorrent (size: 19.39 MB, length: 14:20)
MKV file via BitTorrent (Modern HQ) (size: 20.17 MB, length: 14:20)
Mirror archive.org
Mirror archive.org (MKV Modern HQ)
Watch on (www.youtube.com)
Submission #3702 — Author's comments
Discuss this movie
Rating: 7.5 (24.5 votes)
View Publication
- Demonstration
- Pacifist version
- Uses death to save time
- Takes damage to save time
- Genre: Action
- Genre: Platform

This movie has been obsoleted!

Click here to see the movie that obsoleted it.
Simon is taking another shot at this castle, but feeling horrible for the destruction he caused last time, he is now trying to respect Dracula's property and leave the place untouched (even if his intention is to kill the count).

As a minimalist variation of a pacifist goal, this movie does not contain any destruction in the levels: candles and walls are left intact, items stay untouched, and no enemy is harmed — with the exception of the bosses, who are killed mercilessly with the help of the "critical hit" glitch.

With Simon sneaking by most enemies with no subweapons and only his leather whip, this ends up being quite a stealthy run.


[Tier: Stars]NES Castlevania (USA PRG1) in 11:34.12 by Morrison.
FCEU movie (.fcm) (date: 2006-10-09)
MP4 file via BitTorrent (size: 21.92 MB, length: 13:02)
Mirror www.archive.org
Watch on (www.youtube.com)
Submission #1305 — Author's comments
Discuss this movie
Obsoletes movie #524 (11:41.17)
Rating: 8.1 (29 votes)
View Publication
- Takes damage to save time
- Heavy luck manipulation
- Genre: Action
- Genre: Platform

This movie has been obsoleted!

Click here to see the movie that obsoleted it.
The original Castlevania is set in the year 1691. Simon Belmont must fight his way through the castle and destroy Count Dracula.

Morrison's Castlevania TAS is about 4 seconds faster than Phil's previous version. Like the precedent movie, this movie uses several techniques for speed:

  • (Ab)using monsters as a platform for shortcuts
  • Optimized usage of weapons
  • Luck abuse for items (Ⅱ and Ⅲ)
  • (Ab)using the main character as a critical hit weapon at bosses
  • Using bottles to restrain and pass through enemies
And standard optimizations such as not using stairs when jumping is possible.

The improvement consists mostly of new weapon strategy, and of systematic utilization of the multiple-targets-multiple-damage glitch, which enables enemies to receive damage at a much faster rate than is normal ― even to share the pain of the player character.

Note: Although this run's time is listed as 7 seconds faster than the previous time, it is partly because of a way to end the input a few seconds earlier than before as opposed to reducing the length of the movie as a whole. Thus, the movie file is 7 seconds shorter, while the encodes are only 4 seconds shorter.


[Tier: Moons]NES Castlevania (USA PRG1) in 12:41.25 by Bisqwit.
Famtasia movie (.fmv) (date: 2004-01-15)
MP4 file via BitTorrent (size: 15.44 MB, length: 14:06)
Mirror www.archive.org
Watch on (www.youtube.com)
Submission #1273 — Author's comments
Discuss this movie
Obsoletes movie #674 (13:15.55)
Not rated
View Publication
- Takes damage to save time
- Genre: Action
- Genre: Platform

This movie has been obsoleted!

Click here to see the movie that obsoleted it.
My sixth attempt on Castlevania.
I'm quite satisfied with this video, although it isn't exactly as fast as the fifth version which was damaged.
It's faster than the fourth version, however.
The two most useful tricks in this game are definitely 1) using monsters to throw you around and 2) using bottles to walk safely past enemies.

[Tier: Moons]NES Castlevania (USA PRG1) in 12:09.22 by Bisqwit.
Famtasia movie (.fmv) (date: 2004-04-03)
MKV file via BitTorrent (Modern HQ) (size: 18.67 MB, length: 13:33)
MP4 file via BitTorrent (Compatibility) (size: 28.26 MB, length: 13:33)
Mirror archive.org (MKV Modern HQ)
Mirror archive.org (MP4 Compatibility)
Watch on (www.youtube.com)
Submission #1238 — Author's comments
Discuss this movie
Obsoletes movie #654 (12:23.1)
Not rated
View Publication
- Takes damage to save time
- Genre: Action
- Genre: Platform

This movie has been obsoleted!

Click here to see the movie that obsoleted it.
This is a historic movie, submitted and obsoleted before the creation of the database-based (and wiki-based) site engine, before July 2004.

It was inserted to the database in a history revival project by Bisqwit in autumn 2006.

Bisqwit's 8th attempt, about 14 seconds faster than the previous. This one shows greater planning with heart usage such as collecting hearts to kill the level 1 boss without needing a whip upgrade. In addition, this one manages to use wall glitching to save time.


[Tier: Moons]NES Castlevania (USA PRG1) in 12:23.1 by Bisqwit.
Famtasia movie (.fmv) (date: 2004-02-28)
MP4 file via BitTorrent (size: 16.51 MB, length: 13:48)
Mirror www.archive.org
Watch on (www.youtube.com)
Submission #1256 — Author's comments
Discuss this movie
Obsoletes movie #672 (12:41.25)
Not rated
View Publication
- Takes damage to save time
- Genre: Action
- Genre: Platform

This movie has been obsoleted!

Click here to see the movie that obsoleted it.
This is a historic movie, submitted and obsoleted before the creation of the database-based (and wiki-based) site engine, before July 2004.

It was inserted to the database in a history revival project by Bisqwit in autumn 2006.

Bisqwit's 7th attempt, about 18 seconds faster than the previous. Improvements come from better precision and a few optimizations (such as, in level 1, getting the whip upgrade while waiting for the bat instead of earlier).


[Tier: Moons]NES Castlevania (USA PRG1) in 13:15.55 by Bisqwit.
Famtasia movie (.fmv) (date: 2004-01-10)
MP4 file via BitTorrent (size: 19.07 MB, length: 14:40)
Mirror www.archive.org
Watch on (aktanusa.000webhostapp.com)
Watch on (www.youtube.com)
Submission #1275 — Author's comments
Discuss this movie
Not rated
View Publication
- Takes damage to save time
- Genre: Action
- Genre: Platform

This movie has been obsoleted!

Click here to see the movie that obsoleted it.
This is a historic movie, submitted and obsoleted before the creation of the database-based (and wiki-based) site engine, before July 2004.

It was inserted to the database in a history revival project by Bisqwit in autumn 2006.

This marks the earliest Castlevania publication on record (but Bisqwit's 4th attempt). This movie was one of the first tool-assisted speedruns to use damage boosting as a shortcut.


[Tier: Stars][Fastest Completion]NES Castlevania (USA PRG1) in 11:19.03 by Challenger.
BizHawk Movie (.bk2) (date: 2017-08-12)
MKV file via BitTorrent (Modern HQ) (size: 17.57 MB, length: 12:50)
MP4 file via BitTorrent (Compatibility) (size: 27.83 MB, length: 12:50)
Mirror archive.org (MKV Modern HQ)
Mirror archive.org (MP4 Compatibility)
Watch on (www.youtube.com)
Submission #5623 — Author's comments
Discuss this movie
Obsoletes movie #901 (11:20.5)
Rating: 8.9 (12 votes)
View Publication
- Takes damage to save time
- Heavy glitch abuse
- Heavy luck manipulation
- Genre: Action
- Genre: Platform
Award - NES TAS of 2017

This movie has been obsoleted!

Click here to see the movie that obsoleted it.
The original Castlevania is set in the year 1691. Simon Belmont must fight his way through the castle and destroy Count Dracula.

Challenger improves one of the most well optimised runs on this site by 21 frames (roughly 0.35 seconds). However, due to the FPS difference between FCE Ultra (flat 60 FPS) and BizHawk (roughly 60.098 FPS), the improvement appears to be 1.47 seconds.

The MSX version has been TASed as well!

There is also a run of this game which destroys as little as possible.


[Tier: Moons]NES Castlevania (USA PRG1) in 11:43.13 by Phil & Genisto.
Famtasia movie (.fmv) (date: 2004-04-27)
MKV file via BitTorrent (size: 16.66 MB, length: 13:10)
MKV file via BitTorrent (Modern HQ) (size: 17.05 MB, length: 13:10)
Mirror archive.org
Mirror archive.org (MKV Modern HQ)
Watch on (www.youtube.com)
Submission #133 — Author's comments
Discuss this movie
Obsoletes movie #636 (12:09.22)
Not rated
View Publication
- Takes damage to save time
- Heavy luck manipulation
- Genre: Action
- Genre: Platform

This movie has been obsoleted!

Click here to see the movie that obsoleted it.
This is Genisto's and Phil's joint effort at Castlevania - 26 seconds faster than the previous version by Bisqwit. Also features a higher final score.

This movie uses several techniques for speed:

  • (Ab)using monsters as a platform for shortcuts
  • Optimized usage of weapons
  • Luck abuse for items (Ⅱ and Ⅲ) ― nearly impossible to duplicate
  • (Ab)using the main character as a critical hit weapon at bosses
  • Using bottles to restrain and pass through enemies
And standard optimizations such as not using stairs when jumping is possible.

[Tier: Stars]NES Castlevania (USA PRG1) in 11:20.5 by Phil & Morrison.
FCEU movie (.fcm) (date: 2007-06-26)
MP4 file via BitTorrent (size: 14.99 MB, length: 12:51)
MP4 file via BitTorrent (Modern HQ) (size: 15.74 MB, length: 12:51)
Mirror archive.org
Mirror archive.org (MP4 Modern HQ)
Watch on (www.dailymotion.com)
Watch on (www.youtube.com)
Submission #1609 — Author's comments
Discuss this movie
Obsoletes movie #694 (11:34.12)
Rating: 8.4 (53.5 votes)
View Publication
- Takes damage to save time
- Heavy glitch abuse
- Heavy luck manipulation
- Genre: Action
- Genre: Platform

This movie has been obsoleted!

Click here to see the movie that obsoleted it.
The original Castlevania is set in the year 1691. Simon Belmont must fight his way through the castle and destroy Count Dracula.

This TAS is about 13.6 seconds faster than the previous version by the coauthor of this movie, Morrison.

In this joint effort by Phil and Morrison, thorough optimizations are carried out at all levels of magnitude in order to get the maximum completion speed as well as lots of score points in the process.

The MSX version has been TASed as well!

There is also a run of this game which destroys as little as possible.


[Tier: Stars]NES Castlevania (Konami Classic) in 11:41.17 by Phil.
FCEU movie (.fcm) (date: 2006-04-11)
MP4 file via BitTorrent (size: 16.62 MB, length: 13:10)
Mirror www.archive.org
Watch on (www.youtube.com)
Submission #1050 — Author's comments
Discuss this movie
Obsoletes movie #3 (11:43.13)
Rating: 8.3 (32 votes)
View Publication
- Takes damage to save time
- Heavy luck manipulation
- Genre: Action
- Genre: Platform

This movie has been obsoleted!

Click here to see the movie that obsoleted it.
Phil Côté's new Castlevania movie ― about 2 seconds faster than the previous version by Phil and Genisto. Also features a higher final score.

Like the precedent movie, this movie uses several techniques for speed:

  • (Ab)using monsters as a platform for shortcuts
  • Optimized usage of weapons
  • Luck abuse for items (Ⅱ and Ⅲ) ― nearly impossible to duplicate
  • (Ab)using the main character as a critical hit weapon at bosses
  • Using bottles to restrain and pass through enemies
And standard optimizations such as not using stairs when jumping is possible.
#51506129336853324 - CV Pacifist - Stages 13-15 finished
castlevania-pacifist-wip4.bk2 (14.8kB bk2 movie [NES])
Uploaded 2018-11-28 13:49:14 by Challenger (107 files)
For NES Castlevania (21 files)
In 12:36.6 [45471 frames], 67421 rerecords)
2916 views, 178 downloads
1009 frames ahead. Next stages will be worked.
Info Download

#51399407343577960 - Pacifist - Improvement in progress
Castlevania pacifist (more progress).bk2 (14.9kB bk2 movie [NES])
Uploaded 2018-11-23 18:28:13 by Challenger (107 files)
For NES Castlevania (21 files)
In 12:40.96 [45733 frames], 53509 rerecords)
2982 views, 177 downloads
The previous 2 WIPs were uploaded on another location. So, this is the third WIP of Castlevania pacifist run.

Another stage done + half of stage 13.

NOTE: The movie is actually the published run, but imported from FCEUX to BizHawk.

Info Download

#49298960134876905 - Castlevania NES 232 frames
Castlevania232frames.bk2 (13.3kB bk2 movie [NES])
Uploaded 2018-08-21 04:12:27 by Morrison (11 files)
For NES Castlevania (21 files)
In 11:15.17 [40577 frames], 83464 rerecords)
3308 views, 218 downloads
Maybe done?
Info Download

#49278642043626295 - NES Castlevania 231 frames
Castlevaniaver21.bk2 (13.3kB bk2 movie [NES])
Uploaded 2018-08-20 06:14:48 by Morrison (11 files)
For NES Castlevania (21 files)
In 11:15.19 [40578 frames], 83400 rerecords)
3316 views, 214 downloads
Changed manipulation for Dracula--didn't need to waste as many frames or pause this time. Also has extra heart at the end (hmm)
Info Download

#49276154625818456 - NES Castlevania 226 frames
Version20.bk2 (13.3kB bk2 movie [NES])
Uploaded 2018-08-20 03:33:30 by Morrison (11 files)
For NES Castlevania (21 files)
In 11:15.27 [40583 frames], 83032 rerecords)
3303 views, 217 downloads
This file completes the game: 40583 frames to end of input. Very close to finishing the project.
Info Download

#48943955320759845 - reduced some lag
Castlevania185frames.bk2 (13.1kB bk2 movie [NES])
Uploaded 2018-08-05 04:30:05 by Morrison (11 files)
For NES Castlevania (21 files)
In 11:15.95 [40624 frames], 74895 rerecords)
3407 views, 230 downloads
minor edit. wasn't sure if there was a way to replace the previous upload in an edit?
Info Download

#48942539158471145 - Castlevania WIP 183 frames
Castlevania183frames.bk2 (13.0kB bk2 movie [NES])
Uploaded 2018-08-05 02:58:15 by Morrison (11 files)
For NES Castlevania (21 files)
In 11:15.99 [40626 frames], 74819 rerecords)
3401 views, 216 downloads
Did some finagling with Stage 17 and Dracula for some more frames and lag reduction during the fight. I think a lag frame was added to a transition sequence (of course!)
Info Download

#48922537085434246 - WIP NES CV 167 frames faster, complete movie
Castlevania167frames.bk2 (13.1kB bk2 movie [NES])
Uploaded 2018-08-04 05:21:06 by Morrison (11 files)
For NES Castlevania (21 files)
In 11:16.25 [40642 frames], 73673 rerecords)
3397 views, 224 downloads
new WIP, 11:16.25 Project is coming to a close.
Info Download

#48911263717458615 - More optimizations (but always affect RNG)
Castlevania145frames.bk2 (13.1kB bk2 movie [NES])
Uploaded 2018-08-03 17:10:01 by Challenger (107 files)
For NES Castlevania (21 files)
In 11:16.62 [40664 frames], 72938 rerecords)
3746 views, 214 downloads
Improvements: 3 frames saved stage 7; optimized 1 frame on the stairs of stage 8; 5 frames saved on the second-to-last room of stage 17, and the remaining were from the stage 18 (dracula).

Not final version yet.

Info Download

#48832714843949835 - It's synched, but lost some frames. Will try to fix it tomorrow.
Castlevania123frames.bk2 (13.4kB bk2 movie [NES])
Uploaded 2018-07-31 04:16:03 by Morrison (11 files)
For NES Castlevania (21 files)
In 11:16.99 [40686 frames], 51807 rerecords)
3492 views, 223 downloads
NES Castlevania WIP (completes game)
Info Download

#48809076741605128 - Castlevania Dracula New Strat, Rough Draft
NewDracRoughDraft.bk2 (13.4kB bk2 movie [NES])
Uploaded 2018-07-30 02:43:06 by Morrison (11 files)
For NES Castlevania (21 files)
In 11:17.72 [40730 frames], 45012 rerecords)
3458 views, 219 downloads
whoooo. Check out stage 17 and 18, it's quite a bit different than the old strat and setup. First draft saves 26 frames and still includes the "end input early" finale.
Info Download

#48795983927083076 - Finally sub-11:18, but problems with RNG always result to desync
Castlevania101frames.bk2 (13.5kB bk2 movie [NES])
Uploaded 2018-07-29 12:34:01 by Challenger (107 files)
For NES Castlevania (21 files)
In 11:17.35 [40708 frames], 50935 rerecords)
3778 views, 206 downloads
103 frames ahead to the published run, but 2 frames were lost during the stair transition for some reason (I also tried to adjust the input, but wasn't able).

Desyncs on stage 17, thanks to different RNG.

Info Download

#48744833136143064 - Castlevania WIP 53 frames saved
Castlevania53Frames.bk2 (13.3kB bk2 movie [NES])
Uploaded 2018-07-27 05:16:51 by Morrison (11 files)
For NES Castlevania (21 files)
In 11:18.15 [40756 frames], 42262 rerecords)
3496 views, 218 downloads
I had lost a few frames in editing/splicing, but carefully went through and got them back. May have missed some score opportunities though. Next I want to take a closer look at the Dracula fight. Edit: This file completes the game.
Info Download

#48733956219107438 - One more improvement for mummies fight!
CVWIP51frames.bk2 (13.3kB bk2 movie [NES])
Uploaded 2018-07-26 17:31:28 by Challenger (107 files)
For NES Castlevania (21 files)
In 11:18.18 [40758 frames], 41699 rerecords)
3778 views, 220 downloads
I tried to optimize even more, but only saved 4 frames than the previous WIP.

EDIT: Forgot to mention that desyncs at the start of stage 13 (due to different RNG, again).

Info Download

#48694056201750415 - I'm a idiot. I didn't try hard enough at the time when I worked on CV
CVWIP47frames.bk2 (13.1kB bk2 movie [NES])
Uploaded 2018-07-24 22:23:55 by Challenger (107 files)
For NES Castlevania (21 files)
In 11:18.25 [40762 frames], 39342 rerecords)
3850 views, 206 downloads
More frames saved but desyncs on stage 13 (different manupulation).
Info Download

#48685065976630823 - CV WIP, lost 2 frames somewhere
CVWIP40frames.bk2 (12.9kB bk2 movie [NES])
Uploaded 2018-07-24 12:40:54 by Morrison (11 files)
For NES Castlevania (21 files)
In 11:18.37 [40769 frames], 35182 rerecords)
3519 views, 229 downloads
CV WIP spliced together. Still need to go back and edit.
Info Download

#48651723552746748 - Frame rule sucks but 16 frames saved
Stage14 (v2).bk2 (9.85kB bk2 movie [NES])
Uploaded 2018-07-23 00:38:37 by Challenger (107 files)
For NES Castlevania (21 files)
In 08:21.81 [30158 frames], 34374 rerecords)
3890 views, 203 downloads
Info Download

#48632116644637571 - Stage13-14 edits
Stage14.bk2 (9.84kB bk2 movie [NES])
Uploaded 2018-07-22 03:27:05 by Morrison (11 files)
For NES Castlevania (21 files)
In 08:22.07 [30174 frames], 33163 rerecords)
3564 views, 232 downloads
WIP CV
Info Download

#40724705976887576 - Castlevania NES TAS (w/ high score)
Castlevania TAS.bk2 (13.0kB bk2 movie [NES])
Uploaded 2017-07-31 00:44:50 by Challenger (107 files)
For NES Castlevania (21 files)
In 11:19.2 [40819 frames], 26165 rerecords)
5749 views, 308 downloads
11 frames saved at the published run (and more 2720 score points).
Info Download

#38216693731293348 - CV1, Death -30 frames
death.fm2 (29.9kB fm2 movie [NES])
Uploaded 2017-04-09 01:58:08 by McHazard (4 files)
For NES Castlevania (21 files)
In 00:10.91 [656 frames], 0 rerecords)
5375 views, 487 downloads

FM2 file begins from a savestate

Savestate is altered from frame 33357 of the published TAS. Once again I've edited it for demonstration purposes, changing the subweapon (address 015B from 11 to 13) and giving myself a few more hearts (address 0071 from 2 to 5).

As expected the axes make quick work of Death, saving 30 frames. This isn't fully optimized yet, it's just the first time I was able to get both of the nearby scythes in position to get extra damage. Getting them in the right place cost some time, and I had to pause a couple times to keep Death from flying off to soon, so there's still room for improvement here.

Info Download

#38057086532184992 - Stage 12, -8 frames
axes_are_faster.fm2 (63.1kB fm2 movie [NES])
Uploaded 2017-04-01 21:27:28 by McHazard (4 files)
For NES Castlevania (21 files)
In 00:34.74 [2088 frames], 0 rerecords)
5427 views, 496 downloads

FM2 file begins from a savestate

Note: This movie starts from a hacked savestate for demonstration purposes. Specifically, frame 24512 of the published TAS, but with the subweapon changed (address 015B from 11 to 13).

The April 1 TAS I had planned is going to be late. In the meantime, I've found a few frames in Castlevania. Okay yeah it's real, but "axes are faster" is enough of a joke on its own.

Just like crosses, which aren't available in this stage, axes can multi-hit enemies when passing through two of them. They can't be used as effectively because of their weird arc, but they still help a little because Frankenstein has that hunchback. Who also spits fire.

I extend the movie at the end to regain the holy water in stage 13. If the axes stop being useful here--and I'm not convinced they will--this should keep them from costing any of those frames.

Info Download

Damage dealing tricks

Adding own damage into enemy damage

Stub explanation: In some circumstances, taking damage at the same time an enemy takes damage may cause the own damage to be added to the enemy's damage, greatly increasing the rate at which the enemy approaches death.

TODO: Explain this trick.

Shortcut tricks

Bumping from enemies to reach upper platforms

A brief description of what happens when Simon takes damage:

When Simon takes damage, he is knocked up into the air and pushed either left or right of his previous position (assuming there is no ceiling immediately above him). For example, if Simon suffers a blow from his left side, he will be knocked to the right of his former position, first rising up in the air and later falling back down towards the ground. The jump peaks at 14 Y coordinates higher than his original position.

Abusing this feature:

The above holds true when Simon is already in the air. Experienced players can use this to perform a double jump. Here is an example: Simon jumps right. While in the air, Simon is hit by a monster on his left side. Simon now launches to the right, first rising in the air followed by falling towards the ground. This can be abused to reach platforms that are out of Simon's normal horizontal jumping range. The first step is jumping towards a desired platform, hitting an enemy during the jump that causes Simon to get bumped further up and to the left or right. In many of the Castlevania movies on this site, this trick is used with the bats in stage 2 in order to avoid the scene where Simon must fight or dodge the fishmen.









This trick can also be used to ascend to platforms that are exactly 3 "blocks" above a lower platform (example: Stage 4 after climbing stairs, Stage 7 before climbing stairs, stage 12 before Frankenstein's monster, etc). First, wait or manipulate an enemy to approach a desired platform 3 blocks above the current platform. Second, time a jump so that Simon is partially inside the platform above him when damage is taken. Simon's reaction to damage causes him to be launched high enough to pass through the horizontal threshold of the higher platform. Once a certain height is gained, the game is programmed to push Simon up and through the higher platform instead of falling back down to the first platform. With practice, this shortcut can be performed quite easily in real time.

TODO: Revise the current explanation of this trick (perhaps copy explanation from another tricks page).


Simon's speed and simple tricks to save time

Basic speed

While walking, jumping or being knocked away by damage, Simon has the same horizontal speed: one pixel per frame. But when pushed by taking damage, you will lose time at the moment you are hit and after landing, so you'd better walk or jump, obviously. Using stairs is two times slower than walking or jumping, and it is better to jump off a platform than just letting Simon fall from it, which is also slower.

An interesting note about moving platforms, found in levels such as 4, 5 and 10: when walking on them, their movement doesn't affect Simon's walking speed, even if they're moving in the opposite direction. In stage 10, you can't avoid waiting on some of these, and you'll notice that their movement speed is quite erratic.

Landing from a high jump

If a jump causes you to land too far below your starting point, Simon will crouch and be unable to move for a short time. If you use the whip during your jump, and time it so that the attack animation ends on the same frame that you touch the ground, you will regain control immediately.









Enemy behavior and how to manipulate them

Bat and medusa head

They can appear from the left or right edge of the screen, depending on the situation. Usually, Simon's orientation seems to be the main factor in which side they come from. You can have total control of the height at which they spawn, too: it depends entirely on Simon's own Y position.
















Special case: bats hanging from walls.
Only found in stages 4 and 6, they wait for you to approach before attacking. The character must be at a close enough Y position to trigger them. It is really apparent at the very beginning of stage 4, where you can walk past the bat, under it, and climb upstairs without it noticing you. These hanging bats can be manipulated to a certain extent. The player may make a well timed jump to delay or provoke (in stage 6, for example) them.

Note: these tricks tend to point at some kind of horizontal corridor with a fixed height in which the hanging bat can detect the player. Jumping to delay it would then mean going above this corridor to avoid being seen too soon, for example. This is just speculation based on observation.











Hunchback

They only have two moves: a short jump and a high jump. The short jump is their fastest way of moving; Simon can't outrun them by just walking away. If you are being chased by hunchbacks, you might want them to perform their high jumps so they can't catch you, because this move is slower than your walking speed. But how can they be manipulated?

Manipulating the hunchback:
It's one of the easiest enemies to control, if you know how it works. Simply put, they just check Simon's orientation at one specific frame to chose which kind of jump to do: they make a high jump if you look at them on the seventh frame after they land. Let's say that a hunchback is following you while you are walking and you want to continue your progression without losing time dealing with him, here is a step by step guide on how to make him do a high jump:

  • advance until the hunchback lands from his last jump
  • from this frame (when his feet are on the ground), walk away from it for 6 frames
  • now hold the opposite direction on the controller and advance one frame
  • resume walking, and it will do a high jump.






Note that there is a limit to this trick. The hunchbacks can only be manipulated if they are close to you. When too far, they will always make small jumps. Be aware of the lag as well - don't count lag frames toward the six frames.

There is an useful technique, derived from this one. If there are more than one hunchback after you, or if you want to travel long distances while being chased, you can reduce the number of frames lost by turning back each time you want to manipulate the enemy(ies). Just jump backwards right after turning back. You can even continue jumping repeatedly that way. Not a single frame will be wasted between jumps and Simon will face the hunchback(s) all the way to his destination.

List of addresses

See below for an individual explanation on each of them.

Address Description
0045 Simon's HitPoints
01A9 Boss HitPoints
058B Left mummy's HitPoints
058C Right mummy's HitPoints
0040 Your x position in the level
0354
or 003F
Your y position
0568 Whip timer
0488 Jump timer
005B Invincibility timer (after taking damage)


HitPoints

Self explanatory. It starts at 64 and the corresponding character or boss dies when it drops to 0.

The two mummies share the "classic" boss HP meter (01A9) but they each have their own address which starts at 32.


x and y position

They indicate where you are located in the level.

There are two y addresses here. They are really similar, the only differnce is that the second one (003F) updates one frame sooner. The higher the value, the lower you are on the screen.

TODO: maybe only keep one of the two y addresses.


Timers

These addresses are particularly useful to perform some tricks and make actions at a frame perfect precision. When you'll read a hint which looks like "do this at xx", it means that you have to do the action mentioned while using frame advance when the value is exactly "xx"; the game will actually take the button press into account a frame later.

Here are the timers and what they can be used for.


-The whip timer:

When you attack with the whip, this value will count from 1 to 22; it basically covers all the frames of the attack animation. It is important because you can't do anything until the value hits 22, but when it does (it becomes exactly 22), you regain control: you can whip again, even in the air, or walk, jump, etc...

note: when you whip, the attack connects at 17


-The jump timer:

Like the whip timer, it starts to count whenever you jump, but it stops only when you land or do another action, like whipping or... Taking damage. Yes. It loses its usefulness in these cases.

Here is how to use it.
Let's start with an example: you are on a flat surface and jump. When the timer hits 40 is the earliest frame where you can make another input, be it another jump right after landing, starting walking again, or anything else. Attacking is still possible anytime in a jump, though.

Now, in the game, you won't always land at the same height from where you jumped. Here comes a list of values to look for depending of where you jump to; the first part is where you land, the number is the value of the timer at which you can enter your next input:

  • 2 blocks higher: 29
  • 1 block higher: 36
  • at the same height: 40
  • 1 block lower: 42
  • 2 blocks lower: 44
  • 3 blocks lower: 46
  • 4 blocks lower: WARNING! Special case, you may want to whip at 27 (see landing from a high jump in the Misc. tricks tab)
  • 6 blocks lower (it happens in stage 17), see above but whip at 31.

Note: be careful around moving platforms with this; particularly in the end of stage 4: if you jump from the blocks below the moving platform to reach the door, the timing is not the same for some reason.


-The invincibility timer:

This timer activates when you take damage, it keeps track of your invincibility frames. In fact it doesn't start before you touch the ground after a hit, but you are already invincible when being ejected by the blow. When damaged on stairs, it starts counting immediately, giving you less actual invulnerability time.

This one counts down to 0, starting from 48, and goes down by one unit every two frames. As soon as it reaches 0, Simon is vulnerable again. You have nearly 100 frames of invincibility at your disposal.

var FrameCounter = byte at RAM[0x1A],
    CurrentStage = byte at RAM[0x28],
    SpecialItemCounter = byte at RAM[0x7B],
    CurrentSpecialWeapon = byte at RAM[0x15B],
    MultiplierSpawnCounter = byte at RAM[0x79],
    SpecialWeaponOnScreen = byte at RAM[0x72],
    WhipLength012 = RAM[0x70],
    NumberOfHearts = RAM[0x71],
    CurrentMultiplier = RAM[0x64],
    CurrentRandomBonusId = RAM[0x6F]
function SpawnItem_WhenEnemyDies: # Is at $1E09A:
  var ai_type = this->ObjectAItype
  
  if((ai_type < 32 AND ai_type  11) OR (ai_type  40))
  {
    if((FrameCounter MOD 16) = 2)
      return this->SpawnSpecialItem();
  }
  
  if(ai_type = 10 OR ai_type = 19)
  {
    return this->BecomeBonusItem(4);  # unconditionally a large heart
  }

  var default_item  0; # random bonus
  
  if(ai_type = 3 OR ai_type = 8 OR ai_type = 12 OR ai_type = 14 OR ai_type = 18)
  {
    default_item  4; # a large heart instead of random bonus
    # (but it can still become a multiplier instead of large heart)
  }
  
  if( (FrameCounter MOD 8)  0)
    ai_type  0x30 # just disappears after a while, no bonus!
  else
    ai_type  0x31 # will become a bonus item.
  
  this->BecomeBonusItem(default_item, ai_type);
function GetCurrentLevel:
  return floor((CurrentStage - 1) / 3)
function SpawnSpecialItem:
  var special_table  Array(0..5, 0..3)
  {
    {10,15,11,0},  # level 0(boss:bat):          rosary, watch, firebomb, <none>
    {11,10,0,9},   # level 1(boss:medusa):       firebomb, rosary, <none>, boomerang
    {10,10,14,0},  # level 2(boss:mummies):      rosary, rosary, amphora, <none>
    {10,14,13,0},  # level 3(boss:frankenstein): rosary, amphora, axe, <none>
    {0,15,14,8},   # level 4(boss:death):        <none>, watch, amphora, dagger
    {9,15,10,0}    # level 5(boss:dracula):      boomerang, watch, rosary, <none>
  }

  # Note: SpecialItemCounter is a global variable that is never ever referenced
  # anywhere else but in this function. It is a 2-bit counter.

  do {
    var special_item  special_table[ GetCurrentLevel ] [ (++SpecialItemCounter) MOD 4 ];
  } while(special_item = CurrentWeapon);

  this->BecomeBonusItem (special_item)
function BecomeBonusItem(bonustype, ai_type = 0x31):
  # This function does not really change the item yet.
  # It only assigns the AI to be used by this object.
  this->AItype      ai_type
  this->BonusType   bonustype
function BecomeActor(actorid):
  # This function creates the actual object from the given id.
  # implementation is omitted here, it is not relevant.
var TranslateBonusIdToActorId = Array(0..15)
  {0x0F,0x0E,0x05,0x0C,0x42,0x10,0x23,0x00,0x17,0x43,0x0A,0x44,0x2F,0x18,0x45,0x46};

function RunObjectAI_30:
  if(--this->ObjectMultiPurposeCounter) return;
  this->AItype  0x32;
function RunObjectAI_32:
  this->StopExisting();
function RunObjectAI_2F:
  # Common AI code for bonus actors. Omitted here.
function RunObjectAI_31:
  if(--this->ObjectMultiPurposeCounter) return;
  this->AItype  0x2F;

  switch(this->BonusType MOD 16)
  {
    default:
      if(SpecialWeaponOnScreen OR (CurrentWeapon = this->BonusType))
        return this->BecomeTinyRandomBonusA();
      SpecialWeaponOnScreen  0xFF;
      # fallthrough:
    case 5: # beef
    case 6: # red sphere
    case 7: # unknown (ghost?)
      # Keep this decision of "bonus type", and become the actual object.
      return this->BecomeActor(TranslateBonusIdToActorId[this->BonusType]);

    case 1: # bonus sac
      this->BecomeActor(0x0E); # become a sac
      this->PaletteIndex  this->BonusType SHR 4;
      return;
    
    case 12: # multiplier
      # Try becoming a multiplier
      
      MultiplierSpawnCounter  0;
      var tmp  CurrentMultiplier;
      if(tmp < 2)
      {
        this->BonusType  12;
        tmp  tmp + BonusTypeToActorTypeTransTable[this->BonusType];
        return this->BecomeActor(tmp);
      }
      # passthru

    case 0: # small heart or a sac of some value
      return this->BecomeCompletelyRandomBonus();
  }
function BecomeCompletelyRandomBonus:
  # It is unclear where MultiplierSpawnCounter is incremented.
  # It happens at $E65D, but the circumstances in which that
  # code is executed are not clear. It seems to occur whenever
  # a special weapon delivers damage, though. In the case of
  # the fire bomb, for enemies that are not immediately killed
  # from damage, it can mean that the counter is incremented
  # by ~50 times at once.
  if(MultiplierSpawnCounter  10)
  {
    # Try becoming a multiplier
    
    MultiplierSpawnCounter = 0;
    var tmp  CurrentMultiplier;
    if(tmp < 2)
    {
      this->BonusType  12;
      tmp  tmp + BonusTypeToActorTypeTransTable[this->BonusType];
      return this->BecomeActor(tmp);
    }
  }
  if(NOT SpecialWeaponOnScreen)
  {
    if(NumberOfHearts < 8)
    {
      if(NumberOfHearts  4 AND WhipLength012 < 1)
        return this->BecomeWhipUpgrade();
    }
    else if(WhipLength012 < 2)
      return this->BecomeWhipUpgrade();
  }
  return this->BecomeTinyRandomBonusA();
function BecomeTinyRandomBonusA:
  this->BonusType  CurrentRandomBonusId MOD 2; # 0 = heart, 1 = sac
  return this->BecomeActor(TranslateBonusIdToActorId[this->BonusType]);
function BecomeWhipUpgrade:
  SpecialWeaponOnScreen  0xFF;
  this->BonusType  3; # whip upgrade
  return this->BecomeActor(TranslateBonusIdToActorId[this->BonusType]);
# This code is executed non-stop in the main-loop of the program.
# Each time NMI resumes, it returns to this loop.
# It is responsible for permutating the CurrentRandomBonusId variable.
# If you want to influence the outcome of this loop before the next NMI,
# you need to influence the number of CPU cycles spent in the previous NMI.
function MainLoop:
  var RandomTable  Array(0..15)
  {
    0x33,0xBB,0x3F,0x80,
    0x2E,0xA9,0x61,0x87,
    0xAD,0xC3,0xB2,0xC8,
    0x7C,0x25,0x48,0x7A
  };
  loop_forever:
  {
    var tmp  (CurrentRandomBonusId OR FrameCounter) AND 15;
    CurrentRandomBonusId  RandomTable[tmp];
  }


See also