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

Submission #5717: Challenger's SNES Porky Pig's Haunted Holiday in 09:43.01

Console: Super NES
Game name: Porky Pig's Haunted Holiday
Game version: USA
ROM filename: Porky Pig's Haunted Holiday (USA).sfc
Emulator: BizHawk 2.2.1
Movie length: 09:43.01
FrameCount: 35038
Re-record count: 34941
Author's real name:
Author's nickname: Challenger
Submitter: Challenger
Submitted at: 2017-11-21 22:11:43
Text last edited at: 2017-12-06 21:54:19
Text last edited by: Fog
Download: Download (12952 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:
This run exploits a programming error that allows the author to start playing from the second half of stage 5, skipping a lot of this game. If you notice that there's nothing meaningful going on in the first 2 minutes of the movie, this is normal: the actual gameplay takes place only after triggering the "major skip" through one of the demos.

Temporary encode

Game Objectives

  • Emulator used: Bizhawk 2.2.1

  • Major skip glitch

  • Takes damage to save time

  • Uses hardest difficulty

Droodbot wrote on the recent TAS that a new glitch that allows Porky to skip most of the game was discovered recently.

Also, since the published run was accepted on Vault, I could consider the 'demo%' a faster any run, for Vault purposes (also, because I noted that run was recently accepted to obsolete a 'full' TAS, which also is in Vault). So, this movie is an attempt to obsolete the published 'full' run.

About the demo glitch

If you wait long enough at the title screen, a demo will start playing. This game has 3 demos:

  • Demo 1 - Stage 1 (room 2)

  • Demo 2 - Stage 3 (room 1)

  • Demo 3 - Stage 5 (room 3)

During the loading transitions of each demo, there are some non-lag frames a bit before the demo fully loads. So, if you press start at one of these frames, the game will be paused until you unpause when the loading finishes, allowing you to control Porky in one of the demos. Since the 3rd demo sets on the second half of stage 5, you must need to wait a lot (about 2 minutes) to this. Also, I choose the hard mode after the first 2 demos, otherwise, the next demo will be set on the normal mode.

Tricks used on this run


Holding left and right at the same time forces Porky to walk left while in the animation for walking right. It can be made more visually interesting by alternating Left + Right with just Left, every other frame. This causes Porky to spin, or something like it.

Slope technique

Normally, when Porky walks, the maximum speed value is 2, but during a slope, the value can reaches until 4. If you don't hold a direction, you can mantain some speed for a few frames by jumping off a slope or not. With the help of RAM Watch, I discovered that by not jumping off a slope gains 1 more pixel forward (on level 6).

The camera trick

You can move the camera while Porky is stationary. This allows you to load in sprites a bit earlier and get them to more beneficial positions.

Sprite glitch

On the bosses, ff you press left or right (or both) every other frame, their sprite animations will freeze until you stop this movement. This is useful to avoid lag (see the yeti boss path).

Slowing down movement

If you don't press left or right button while on the air, after 4 frames, Porky will lose 1 pixel, and if you don't move on this exact frame, 2 pixels will be gained on the next frame (and now you can move) instead of a couple of one pixels for some frames. This is useful because stopping normally, costs more frames to recover the normal speed (2 pixels).


The weather effect is notable every time this game is played. This game chooses 'randomly' by entering the demos/start (title screen)/map screen at different frames. Also, some weather takes longer to load than others.

So, during the wait for the first two demos, I pressed up and down for very some frames to get the shortest loading time possible, although the fadeout is delayed for some frames.

Chain swings

During the work on the last stage, I discovered that chain swings has a global timer (0015A1 WRAM - also, freezing this address stops the movement of all chain swings). The position of the swings is determined between 0 and 255 value (the center position is determined every 64 frames - 33, 97, 161, 225). This value only increases during the gameplay and the map screen, but not during lags, transitions (excluding non-lag frames), and other things.
For this reason, that's why I wasted some time on the room 4 of the last stage to reduce lag in order to avoid more wait for the chain swing of the room 6 (bathroom).

Stage-by-stage commentary

Stage 5

  • Room 3: By moving the camera to the left instead of right, the next enemy is loaded some frames later, allowing me to get the ball and skipping the pit much earlier.

  • Room 4: Lag reduction (and probably more due of different weather).

  • Room 5: The skips were improved, respectivelly: First, by loading the bird earlier, second, by using the slowdown movement, third, by the new use of camera trick in order to load the bird, allowing me to take damage to a faster skip.

  • Room 6: During every loading transition between rooms (on non-lag frames), you can move to gain until 4 pixels. But during this transition, I decided to move 3 pixels, because otherwise, Porky will hit the wall, losing speed movement. Another improvement is the use of slowdown movement on one of the enemies.

Boss: With the sprite glitch, all lag (except a unavoidable lag when this boss is defeated) were removed!

Stage 6

On the map, I entered 5 frames later in order to manipulate weather, thus shortening the loading time during the transition between intro and room 1.

  • Room 1: A new route is go to the hidden 'fountain' room, because for some reason, the left of the room isn't 'blocked' and a wrap leads directly to the next room.

  • Room 4: Some frames were wasted on some paths to reduce lag, because of a global timer required for the first chain swing of room 6. Also, another use of slowdown movement to better optimization.

  • Room 6: Unfortunately due of global timer, you need to wait more time to grab the chain swing.

  • Room 8: Slope optimization.

Boss: After the first hit, I waited for the stunned robot reaches next of Daffy Duck, not only delaying the next hit but saving a lot of time on the remaining hits, defeating the robot on the same floor instead of going up and down between floors.

Other comments

I considered that the published run could be improvable, since I haven't used RAM Watch at the time (as well as most of my works before February 2017). I put much more work than the published run (notably by rerecord count).

Special thanks for droodbot for the information about the demo glitch, as well as some improvements for these stages included on the recent 'full' TAS.

Mothrayas: Judging.

Mothrayas: The demo glitch cuts out a large chunk of the run, and the other new tricks and improvements help spice it up a little bit, but unfortunately the pace isn't changed that much and the movie still suffers from that. Accepting as an improvement to the published movie, still for the Vault.

Fog: Processing.

Similar submissions (by title and categories where applicable):