Jazz Jackrabbit "extra episodes" in 14:35.87 by Ilari, Noxxa & slamo
Goals
- Emulator used: jpc-rr r11.8
- Game version: v1.2
- Clears all extra episodes (episodes A-C)
- Takes damage to save time
- Plays on hardest difficulty (Turbo)
- Aims for in-game time.
About goal choices
Version choice:
There are two versions with extra episodes: 1.2 and 1.3.
Now, one of the levels (Raneforus 2) has airboard and ditch event, and those being broken would lose quite a bit of time. Fortunately, 1.2 has proper event there. Thus, 1.2 it is.
1.2 has some funky bugs in various levels, like what are supposed to be launchers getting replaced by toasters (1.3 doesn't fix this anyway), or totally messed up attack data in ep.C boss (fixed in 1.3), causing Jazz's weapons to switch places (which is actually useful glitch). But that is fairly minor.
Aiming for in-game time
There are basically three possible times to aim for:
- Fastest real-time.
- Maximum time at level end.
- Least in-game timer.
Why we chose least in-game timer:
- Fairness to configuration:
- PC hardware is not fixed. Varying hardware speed varies loading times and lag.
- Much easier to judge runs involving dissimilar CPUs if this can be ignored.
- The time left is decremented from timer interrupt, which means it does count even lag frames.
- But in-game timer only counts non-lag frames.
- Perverse incentives:
- Shooting the exit sign stops the time. Thus there would be incentive to shoot it from as far as possible, leading to very long scrolling sequences.
- Unreasonable difficulty:
- Optimizing lag in this game is hard and relatively few lag frames can be eliminated. One would get greatly increased effort for very little gain.
Unfortunately, this timer is not available in the status panel, so one has to memory watch it. It has the following properties:
- Does not count lag frames
- Increments by 1 every in-game frame.
- Resets to 0 (but may increment before a frame is rendered) every level entry.
- Is the timer that controls frame rules.
- Starts counting a few frames before screen begins to fade in and stops a few frames before screen completes fading out.
The quoted lengths of levels are the final values of this timer (with times calculated using the nominal frame rate of 125875/2108 fps).
Difficulty
Turbo difficulty adds +1HP to every enemy (except bosses, which get +10HP) over hard. The +1HP means even the lowest-tier mooks take 2 hits to kill. Time is set to 4 minutes, and Jazz dies if the timer runs out.
Hard difficulty adds some more enemies, has -1HP for Jazz and +10HP for bosses over medium. Time is set to 6 minutes, and Jazz dies if the timer runs out.
Medium difficulty adds a lot more enemies, has -1HP for Jazz and +20HP for bosses over easy. Time is set to 8 minutes on medium, although nothing happens if the timer runs out.
The +1HP from Turbo difficulty makes TASing the game a lot more interesting.
General notes
- Normally if you clip a corner or run up a hill, you slow down, so this is to be avoided. Many places that don't seem very uneven still count (e.g. ends of bridges) and conversely many places that look really uneven aren't actually.
- The way Jazz moves is on frame rule and Jazz can move multiple pixels in one frame. This causes the fastest way to do turns to be highly variable. Sometimes hugging walls is the fastest. Sometimes using arcing path is fastest. Sometimes even running into wall ahead is fastest.
- Holding down while on air causes Jazz to accelerate down faster.
Level times
Level | Length |
---|---|
Exoticus 1 | 00:28.97 |
Exoticus 2 | 00:39.02 |
Industrius 1 | 00:23.85 |
Industrius 2 | 00:18.38 |
Muckamuk 1 | 00:38.67 |
Muckamuk 2 | 00:39.25 |
Guardian A | 00:08.97 |
Episode A total | 03:17.10 |
Raneforus 1 | 00:43.63 |
Raneforus 2 | 00:53.72 |
Stonar 1 | 00:32.52 |
Stonar 2 | 00:42.57 |
Deckstar 1 | 00:37.05 |
Deckstar 2 | 00:44.07 |
Guardian B | 00:16.83 |
Episode B total | 04:30.38 |
Ceramicus 1 | 00:36.75 |
Ceramicus 2 | 00:52.33 |
Deserto 1 | 00:41.17 |
Deserto 2 | 00:57.23 |
Lagunicus 1 | 00:40.52 |
Lagunicus 2 | 01:00.28 |
Guardian C | 00:08.78 |
Episode C total | 04:57.07 |
Grand total | 12:44.55 |
Stage-by-stage comments
Episode A ("Outta Dis World")
Exoticus 1
Length: 1738 frames (29.11 seconds).
The first stage of the extra episodes is fairly straightforward. Except for a part with wall jumping pads in the middle of the stage, most of the stage is simply running right for justice.
[00:17] Careful jumping lets one collect 5 TNT packs without slowdown. All of them prove useful later.
[00:23] Dunno why one can jump on those spikes. Seems to be something to do with the shield.
Exoticus 2
Length: 2341 frames (39.20 seconds)
This stage starts off annoying with a long uphill climb, which was tricky to optimize.
[00:55] One more pixel to the right and Jazz will fall off. Also, there isn't space for longer acceleration. One is intended to use the spring, but a direct jump works too.
[01:14] The vines are semi-solid, but are so thick that often Jazz halts horizontally (and slows down vertically). Taking damage here is faster than avoiding it.
[01:17] Those flying birds are in places that guarantee a hit if one doesn't slow down. Fortunately, 2 TNT packs could be used to kill those.
Industrius 1
Length: 1431 frames (23.96 seconds)
[01:31] There are two enemy events here. One takes 5 hits, the other takes 6.
[01:35] More platforms on a level timer. At least those warp Jazz on top of them.
[01:43] Due to the gaps in pipes, the trick of jumping into turns does not work here.
[01:45] Heading to the secret exit, because the pipe there goes near the primary exit, allowing a TNT exit. This skips most of the level.
[01:49] Delaying the TNT 1 frame from earliest possible. For some reason, even though the scroll is horizontally limited, this is faster.
[01:51] Hah at the frickin laser suspending in midair and then continuing on score countdown ending (events are pretty messed up during score countdown).
Industrius 2
Length: 1103 frames (18.47 seconds).
[01:58] The pipes just work weird here, one can get ahead by various tricks but then one seemingly unavoidably loses it.
[02:08] Going to the ledge with a bird in it. This is because it is near enough exit to use the TNT exit trick.
[02:12] One must be careful on what frame one triggers the exit on. The scroll times are rather variable.
Muckamuk 1
Length: 2320 frames (38.85 seconds).
[02:24] Over a half second faster to use the secret passage, collecting 1-up, even if that means taking damage.
[02:44] The thick semisolid bridge on top resets the horizontal speed anyway so no use trying to build inertia.
Muckamuk 2
Length: 2355 frames (39.44 seconds)
[03:17] These platforms are on a level timer, causing rather sizable time losses if in bad positions. Also, they are rather fast, sometimes Jazz reaches 17px/f(!) when riding one.
[03:21] Using the last TNT pack to get the fire shield. While it is useless in this level, it becomes useful in the boss fight.
[03:25] For some reason, one of those swinging platforms often fails to spawn.
[03:31] Fortunately in this frog-infested zig-zag, the enemy positions aren't too bad.
Guardian A ("Zoonik")
Length: 538 frames (9.01 seconds)
[03:47] Whee, all four projectile weapons are on-screen at once.
[03:47] The way the fire shield saves time: Shooting a fire shield causes Jazz to momentarily become invincible. This saves having to dodge attacks from Zoonik, enabling to do damage faster.
[03:48] Zoonik attempts to warp away, but he takes damage until the warp completes, and during this time he is killed.
The warp almost completes, so if one had to dodge his attacks, it likely would not have been possible to kill him fast enough, wasting time waiting for him to re-materialize.
Episode B ("Turtle Soup")
Raneforus 1
Length: 2618 frames (43.84 seconds).
[04:32] Those plants count as spikes.
[04:34] Those owls just push Jazz instead of hurting him. They are killable, but take 50 hits(!) (don't count as enemies so no +1HP on Turbo) to kill.
[04:35] This jump up from treetop to branch above is just barely possible. The intended route is using a jumping rock further to left.
[04:45] Lots of monkeys (would be more if some weren't killed).
Raneforus 2
Length: 3223 frames (53.97 seconds)
[04:54] This climb up the first tree just sucks. Many of the jumps are almost but not quite possible.
[05:00] Getting the fire shield. Even through this prevents using damage-boost bit later that would save sizable chunk of time, the enemy positioning in some parts of this level is so nasty that it is still worth it.
[05:25] Jumping from this platform is bit faster than waiting for the rock, even if the first means 2 jumps off the red spring.
[05:36] Those monkeys are positioned so that one must slow down a lot or Jazz will hit one of them.
[05:38] Those tree branch gaps are really gaps, and monkeys can fall through, but sadly those aren't wide enough for Jazz to fall through (would have saved several seconds).
Stonar 1
Length: 1951 frames (32.67 seconds).
[05:59] This spring gives jumps of two different heights. The higher one is needed, in order to hit the fire shield. Wastes some time to get it, but it is worth it.
[06:02] Those hands take 6 hits to kill and periodically disappear, so killing them is pretty much out of question. Fortunately, they don't hurt Jazz when hidden.
Stonar 2
Length: 2554 frames (42.77 seconds).
[06:29] The first passage is pretty nuts. Total of 23 enemies here (much less is seen because many are hands that stay mostly hidden).
[06:54] Intentionally jumped into spikes for brief invincibility.
[07:02] It's a bit faster to clip those spikes taking a hit. Because of the "platform" layout, this is not because of the hand above (it could be killed using glitch attack).
[07:06] Those spikes are positioned exactly where Jazz lands if he tries to go as far right as possible. Also, this episode has a severe shortage of launchers on-path, but one can be used to blow the wall to reveal passage to exit.
[07:07] The mercy invincibility from spikes also allows passing that armored turtle (takes just 2HP though).
Deckstar 1
Length: 2223 frames (37.23 seconds).
[07:19] Those large turtles have really odd hitboxes. Also, those turtles get executed by "glitch attack" (shield glitch ftw lol): Damaging an enemy that can "pushed aside" by shields on the same frame as shields would have pushed it aside results enemy HP being set to 0, killing it instantly, but without using the (fire) shield.
[07:29] Fortunately there's a secret passage, allowing one to proceed without waiting for the spring. Saves many seconds.
[07:31] Use for TNT packs: Picking fast feet through walls, much earlier than one is supposed to.
[07:43] The gap is just too narrow to pass through without losing speed.
[07:45] This laser is unavoidable without waiting. Not that shields are needed anyway.
[07:48] Using a minor TNT exit here. Using TNT is a bit faster than going to the exit normally (there aren't much remaining normally, so it saves little time.
Deckstar 2
Length: 2644 frames (44.28 seconds)
[07:58] Going through this secret passage is just about 5 frames faster than another route involving a spring further to right.
[07:59] Taking damage here saves a bit of time (2 pixels, allowing more gains in the next turn).
[08:10] This spring is weird. It has some weird movement type (dive at Jazz) that makes it move toward Jazz, but stop before reaching him. And it also moves slowly (every 3 frames). As consequence, there is some waiting (the gap above is also pretty small).
[08:16] These sloped ceilings stop Jazz like walls.
[08:30] TNT packs have quite a bit of reach. The fire shield monitor from a tile off the screen gets hit.
[08:32] If one makes a careless jump here, one will get hit by the laser, killing the bird (even if you have shields).
[08:35] More big turtle hit-box fun: Sometimes with fast feet, one can just phase through them.
Guardian B ("Deckstar boss")
Length: 1010 frames (16.91 seconds).
[08:44] A boss unlike everything else in this game. It has multiple parts, and what part takes damage varies. For some reason, the right cap cannot be damaged until the left cap is destroyed.
[08:46] It also has a mook generator, creating damn bats.
[08:48] First the left cap of the pod takes damage (for about 1/3 of 64HP boss has). Also, those pod ends also damage Jazz (sometimes even after being killed, resulting in Jazz getting killed after killing the boss, fortunately the level does not reset).
[08:49] Blowing some TNT packs to damage the boss and to get rid of those bats.
[08:49] Then the right cap takes damage, and after that is gone (~1/3 of the HP) the whole pod starts to take damage.
[08:50] It is just barely possible to kill it in 5 jumps. Also, when it dies, it warps Jazz under the pod for some reason. Then Devan and turtle with Eva run away.
[08:58] Also, this boss doesn't scroll, the score countdown starts immediately, no matter where Jazz is.
Episode C ("Wild Wabbit")
Ceramicus 1
Length: 2205 frames (36.93 seconds).
[09:15] This turtle is in quite a bad place. The fastest way of dealing with it is to take damage off it, even if damage knock-back takes a while.
[09:31] The third flying spring is so low that running hits it. One needs to have it send you up to some smooth part of the ceiling.
[09:34] Those pots have a very bad tendency to cause corner-clipping (which slows you down).
Ceramicus 2
Length: 3140 frames (52.58 seconds).
[10:13] Even if the floor looks really uneven, it isn't.
[10:18] This place is an ass. One needs to either wait a good bit or do nontrivial damage boost. Normally attempts to damage boost wind up hitting platform above.
[10:21] Picking up two TNT packs, because we need one in Deserto 2 (to kill one horde of enemies), and one in Lagunicus 1 (to trigger TNT exit saving dozens of seconds), and these are the fastest TNT packs to get before that point.
Deserto 1
Length: 2470 frames (41.36 seconds).
[10:52] Those fire-breathing dudes have 6HP and there are plenty, so glitch attacks will be very useful.
[10:58] These stepped hills are one of the biggest pains in this level. The jumping has to be surprisingly precise to hit the steps in order to avoid slowdown.
[11:02] The springs above throw you near the exit (and there's an even more powerful green one), but sadly not near enough to get a TNT exit.
[11:04] Glitch attacking both does not work for some reason (too near each other, so would require impossibly fast shooting?).
[11:10] That platform is so high jumping there without clipping or slowing down is not possible.
[11:14] This one is fun: If one isn't right enough, one can't enter the hole from a spring jump (Jazz tries to enter but falls off). Obviously a TAS can arrange Jazz to be far right enough.
[11:15] Here one can't just turn on the earliest frame that still hits the spring because cliff above is so far away that jump will not reach it.
[11:19] It is a bit faster to use the bottom route. Shooting some RF missile orbs (not that those are actually needed).
[11:20] That lizard is just timed so that you will take a hit if you speed through.
[11:26] This is the lizard clown base. Fortunately, one can speed through before first one spawns. If one waits, it spawns at least 50 lizards. There are others, but this is the worst of those.
Deserto 2
Length: 3434 frames (57.51 seconds).
[11:35] Shooting some hidden missile orbs.
[11:55] That one lizard almost creates trouble by falling into the shaft, where one would collide with it unless one slowed down.
[12:03] There is NO mercy invincibility from killing an enemy with a shield, so the two lizards here cause 2 damage.
[12:20] A number of lizards is coming from the top. With an optimal jump path, those would likely cause all shields to be lost and more. And losing shields is not good for the rest of this level (as there are some fire-breathing dudes in bad places).
Lagunicus 1
Length: 2431 frames (40.71 seconds).
[12:40] Small jump above water because swimming is so slow.
[12:42] As can be seen, the bird won't come into water.
[12:43] Optimizing this jumping on top of water (w.r.t. frame rules) is nontrivial.
[13:00] One can pick up two orbs here with no time loss.
[13:05] Yes, the screen can fade to pretty much pitch black.
[13:10] Damn counter-current. Swimming is too slow already. But there is no way around.
[13:12] Here the most optimal frame to detonate TNT is the first possible frame (as Jazz is swimming very slowly). The scroll is slow, but this cuts over half of the level.
Lagunicus 2
Length: 3617 frames (60.57 seconds)
[13:24] Being partially in the ceiling is not useful here because the gap up has sloped edges.
[13:31] One is intended to use switches to raise the water level here, but one can just jump from one level to another. Obviously much faster.
[13:33] If one moves very carefully, one can skip this switch, saving some time.
[13:34] This switch is completely unavoidable.
[13:37] The hitboxes of these enemies are large. One can't fit between those big squids, so we use the shield glitch to kill one of them.
[13:45] Lose one pixel here because otherwise Jazz will miss the (invisible) switch. The water does not lower, costing a lot of time.
[13:52] Heh, got here quite a bit before intended (which results in water enemies flying outside the water).
[13:54] Jump up to gain a bit of extra horizontal distance before swimming caps speed to 2px/f.
[13:57] This enemy is in a place where it can't even be killed via glitch without slowdown, so take a hit.
[13:59] Swim a bit forward before dropping down. There is a current below, which slows horizontal speed to 1px/f, but does not affect vertical speed. One passes through that zone much faster with less horizontal distance to move.
[14:01] Another fish in a bad place. We can afford up to 3 hits (but we need only 2) because we need shields for the boss for a timesaving trick.
[14:17] Swimming and scrolling have the same speed, so shooting the sign far away does not lose time (the distance one shoots the sign does not affect the exit frame).
Guardian C ("Lagunicus boss")
Length: 527 frames (8.83 seconds).
Screen-shot suggestion
VGA Frame 13719 / Timecode 227.40
Thanks
Nach
Nach: There hasn't been much commenting on this one, so I assume everyone who voted said their comments in the other thread. Accepting as a new branch for this game.
Nach: Publishing.