Emulator Details
- Snes9x 1.51
- Left+Right, Up+Down enabled
Objectives
- Uses hardest difficulty setting
- Aims for fastest time
- Takes damage to save time
- Unlocks a secret message
Special Thanks
I want to put this section first to give recognition to someone really wonderful. laranja and I originally were coauthoring this run. I had more time to work on the run, and after several weeks of a busy schedule, Marco graciously bowed out. You will be hard pressed to find someone as friendly as Marco. He was the first to discover the quick way to the first exit, and how to beat the last level without damage boosting. Some of his input remains in level 1-2. He also was the one to notice you can beat the 2 red balls with just 1 swing, saving 10 frames over the first submission.
Other thanks to:
- Tompa, for discovering an even better skip to the first exit
- StarFighters76, whose maps on gamefaqs saved me the hassle of actually playing the game.
- Nahoc, for very quickly starting to encode my first submission before I cruelly pulled it for this 10-frame improvement.
Useful memory addresses
I found an obscene number of memory addresses that were essential in optimizing.
Address | Type | Name | Description |
---|---|---|---|
7E054B | b s | X-Speed | Speed along the X-axis. |
7E054A | b u | X-Subspeed | The fractional value of the player's speed. Unlike other games that only use this for acceleration, different values affect your overall speed. |
7E0522 | w u | X-Position | Player's exact position on the X-axis |
7E0BAC | w u | "X" | Player's approximate position. This is strange because this value has dead zones at the beginning and end of a level. Every time the least significant byte of X-position overflows, this increments*. |
7E054D | b s | Y-Speed | Speed along the Y-Axis |
7E054C | b u | Y-Subspeed | The fractional value of the player's speed. |
7E0525 | w u | Y-Position | Player's exact position on the Y-Axis |
7E0526 | w u | "Y" | Similar to "X," but there appear to be no dead zones. |
7E0524 | b u | X-Region | X-Position overflow counter. |
7E0527 | b u | Y-Region | Y-Position overflow counter. |
- In this sense it's similar to pixel and subpixel values, but you can be on different pixels for the same value of "X."
Enemies' HP works the opposite of most games. They start at 0 and go up. There usually will not be more than 4 enemies on the screen, but here are all of them.
Enemy | Address | |
---|---|---|
1 | 7E0595 | |
2 | 7E05D0 | |
3 | 7E060B | |
4 | 7E0646 | |
5 | 7E0681 | |
6 | 7E06BC | |
7 | 7E06F7 | |
8 | 7E0732 |
Some stages have a movable object that you have to push by running into it. To help with the last such stage, I found these addresses.
Address | Type | Name |
---|---|---|
7E075E | b s | Object Speed |
7E075D | b u | Object Subspeed |
7E074B | w u | Object X-Position (right) |
7E0755 | w u | Object X-Position (center) |
7E0763 | w u | Object X-Position (left) |
It is fun to enable cheats and give yourself infinite health, lives, and time.
Address | Name |
---|---|
7E1036 | # Shields |
7E1028 | # Lives |
7E1030 | # Gold |
7E1031 | Minutes |
7E1032 | Tens |
7E1033 | Seconds |
7E0FCC | Frames |
Tricks Used
- Damage Boost
- Damage boosting appears in this game. It is best suited for giving the player a super high jump. This is used to skip large sections of levels. The Expert difficulty limits the player to one shield, meaning you can only take 1 hit before collecting another.
- Speed Dampening
- The player's speed gets butchered in the air. You lose 20 subspeed or more per frame until your total speed hovers around 3.6. However, during your throw or duck animations, you lose only 4 subspeed per frame. Any time you see me throw with no apparent reason, that's what's going on.
- Fast Climbing
- When climbing, you can start a new climb animation by repressing "up." Release as soon as you've stopped moving from one pull and your next pull will begin 5 frames faster. Over the course of the game, that's no small potatoes!
- Level end abuse
- There is some weird variation at the end of levels depending on whether you run through, duck, or come to an abrupt stop. These may all result in the same timer value, but some can cause the next level to start 1 or 2 frames faster. I optimized this as much as I could.
Comments
- I get a shuriken in level 2-1. This is beneficial for a number of reasons.
- The shuriken does the most damage of any projectile, and therefore most dps. Axe = 1, Dagger = 2, Shuriken = 3, Sword = 4.
- The shuriken stays out longer than other projectiles.
- The shuriken's trajectory allows you to damage boost yourself without an enemy.
- When possible, using two projectiles is faster than using the sword once.
- No matter how fast you reach the end of 2-1, you have to wait for the platform to go and come back. Events like this are triggered when the object enters the screen.
- In water levels, keep in mind that bubbles hurt you. BUBBLES. You are protected by a bubble, which doesn't make a lot of sense to begin with. Yet another bubble, another pocket of air, hurts you. You got to love the logic to old school games.
- The mage boss has 40 HP. That means for one swing only, the sword is better than 2 projectiles. All shuriken = 14*3 + 0 = 42. With sword = 12*3 + 1*4 = 40. 13 actions instead of 14.
- In 4-1, the cloud usually follows you for 3 lightning strikes. I manage to outrun it after the first lightning strike. I liked this.
- Near the end of 4-1 there is some lag, but it doesn't show up in the emulator's lag counter. I noticed at first because I could see it, then I noticed the timer was staying the same for consecutive frames. I minimized this. I believe 2 frames of lag made the end.
- Singe the dragon has the same HP as the mage boss.
- The secret message is "Dragon's Lair is modern."
Nahoc: Added YT module.
klmz: Accepted as this movie is made entertaining with a dull game.
Brandon: Publication underway.