Kato-chan Ken-chan TAS by TaoTao
I have wanted to watch a TAS of this game for a long time. Recently I knew that we can make PCE TASes by mednafen-rr, and I made this run.
Essentials
- Emulator used: mednafen-rr 137
- Aims for fastest time
- Uses warps
- Takes damage to save time
- No death
I also used original mednafen to research various things (it has a debugger).
About the game
Kato-chan Ken-chan is one of PCE gems by Hudson (it is often abbreviated as "Kato-Ken" in Japan). This game is derived from a Japanese TV program, "Kato-chan Ken-chan gokigen TV". Main characters are Cha Kato (Kato-chan) and Ken Shimura (Ken-chan). They are famous Japanese comedians.
This is a typical side-scrolling action game, but the movement is odd a bit, and it has unique taste. You choose Kato-chan or Ken-chan as the player character, and clear stages using jump, kick, and "fart attack". You meet a boss at the end of each world. To complete the game, you must clear the world 6.
This game is released as "J.J. & Jeff" outside Japan. But, it seems there are some differences between JPN and USA version (for example, fart attack is replaced by spray attack). Strictly applying the rule of TASVideos, I wonder I should have use USA version. However, there are some differences as I said. Moreover, I think the characters, Kato-chan and Ken-chan, are essential parts of this game. But this issue may need some discussion.
About the run
This game is relatively easy to TAS, but it is unexpectedly troublesome to optimize in detail.
Character choice
Ken-chan has large maximum speed, small acceleration, small jump height, and small jump distance. Kato-chan is the opposite.
To aim for the fastest time, we should choose Ken-chan.
Route
This game has several warps. I used the warps below:
1-3 -> 1-4
1-4 -> 3-1
3-3 -> 6-4
In 6-4, there is a wide pit and the hidden floor doesn't appear without the key. So, in casual plays, we usually warp to 6-3 from 6-4 and get the key, and play 6-4 again. But, in this run, I jump over the pit without getting the key, using an enemy as a stepping-stone.
Movement
The movement is managed in subpixel units. For X-direction, 32 subpixels are 1 pixel, for Y-direction, 8 subpixels are 1 pixel. In this run, a large percentage of the effort is put to subpixel optimization.
The heroes can jump to 3 heights (high, middle, low). And the jump height depends on the speed of the hero. But, we can always perform high-jump by pressing <up> and <jump>, or <kick> and <jump> simultaneously.
When the hero performs landings, he sometimes stops to move in X-direction for 1 frame. I call it "landing-stop". This is harmful for TASing and we should avoid it as possible. If the Y-coordinate of the hero exceeds (temporally) the Y-coordinate of the floor at a landing frame, a landing-stop occurs (it might be considered that "the hero is buried under the floor for 1 frame"). So, we sometimes can avoid landing-stops by adjusting Y-coordinate (stamping enemies, adjusting Y-subpixel, etc). Even if we can't avoid a landing-stop, we still can adjust X-subpixel to minimize the loss by the landing-stop. And, landing-stop is also a chance of adjusting X-subpixel.
Note: When we land on the right edge of floors, landing-stops never occur.
Ken-chan doesn't cause landing-stops when he performs high-jumps to the same height. But Kato-chan does.
Items
Potatoes increase the range of fart. 1 potato should be sufficient to TAS. In this run, I obtain a potato in the beginning of 1-1.
Curries increase the upper limit of vitality by 2. If we have vitality over 10, we can withstand the collision with a dinosaur.
Vitality adjustment
Unfortunately, finishing stages with a lot of vitality wastes time. This game converts vitality to score at the end of stages, and this process takes time in proportion to vitality (7 frames per 1 vitality). So, I could not help colliding with enemies on purpose to adjust vitality. This may not seem so cool, but anyway, I gave priority to saving time :(
Misc
In 3-1, there is a curry before the dinosaur. So it seems as if we can pass him without beating him with a fart. But actually we cannot do it, because we cannot land to next floor. If we could delay the appearance of the dinosaur by 1 frame, we could do it, but it seems impossible.
Possible improvements
After passing the goal line of each stage, it takes some time until the blue screen is displayed. And it seems the needed time sometimes changes by 1 frame. In this run, it takes 287 frames in 1-1, 3-1, and 288 frames in 1-2, 3-2. I don't know the mechanism of this thing, and I tried to save 1 frame in 1-2, 3-2, but it failed.
It seems this game is not studied so deeply. Thus, some drastic glitches may be found in the future.
Enjoy!
adelikat: Accepting for publication and claiming for encoding.