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

Submission #3280: MUGG's GB Kung-Fu Master in 03:29.08

Console: Game Boy
Game name: Kung-Fu Master
Game version: JPN
ROM filename: Spartan X (J).gb
Emulator: (unknown)
Movie length: 03:29.08
FrameCount: 12545
Re-record count: 13934
Author's real name: Christoph H.
Author's nickname: MUGG
Submitter: mugg
Submitted at: 2011-09-08 05:15:20
Text last edited at: 2011-12-07 20:21:34
Text last edited by: Ilari
Download: Download (810 bytes)
Status: published
Click to view the actual publication
Submission instructions
Discuss this submission (also rating / voting)
List all submissions by this submitter
List pages on this site that refer to this submission
View submission text history
Back to the submission list
Author's comments and explanations:

About the game

The player has to make his way through 6 stages, each featuring a boss. The character can kick, punch, crouch, and do a somersault attack. There are a few interesting glitches, but only very few are usable for speedruns.

(Link to video)

About the run

  • Aims for in-game time instead of real-time
  • Forgoes time-saving damage
  • Takes damage to save time
  • Uses hardest difficulty
  • Ignores post-level bonus effects
  • Genre: Fighting
  • Genre: Platform
  • Emulator used: VisualBoyAdvance 24-m svn391

When landing while attacking, you're stuck on the ground for some frames to recover. However, there's a frame in which there's the opportunity to jump - but you'll automatically attack again in the air, often reaching too high to hit any enemies. In order to hit enemies and bosses with such an attack, you have to optimize your Y subpixels to be 0.5 or greater. Some bosses still can't be reached even with optimized Y subpixels, so other strategies have to be relied on.

Normal enemies will always run towards you to clinch you to beat the crap out of you. You can just kick them while moving forward, but sometimes getting grabbed is unavoidable, or even better for luck-manipulation purposes. Throughout the levels are some tougher enemies that you have to hit multiple times. They can be prevented from appearing if enough sprites are onscreen (3 enemies. Apparently 2 enemies and 1 item drop doesn't do the trick).

The published run was only aiming to complete the game at a fast pace. Some time after, I made a run that aimed to complete the game as fast as possible by all means i.e. realtime speedrun - the run gets grabbed and beat up to lose health to avoid the post-level bonus effects, however, there may be some tiny flaws in it. I didn't put very much effort into it back then.

This submitted run aims for best ingame time level completions. The higher the timer at the top-right corner after ending a level, the better. This means enemy drops causing lag and other lag-heavy things can be ignored, since the ingame timer doesn't run during lag frames. I think aiming for ingame time makes for the best run - the realtime run looked sloppy to a couple people. Note: Sometimes the timer will drop by 1 as the character leaves the screen, this will be noted in the level list below.

Switching to the (J) ROM

One day after submitting this run, I felt like checking out the Japanese version to check for version differences. When I noticed the final level was more than 10 seconds shorter compared to the worldwide release, I felt like this version should be used and to my surprise, this run syncs very well on the Japanese version (I only had to re-sync it 2 or 3 times). Of course I couldn't collect any bomb to throw at the boss now and I'm aware it was one of the cool parts in the run. But I want to go with the fastest possible run, and now I'm happy that I don't feel obliged to redo the run anymore.

One possible improvement now might be to kill four more of the Chinese dudes in levels 4 and 5 so you get a bomb drop for the final boss. But ingame time would need to be sacrificed/traded and things get complicated here - also those levels would need to be redone, probably. I want to leave this be for now, and focus on other things (school >_>).

Other version differences:
The character looks different
The HP bar looks different
I think a few bosses deal more damage
The credits, and title screens are different


Enemies can drop stuff depending on how many you kill. The counts carry over to next levels.
  HP Bottles (energy drinks) - every 20th enemy in the levels 1~3. every 4th in 4~6.
  Hearts (replenishes full health) - every 50th enemy
  1up - every 90th enemy
  bomb (can be thrown, used to beat 3rd and 6th boss) - every 3th enemy in level 3, every 8th in 4~6. Only dropped by shooters and Asians.
Addresses notes
c704 xpos on screen
c703 xsub
c706 ypos
c705 ysub
ff43 can be used like x screen position
c717 hp
c0e9,c0c9,... boss hp (variable)
d00a~d00f kill counters (bomb1, bottle1, heart, 1up, bottle2, bomb2)
d013 is "1" if you have a bomb
c060~c0ff enemy slots

Lua script I used.

Level by level

Ingame times.
~ Published run Real-time run Ingame-time (this run) Comments
1 811 804 824/823 The 2nd tough enemy was not spawned.
2 800 807 814 Used barrel boosts this time. Too many enemies prevented the barrel at the end from appearing and I couldn't prevent this.
3 810 796 820 Another tough enemy was caused not to spawn.
4 803 788 806 More optimizations.
5 794 792 794 I didn't manage to improve this level.
6 863 862 864 955 The Japanese game version was used because the final boss appears right at the start without any other enemies appearing.


Hope you enjoy!

sgrunt: Replaced the submission file as noted here.
DarkKobold: Judging.

DarkKobold: Accepting with the rom change and aim change to fastest in-game time.
Brandon: Publication underway.

Similar submissions (by title and categories where applicable):