Submission Text Full Submission Page
  • Genre: platform
  • Manipulates luck
  • Doesn't take damage
  • Aims for fastest time
Legend of Kage is a story based in old Japan. The beautiful princess Kiri has been kidnapped by evil ninjas. Many Samurai warriors were sent to rescue her. None ever returned. The player is Kage, a young ninja who goes to rescue the princess Kiri.
This movie is a ~26 seconds improvement to Walker Boh's movie.
Speedrunwise, this game is all about luck manipulation. Like any good ninja game, it hides many secrets inside, and I set out to discover every one of them that is important in making a TAS.
Here's my dictionary:
  • Hokage means yōbō means magic monk. I use the term hokage because it's what pops to my head when I think of that particular enemy, thanks to Naruto.
  • Shinobis are the blue and red ninja guys. (And occassionally black.)

Strategy

  • All forest levels: Make hokages appear as soon as possible, kill them as soon as possible. Screen must be scrolling to the left when the last hokage is killed.
  • All moats: Kill the last shinobi at earliest possible frame. Screen must be scrolling to the left when the last enemy is killed.
  • All mountains: Jump as precisely as possible. This is difficult, because Kage's jumps are very imprecise. A lot worse than those of Samus.
  • All fortresses: Untie Kiri at the first possible frame.
  • All aftermaths: Make butterfly disappear as soon as possible (fall to ground). Hit the enemy (Yōbōs, Yukinosuke kiri, and finally Yōshirō Yukigusa) as soon as they appear. Screen must be scrolling to the left when enemy is killed.
  • Level 1-1 (summer, forest): Gain the superhuman power as soon as possible, because it enables running faster. (2 pix/frame normally, 3 pix/frame at superhuman speed.)
  • Level 3-4 (winter, aftermath): Send the last shuriken as early as possible, and maximize its travel time. Manipulate the luck so that further actions after the shuriken is sent are not needed.
  • Never miss an important enemy spawning.
    • Don't scroll the enemy out of screen.
    • Ensure that there aren't too many enemies on screen that would prevent the new enemy from appearing.

In forest levels, how to enable hokages to appear

  • All hokages: They can only appear when the screen scrolling position is odd (not even) and no enemies exist on screen.
  • First hokage: The enemy kill counter must become evenly divisible with 4 while the current screen number is < $11.
  • Second hokage: Same, except that screen must be < $0E.
  • Third hokage: Same, except that screen must be < $0A.
  • Fourth hokage: Same, except that screen must be < $04.
This only enables the hokage to appear. It is still subject to the framenumber and mask mechanism, explained below.

How to make the crystal ball (that gives superhuman powers) appear

  • Every 12th enemy that appears, carries a crystal ball. However, this counter is reset occassionally:
    1. When the screen scrolls to the left, and an odd screen number is encountered, the counter is reset to 0.
    2. When the screen scrolls to the right, and an even screen number is encountered, the counter is reset to 0.
    3. When a hokage appears, the counter is set to a random value depending on hokage's actions.
I abused this third fact to make the two necessary crystal balls appear as soon as possible.

What decides when enemies appear

  • Enemies appear only at certain intervals. There's a ‹mask› variable and a ‹frame counter›. A bit-wise AND of them must yield 0 for enemies to appear.
  • For a hokage to appear, no other enemies must be on screen, and the screen scrolling position must be odd (not even). (And the hokage must be enabled as explained above.)
  • There are three enemy slots. If all are full, no enemy is created and the opportunity is lost. Dead enemies also occupy a slot until the corpse disappears.
  • When a stage begins, the ‹mask› is set to $7E (forest stages) or $3F (other stages).
  • When you kill many shinobis at one location, even more shinobis begin to pour in at faster rate.
    • When 4 enemies have been killed, the ‹mask› is set to $3F. (Enemy is born every 64 frames.)
    • When 8 enemies have been killed, the ‹mask› is set to $1F. (Enemy is born every 32 frames.)
    • When hokage is enabled to be seen, the ‹mask› is set to $1F.
  • When you move enough, the enemies lose the track of you:
    • When the screen scrolls to the left, and an odd screen number is encountered, the ‹mask› is reset to $7F. (Enemy is born every 128 frames.)
    • When the screen scrolls to the right, and an even screen number is encountered, the ‹mask› is reset to $7F.
  • At the moat stage, the ‹mask› remains at $3F at all times.
  • Enemies do not appear when the music is something other than the normal plight music or the eerie scroll+praying music.
Because enemies don't always spawn where I'd want them to, I have to lead an enemy that has been spawned earlier to the point where I can kill it to make the hokage appear. This causes the apparently useless left-right motion at some points. For this, I always chose a red shinobi because they can follow Kage faster than the blue shinobis.

How to manipulate luck

  • This game uses the CPU clock as its random source. It is extremely volatile, and reacts to almost any changes in input, even though the input is not fed into the randomness formula. Details at GameResources/NES/TheLegendOfKage#RNG.

How did I approach the problem

  • I disassembled the game. I deciphered all important bits of it.
  • I used a custom-made luck-manipulation robot, BisqBot, extensively throughout this movie.

Bisqwit: Cancelling this submission. I'm improving it.


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15575
Location: 127.0.0.1
This topic is for the purpose of discussing #1187: Bisqwit's NES The Legend of Kage in 05:39.10
Active player (437)
Joined: 4/21/2004
Posts: 3517
Location: Stockholm, Sweden
I remember this game, because it was so repetitive. Nice improvement, voting yes.
Nitrogenesis wrote:
Guys I come from the DidyKnogRacist communite, and you are all wrong, tihs is the run of the mileniun and everyone who says otherwise dosnt know any bater! I found this run vary ease to masturbate too!!!! Don't fuck with me, I know this game so that mean I'm always right!StupedfackincommunityTASVideoz!!!!!!
Arc wrote:
I enjoyed this movie in which hands firmly gripping a shaft lead to balls deep in multiple holes.
natt wrote:
I don't want to get involved in this discussion, but as a point of fact C# is literally the first goddamn thing on that fucking page you linked did you even fucking read it
Cooljay wrote:
Mayor Haggar and Cody are such nice people for the community. Metro City's hospitals reached an all time new record of incoming patients due to their great efforts :P
Joined: 5/29/2006
Posts: 138
Even though this is one of the most repetitive games ever, it's fast paced and this is definitely a good improvement. Yes.
Twisted_Eye
He/Him
Active player (398)
Joined: 10/17/2005
Posts: 632
Location: Seattle, WA
Whoa, that sure was an interesting submissions text! Definitely a good movie, very well done.
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Screenshot of the luck manipulation process: http://bisqwit.iki.fi/kala/snap/hokages.png Ps: Apparently, 1-frame exposure to the monk's fire does not kill if you have the powerup state; 2-frame exposure does nevertheless.
Player (88)
Joined: 1/15/2006
Posts: 333
Location: Bangkok, Thailand
26 seconds improvement on such a sort movie doesn't seem like it should be possible. If the previous run merited publication, this one surely does. The run is rather repetitive though. When Kiri was kidnapped for the fourth time, I found myself saying outload "not again!" Fortunately, the run ended soon afterwards. I vote 'meh'.
print reduce(lambda x,p:p/2*x/p+2*10**1000,range(6643,1,-2))
Active player (406)
Joined: 3/22/2006
Posts: 708
Oh, nice. I was waiting for someone to improve the Famtasia one. I'll watch when I get home.
Joined: 8/1/2006
Posts: 428
Cancelled!!?! You can't do this to us! ... ...well, maybe you can, but that doesn't mean I'm happy about it.
Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection refused telnet: Unable to connect to remote host
Joined: 1/23/2006
Posts: 352
Location: Germany
It desynced for me at the final boss (he spawned on the other side of the screen). But I suppose that doesn't matter since youre redoing the movie anyway.
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
KDR_11k wrote:
It desynced for me at the final boss (he spawned on the other side of the screen).
He was indeed supposed to spawn on the other side of the screen. The shuriken collision is wrapped around the edges of the screen.
Joined: 8/1/2006
Posts: 428
So why are you redoing it? Did you find some huge timesaver like a left+right superdash or something?
Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection refused telnet: Unable to connect to remote host