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

Submission #2999: Wyster & nfq's N64 Perfect Dark in 41:44.4

Console: Nintendo 64
Game name: Perfect Dark
Game version: USA v1.0
ROM filename: Perfect Dark (U) (V1.0) [!].z64
Emulator: (unknown)
Movie length: 41:44.4
FrameCount: 150264
Re-record count: 105899
Author's real name: Henrik Norgren & Miikka
Author's nickname: Wyster & nfq
Submitter: nfq
Submitted at: 2011-02-08 22:44:01
Text last edited at: 2011-12-27 06:52:58
Text last edited by: Ilari
Download: Download (44859 bytes)
Status: decision: cancelled
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

Perfect Dark is the second most popular first-person shooter for N64, developed by the same company that made Goldeneye. The story takes place in the future and involves grey and reptilian aliens.

About TASing the game

Wyster started this TAS a couple of years ago, but he lost motivation after Crash Site because of desyncs, so two years later I finished the last 5 levels.

One thing that is better in Perfect Dark TASing is that you don't have to look at the floor all the time like in Goldeneye, because it doesn't save any significant amount of time.

Like many N64 games, the game has a pretty low and variable framerate, which makes it difficult to TAS because it only accepts input at specific random frames. This is why the game also has major desync issues, desyncing every 10-15 second or so (depending on the framerate), so I used the same tactic as in Turok 3; TAS for 10-15 seconds, then replay my whole progress from the beginning. That way I avoided having to redo parts over and over. There's also a bug which sometimes prevents you from proceeding to the next level, so Wyster had to occasionally use reset to advance to the next level.

This TAS has desync issues, or at least it desyncs for me and Wyster after the first reset (after second level), and apparently for others too who have tried it, but bkDJ got it to sync by capturing an avi: http://tasvideos.org/forum/viewtopic.php?t=4395&postdays=0&postorder=asc&start=200

I'm not sure if he could get the whole thing to sync now, but perhaps there's a small chance that someone can get it to sync and make an avi. But regardless if this can get published, it can at least be a source for information if someone ever does a full PD TAS again, maybe with mupenplus in the year 2023.

General tricks:

Straferunning: Like in Goldeneye and many N64 FPS games, running forward and holding left or right at the same time makes you run 1.4 times faster.

Waiting at cinemas: Used for timing events like elevators so that they arrive at optimal time, so that you get a better ingame time.

Speech skip: By pausing at a specific time before a speech starts, you can skip some speeches.

Weapon switch warp: By switching to another weapon, it creates some lag (framedrops) and allows you to go through openings which would be too small otherwise (eg. CI Defense at 1:18)

Re-selecting weapon: By pausing at a specific time and re-selecting a weapon, it comes up a few tenths earlier.

Summary and comparison with WRs

Level Time WR Improvement %
Defection 1:15 1:20 5 6.25
Investigation 2:32 2:36 4 2.56
Extraction 1:07 1:31 24 26.37
Villa 1:16 1:29 13 16.45
Chicago 0:27 0:27 0 0
G5 Building 0:46 0:52 6 11.53
Infiltration 1:34 1:42 8 7.84
Rescue 2:19 2:41 22 13.66
Escape 2:51 3:18 27 13.63
Air Base 1:54 2:05 11 8.8
Air Force One 1:39 1:26 -13 -15.11
Crash Site 1:39 1:52 13 11.6
Pelagic II 1:39 1:57 18 15.38
Deep Sea 2:46 3:07 21 11.22
CI Defense 1:31 1:37 6 6.18
Attack Ship 2:57 3:12 15 7.81
Skedar Ruins 1:08 1:30 22 24.44

Total improvement: 3:35

The final ingame time at the file after the credits is 29:20. More exact times (decimals) can be seen on my Perfect Dark TAS times page on my signature.

Comments by Wyster:

Defection 1:14: http://www.youtube.com/watch?v=NutQiRrd9b8

This mission consists of 5 objectives and the strategy used is pretty much impossible to follow for a newcomer to PD speedrunning. Therefor i'll explain in better detail.

For two of those you need to place ECM mines on 2 consoles, one at the top of the building and one at the bottom floor. Another objective is to pick up Cassandras necklace. To end the level you also need to reach an elevator on the bottom floor. The only objective that truly determines your end time in this level though is that you need to hack a computer. In order to do this, a programmer has to enter the password to allow you access. So in the beginning of the level i simply rush towards the programmers room to get him going ASAP. This is done by utilizing a glitch which allows you to travel through the void and even outside of the building. The seemingly strange pausing after reaching the corridor is to skip some lines the programmer says before he starts walking(saves ingame-time only). This is also the reason for the long cinema watching, the programmer needs to enter an elevator which has to be timed so it closes just as he gets in. Again this saves only ingame-time. While waiting for programmer i do the necklace and first ECM mine objective. Then i again utilize the "out-of-building" glitch to get into a good position to hack the computer. Being in this position allows me to fall down to bottom floor immediately after programmer is done hacking saving a ton of time over using the elevator. To finish i simply throw the final ECM mine and enter elevator.

The time of 1:14 is very good, beating the console wr by 6 seconds. I think i got a pretty optimal programmer speed in this run. Possible improvements in a future would be to use a double ducking technique in the start to do the glitch instead of landing on the door. This allows you to get through slightly faster. Overall i'm very happy with this stage.

Investigation 2:32: http://www.youtube.com/watch?v=0QMesuTRJp4

This level mostly consists of waiting for a bot to take down some lasers for you. So in the beginning i rush to activate the bot(cinema watching is used to allow a diffrent bot to open a wall segment for me, allowing access to the important bots activation consoles). and after that i just shut down some experiments and other objectives while waiting for the bot. Some obvious manipulation is done in one of the experiments room to get optimal speed on the bot. After the lasers it's just a matter of finishing an objective an running to the end.

This level also turned out very well and end time is very solid(beats console wr by 4 seconds). Can't really think of any improvments at all here.

Extraction 1:07: http://www.youtube.com/watch?v=sVdpsv7KuWQ

One of the better levels of the run for sure. High speed action and really no luck manipulation to be done. When exiting the first long elevator ride i open a door through the wall(it's locked if you try to open from the front of it but can be opened from the back). And by doing this floor really fast i manage to get back before the door closes, skipping another elevator ride. Rest of the level is straightforward. End time is excellent beating console wr by 24 seconds. Again no real improvements to be made.

Villa 1:16: http://www.youtube.com/watch?v=_JKt2FVqBo0

This level can be a bit complex to follow. Basicly you need to kill a bunch of rooftop snipers and i do this by throwing a sentry gun at a very precise spot where it can kill all but 2(those ones i take out manually in beginning) snipers. Apart from this the structure of the level is such that you need to go to basement, activate a wind-generator, this causes some hackers to appear which needs to be killed. Finally i need to punch out a data-dyne guard and kill all guards by end of level to aquire a keycard for final door.

Pretty solid level overall but i loose some time with the sentry gun throw, as i mentioned it needs to be very precide and i had to sacrifice my speed to do that. An improvement would of course be to manage this in full speed. One thing that was mentioned to me after this level was done was that the final keycard could be manipulated to drop slightly closer to my path. Only minor time would be gained though. Otherwise very good. Beats console wr by 13 seconds.

Chicago 0:27: http://www.youtube.com/watch?v=Aio82Hy1NnA

This may sound wierd but this level has actually been done faster on console. Reason? The emulator creates more lag making it impossible to go as fast as console(this is also used as an advantage in later levels...).

The level itself is pretty simple, get a bombspy, kill some guards with it to clear an exit path(requires an explosion) and throw a tracer bug and a remote mine. A recently discovered very minor improvement is to access the bombspy twice, first to deploy it and second to manouver it while falling, saving some tenths. Solid level. Ties console wr.

G5 Building 0:46: http://www.youtube.com/watch?v=H-2hUFLAhM4

Easy level. Guards in first few rooms drop keycards once you kill them all. Then i need to turn off some lasers and a computer. Important part in the level is also to avoid alarm going off which is obviously easy for TAS. A major trick is used to save time while waiting for vault to open, i launch a camspy to start off a cutscene which stops the ingame-timer. Another solid level and there's really not much to improve. Beats console by 6 seconds.

Area 51 - Infiltration 1:34: http://www.youtube.com/watch?v=qIFP1OaFX00

In this level everything depends on how much cinema you watch. Because the final elevator has to be open when you get there and a lift key guy has to be in a very specific spot. This had been well tested for console purposes but for TAS i basicly had to make an educated guess on how to time it. As it turned out i was slightly off. Final elevator was fine but the lift key guard could've been in a better position. Also as i later realized the part where i throw grenades at some robot interceptors could be improved by throwing a grenade much earlier instead of killing off guards. This would cause some other problems with drone/guards though but would still save some seconds. A double-unduck trick is used to throw a bug higher than Joanna normally can, hitting an antenna when Joanna specificly says "But i can't throw it that high"...i guess you can after all.

End time beats console wr by 8 seconds but several seconds more is possible. Not so solid.

Area 51 - Rescue 2:19: http://www.youtube.com/watch?v=rCZqp7laRSk

Get dressed up, save the alien dude. I use a guard to open a normally closed door for me saving massive time on an objective. Also use another guard to open the door to the locker rooms.

Some improvements are possible here too, first of all the locker room guard open door much faster using some diffrent angles as was discovered later. Also i overlooked the fact that the disguises placement could be in a better position. This requires that you start level on a diffrent frame though. Apart from this, very good level. Beats console by 22(!) seconds.

Area 51 - Escape 2:51: http://www.youtube.com/watch?v=8itZ4pPvfEg

Here i introduce the concept of pushing. Jonathan and Elvis tends to be pretty slow on their own so why not use the power of TAS to push them around? This level is basicly either talking or pushing. A well placed remote mine opens up a crack in a wall for me before it's "supposed" to happen and at the same time boosts me. A trick is used by the very end by double tapping B, the game works that it takes the first B press and displays whatever "console not active message" and waits to process the second press until that first message is about to dissapear. By this time i'm long gone and the console has become active during this time.

End time is probably pretty good. There's not alot to improve here. It's probably possible to be closer to elvis when the alien medpack activates but otherwise there's nothing major. Beats console by 27(!!) seconds.

Air Base 1:54: http://www.youtube.com/watch?v=S6ZsEoe0c7w

This went perfect pretty much. Nothing to improve really. Somewhat straightforward level. Beats console by 11 seconds.

Air Force One 1:39: http://www.youtube.com/watch?v=V5cVGxQYgx8

Depending on how you exit the last level, you can start this level in 2 diffrent positions. Overall the way i did it is the fastest but this level gets a slower time. I was however able to reduce the time lost here by finding a completely new strat. Remember the extra lag on emulators? By unducking into the presidents room from underneath it, i can use this lag to unstuck myself by using a gun-switch. This puts me in a state of "halfway-through-floor" walking. As long as i stay close to the walls or doors i can remain in this state and fall outside of the level and even fall to the lower deck of the plane. It may seem wierd that a TAS uses a combat boost but that's because of the extra lag, i needed it to make it into the little food lift which normally shouldn't be a problem. Finally i utilize the pushing powers of TAS to do the level in a completely diffrent order than how you'd do it on console.

End time is 13 seconds slower than console but this is as i said, a tradeoff from using better ending of Air Base which overall turns out to be faster. Good level. A minor improvement would be to switch to cyclone slightly earlier during first gun-switch-warp. An other thing could be to throw the timed mine later in order to use a slightly closer route when pushing president(i had to avoid the president getting killed by the explosion in this run).

Crash Site 1:39: http://www.youtube.com/watch?v=FIbrbT3K7Xk

Again the pushing powers of TAS make an appearence and i use this to invent a completely new TAS-only strat. Because i didn't have the golden magnum yet i had to use remote mines to destroy the alien ship. Overall good level, minor improvement can be done by not taking as tight turns with the hoverbike, turns out that this slows it down slightly.

End time is very good due to the strategy-improvement. Beats console wr by 13 seconds.


I had hoped for this run to be similar to the one made for Goldeneye 007. However, the emulator glitch causing levels to not always proceed to the next kinda ruined that hope for me. As it turns out now, several years later, this might be possible to avoid by doing manipulation during end of last level but i never realized this myself. Instead i resorted to resets which quickly turned out to cause major desynch issues and eventually i wasn't able to make run synch from beginning. Instead i changed my goals to perhaps make some .avi-compilation of all levels. Therefor i do not expect this run to be accepted.

The run itself is in my owns eyes varying from very good to not so good. Back when i was working on this run i was still a fairly lazy taser and when it came to levels that were completely untested for TAS the only choice i would've had was to do entire level twice which i simply didn't have the motivation to do. My best guesses wasn't too far off though and really is only a problem for those with a trained eye and good knowledge of PD speedrunning. As i mentioned earlier, this game lags ALOT, making desynchs common and very difficult to TAS compared to it's counterpart Goldeneye. This contributed alot to my lack of motivation for major redos.

To conclude, i'm glad that Perfect Dark finally has a full run. This just like Goldeneye hadn't been TAS'ed before and as so neither are perfect. However they were necessary for any future perfect TAS to be made. The state of mind of this first TAS was simply "What does a TAS of this game look like", while in a future TAS the question will be, "How can we improve the last run". So in the end i'm very happy that this long overdue run is finally complete and we can now see where the limits are. Huge thanks go to Miika(nfq) for finishing this run from where i left off.


Pelagic II 1:39: http://www.youtube.com/watch?v=9ysUmJ8PIKE

I let the guards put on the alarm so that they might open some doors for me. Normally it would be too risky on PA, but in TAS it's no problem. I had a slightly different scientist strategy at 0:32. It saves some time to just open the door and let him see me so that I can take him later. I like the laptop gun, it's one of the few guns in PD that is made of metal instead of plastic.

Deep Sea 2:46: http://www.youtube.com/watch?v=a36b1RhgX7k

14 seconds was saved because of faster Elvis. I used a little different strat in the room with the 5 green exploding tanks, shooting two of them with one shot instead of one. It looks like it would be easy to do, but it requires a lot of precision (and drains your health) unless you use the rail gun effect.

CI Defense 1:31: http://www.youtube.com/watch?v=Qm21GaQcybE

This is only 6 seconds faster than WR because you have to wait for Carrington's speeches before you can complete the level. I could have gotten 1:30 if I had used the out of bounds glitch at the beginning (saves 0.6 seconds), but I didn't know about it back then. Also, timing the elevator would save a few tenths.

Attack Ship 2:57: http://www.youtube.com/watch?v=W-lSLdefl7w

If I had waited 8 seconds more at the intro, the slow-ass elevator should have arrived when I'm there, and I could have saved some time, but it's hard to know how fast you'll be, the first time around. Other than that, it was a good run, still beating WR by 15 seconds.

Skedar Ruins 1:08: http://www.youtube.com/watch?v=-ofSUA_6PZw

I was happy about this time, especially the ending was good, I discovered that you could shoot all those parts at the same time, and with TAS like precision you could shoot through both of the upper parts at the same time, saving a bunch of time. Warping at the slow doors was useful, saves more than a half second per door. Fast bug throws too.

Save state for the last 6 levels (this at least has no problems syncing): https://docs.google.com/leaf?id=0B_gO0ruJePdbNGQwMGExZTQtZDQzYy00NGM3LTg2MjQtNzA4MzYzYWE3ODkz&hl=en

Memory addresses that I found useful:

Ingame timer: 00AD4CAC: the game has it's own visible timer, but it's not always visible, and it's somewhat inaccurate

Headshots: 00966AC8: useful to make sure you hit someone on the head, especially if they are behind something where you can't see

Hostage deaths: 00966D00 (CI defense): to know in advance that too many hostages don't die, and that they get released fast enough

Elvis health: 00E3C06A (Attack Ship)

FractalFusion: Judging. Hopefully someone is able to sync it soon.

FractalFusion: Placing on delayed due to sync problems.

FractalFusion: Since the problem still hasn't been solved and there's hardly any hope left, I will set this to cancelled.

If the problem is solved, someone can uncancel this submission.

Similar submissions (by title and categories where applicable):