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

Submission #1834: Randil's NES Circus Charlie in 03:24.05

Console: Nintendo Entertainment System
Game name: Circus Charlie
Game version: USA
ROM filename: Circus Charlie (J).nes
Emulator: (unknown)
Movie length: 03:24.05
FrameCount: 12243
Re-record count: 4187
Author's real name: Johan Södling
Author's nickname: Randil
Submitter: Randil
Submitted at: 2008-01-25 13:09:47
Text last edited at: 2008-01-28 19:51:22
Text last edited by: adelikat
Download: Download (1851 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:

Circus Charlie TAS v2 by Randil

This run improves the published run by 18 frames. I saved 21 frames on level 1, but lost 3 frames on level 3. More information on this can be found under the respective level's comments.

Technical information:

  • Emulator used: FCEU 0.98.16
  • Aims for fastest possible time.
  • Manipulates luck.
  • Genre: Platform.

Game description:

Circus Charlie is a very simple game with 5 levels to beat. You beat a level by moving forward, avoiding obstacles and objects in your way, and in the end jump up on the pedestal. You also get points by jumping through fire rings, jumping over circus balls, etc. To put it simple: just watch this run and you'll understand the game.

Level by level comments:

Level 1

  • Saved 21 frames.
  • Stage time: 3430. (20 bonus points gained)

Those who have TASed this game know how much of a pain this level is...

The trick used to save time is quite trivial, but is very hard to achieve. By moving left,right on the right frame, you push the fire rings a few subpixels to the right. I'm not gonna go into details here, but after doing an extensive analysis of how fire rings move, I found that moving left,right at the right time is the only way to push rings back. So after doing this trick a certain number of times, the fire rings are enough to the right to allow me to jump through the last fire ring and land on the left edge of the pedestal, as opposed to the middle of the pedestal, like in the published run.

One thing that should be pointed out is that the fire rings do not appear randomly. They do have a fixed pattern in when and where they appear. The way they are manipulated in this run, and in all previous runs, is in fact that all fire rings on the whole level are pushed slightly to the left or to the right!

Level 2

  • No time saved.
  • Stage time: 3560.

This level is extremely straightforward, and there's not much to do here. I copied this level from the published run, because I liked the stylistic choises in this level.

Level 3

  • Lost 3 frames.
  • Stage time: 3750

This is the other level in this game that is a pain to TAS. The reason for this is that each time you land on a circus ball, you stop for one frame. That means that you want to minimize the number of jumps, since that's the only thing that slows you down on this level.

The randomness on this level is caused by an in-game counter, RAM address $0052. This counter goes from 0 to 5, and increases by 1 per frame, so its pattern is 0,1,2,3,4,5,0,1,... This counter controlls when the circus balls move and when they appear on the screen. Depending on its value when you enter level 3, some jumps are possible and some of them are not. For example, the jump from the first to the third circus ball done in the published run is possible if and only if $0052=2 when you enter the level. Otherwise, this jumps cannot be done.

Because of the time saved on level 1, this time I enter level 3 with $0052=4. This forces me to make 16 jumps on this level instead of 13, as in the published run. Now you will probably ask if it wouldn't save time to enter this level some frames later, so that $0052 is something else than 4. But it turns out that $0052=2 is the best result (It should also be noted that in Phil and Genisto's run, this $0052=2 when they enter this level.)- all other results will force me to do 16 jumps instead of 13. Waiting for $0052 to turn 2 would waste 4 frames, and it would save 3 frames on level 3, so in total it would cost 1 frame, so it's not worth it.

Level 4

  • No time saved.
  • Stage time: 3880 (10 bonus points lost)

Just like level 2, this level was copied from the published run. I see no potential improvements in this level. I lost 10 bonus points because of the in-game counter that determines when bonus points go down, by beating level 1 faster, it has a different value when I start this level, and that's why I lose 10 bonus points.

Level 5

  • No time saved.
  • Stage time: 4280 (10 bonus points gained)

Just like level 2 and 4, this level was copied from the published run. I see no potential improvements in this level. I gain 10 bonus points, for the reasons pointed out under the level 4 comments.

Stage times: 3430, 3560, 3750, 3880, 4280.

Anticipated questions and comments:

  • Wouldn't a run that aims for fastest possible in-game time (the bonus counter) be more interesting? I mean, this is a time that you see on the screen, so it might be cool to have a run that aims for maximum bonus points left at the end of the level.
    • This is a good idea, however, by pausing and unpausing at the right frames, it's possible to stop the bonus counter from decreasing, as shown here. So it is indeed possible to finish all levels with 5000 left on the bonus counter, but it won't be much more interesting to watch. :P

  • I'm sorry to say, but this run just isn't any fun at all... If a run of this game hadn't been published before, I would without doubt vote "no" on this.
    • I completely understand this point of view. The site's standard on what games are published has undoubtly increased, so nowadays, this run probably wouldn't fit in. Not that it's a very good excuse, but in order to fully appreciate a TAS of this game, you would need to try to TAS it yourself to see how incredibly hard it can be at times. Circus Charlie is undoubtly a competitive game, and as one of the most optimized runs on this site (but also one of the most boring ones), as well as being on the site for a long time, it might a some nostalgic value to some.

  • Will this be the final optimization of this run?
    • Obviously, there can never be a definite answer to this question. To land more to the left on the pedestal is the only obvious improvement to the currently published run, and I tried to perform the trick on level 1 when making that run, but without success. At this moment, I do not see any potential improvements left, perhaps by manipulating the circus balls on level 3 in some weird way, but I highly doubt that will be possible. In any case, I think I've gotten quite enough of this game now, so I think I'll leave it as it is for the moment. :)

Useful RAM addresses:

  0084 X position
  0083 Y position
  006A Screen X position
  0094 Fire ring X pixel position
  00A4 Fire ring X pixel position
  00B4 Fire ring X pixel position
  009A Fire ring common subpixel position
  0052 Level 3 RNG
I hope you'll enjoy watching this run! (at least somewhat)
NesVideoAgent: Hi! I am a robot. I took a few screenshots of this movie and placed them here. Oh! I also corrected the ROM name.
  • You indicated Circus Charlie (U).nes
  • I updated it to Circus Charlie (J).nes

adelikat: Accepting for publication and processing. So much for perfect runs >.< Also, I made a slight formatting improvement to the submission text.

Similar submissions (by title and categories where applicable):