- Emulator used: dega-1.16pre1-win32-z80jb MAME core
- Aims for fastest time
- Takes damage to save time
- ROM used: Kenseiden (UE) [!].sms (the (J) ROM desyncs right after the first boss)
About the game
Kenseiden stars Hayato, a samurai that has to fight against warlocks and evil spirits that plague 16th century Japan. The warlocks stole the five secret scrolls and the sword of the Dragon Lord. Hayato, who has dragon blood in his veins, must recover the scrolls and sword and enter the castle and kill Oda Nobunaga.
In the original Japanese version, Hayato is blond. In the Western versions he has black hair.
About the run
I really suggest that you don't read any of this before seeing the TAS itself.. o_o
Decided to use all my Kenseiden experience acquired on the 100% run to improve the any% run a little, turned out I could change route and improve it by more than one minute.. could even improve parts that can be applied to the 100% run in the future.. =P
Tricks and glitches
Hayato moves 1 pixel per frame when walking right, left or jumping right, but on left jumps, we can press left once more and he will be faster than this, around 1,0625 pixels per frame, this saved around 12 frames per going left screen.
The game only accepts input on half the frames, and that depends on the scene we are in. It's odd or even, can change a lot, but not during the same scene, the game has no lags at all.
There are two types of floor in which Hayato can walk: platform, that recalculates his Y position while keeping the X speed at 1, and ground, that recalculates his Y position but sets X speed to 0.
Landing: when the floor is ground, we can land on good frames, which are the ones that set our Y position to the same one as the floor. Example: we're falling at speed Y 3 and 255 for subpixel, which goes 4 pixels per frame. Y floor being 127, if we're at 123 on the frame that accepts input, he will fall directly on 127, which will make we not lose frames, other values, 126, 125, 124, 122, 121, 120 .. make him lose 2 frames. 2 frames per jump made me gain around 170 frames in the end. 119 makes him lose 1 frame, which leads the game into making us lose the other one on a screen transition.
Attacking in mid-air is preferred, because Hayato keeps going right or left depending on the situation. This attacks had to be made 16 frames before landing, or else he will pose there, with 0 X speed and lose 2 to 14 frames.
Jumping on ladders: Hayato actually climbs up ladders a little faster and is recalculated for 3 pixels of gaining in one frame when we press up on the ladder at a good situation.
Taking damage: when we can't take an enemy out without losing frames, there is the trick that makes it possible to go through them, we just have to be hit by an enemy that cames from our back. Tests indicate that this is faster than going back for 10 frames or more to gain space to jump over something.
Some enemies walk with us, that being said, I don't need to attack them, they just go with me, walking together. This saved frames in 1 situation or 2.
Snakes are ground enemies that can hit us with their heads or tails, but their bodies are not considered, so we can walk inside them, only when they are striking. (same speed) =P
Luck Manipulation
Random variables have little use in this game, but enough to not being a good idea to hex-edit, these are the moments that can change completely: falling rocks can change direction randomly, blue fiends can jump right or left, flying bubbles are harmful and can change speed, and the final boss' shots change their flights' directions. (but now I can manipulate the final boss into not shooting anything after the first one)..
Data dump
- "faish" is done in air, up+1 after defeating the second boss. 20 frames in air, not a problem except we have to do it 20 frames before landing, or else Hayato gets stuck there until the attack is done. (Actually used the stuck time in my favor when fighting one of the bosses)
- "kaoshi" is not in this run, but I should mention that it is a weaker, wider crouch attack. 1/2 of the usual crouch damage, not really wanted on a speedrun, in my opinion.
- "pling" is the frame saving attack in many situations, we just have to start holding 1 after any attack or landing, and then crouch. After a pling, we have to jump front to avoid losing 4 frames, as the game recalculates our crouch position and our standing one.
- Standing and crouching attacks are only used in bosses.
- Taking damage cost 24 to 26 frames of non-moving Hayato, with 3/4 of speed, which means only 8 frames lost if you're pushed front.
Memory Watch on MHS got these good memory positions that made the calculation of good frames to land very easy:
00D44153- X position subpixel, made me realize that sometimes I was losing frames when turning, and it was fixed.
00D44154- X position on screen (stops when it's moving), helped me because it changes on bosses for better positions.
00D44155- Y speed subpixel, that was on the formula, button 2 changes it by summing less Y speed each frame.
00D44156- Y speed, it's negative when we're going up, and positive when we're falling.
00D44157- X speed subpixel, the reason I discovered that left jumps are faster.
00D44158- X speed, it's 1 when going right, 255 when going left, 254 (with subpixel 240) when jumping left.
00D49F4C- Y position, not the only one, but one was enough to make calculations, even if it gets weird numbers when Hayato is taking damage..
00D44151- This one changes during jumps, but it didn't help at all =P
Level by level comments
Level 1
The new strategy was to not take damage at the end, leading to having to deal with that final enemy differently. Frames saved so far: 8
Level 2
This is where jumping left shows how weird this game was programmed, I still think that the jumps to right are the glitchy ones. Frames saved so far: 38
Boss 1
Didn't change much, but walking inside two flames looked nice to me, so I went with that. Between 7th and 8th attack it looks like a gap, but the boss has to die closer to the floor, really. Frames saved so far: 40 (2 for having more HP after the boss, actually)
Level 3
Tried to have all jumps on good frames, and.. I did it \o/ (even the damage one, that made me gain around 24 frames alone) ..and I could replicate the previous run trick that consists in stepping on a skull and taking 0 damage. Frames saved so far: 78
Level 6 (oops, I mean 4)
Nothing to say, it's a new route. Frames saved so far: 1373
Level 9 (oops, I mean 5)
There is one improvement here comparing to the 100% run, when I jump up to the stairs right before the boss room, it saved 8 frames comparing to that. It was just more attention... Frames saved so far: 1878
Boss 3 (oops, I mean 2)
Had to think of a new strategy for the larva fly, but it is faster than the two-headed one (too). Frames saved so far: 2216
Level 11 (oops, I mean... nothing!)
Skipped one entire map scene and level with the new route. Frames saved so far: 3939
Level 12 (oops, I mean 6...?)
New path, new enemies to dodge, simply decided to change things to more action, since the game has no in-game lag at all. Frames saved so far: 3949 (snake riding actually saved frames, look at that..)
Level 16 (oops, I mean, final one)
All more careful jumping, and actually had to skip one perfect landing here because of 4 enemies in a row, it's right before the final ladder.. Frames saved so far: 4038
Boss- Yonensai
Not having Benkei's scroll made me use the helmet smasher technique more (it's the 'faish') ...not sure if this one is Yonensai, but, actually got better jumps and X speed managing.. much better actually. Frames saved so far: 4756
Final Boss
First I tried to copy the 100% run's battle, but when I redid it, it got even better, I can manipulate the big guy into not shooting anymore, this means more attacks and less time ... this one is a pain in the ass, anyway... Final count: 5728 frames faster
Conclusions
Many thanks to AngerFist, and Neofix, Mklip2001, Keirden, Adelikat, Klmz, and whoever else that helped on the TASing work, I think the rerecord count is getting bigger, that sure means the planning was good .. just used again the formulas to land in good frames, and the formula to attack and not lose frames landing too soon, ...
Anyway, I hope people enjoy the work and if you can do better, try to obsolete it, I bet it will be tough.. XD unless, of course, you discover a different new trick that saves some big amount of frames >_>
Suggested screenshots: 5081, 11109, 12487, 13072, 17511